Satır Aralarındaki Sayıları Toplama

Katılım
16 Temmuz 2021
Mesajlar
15
Excel Vers. ve Dili
--
Merhaba, Excel'de hücre içinde virgül ile ayrılmış sayıları nasıl saydrabilirim?

Örnek:
c2: rapor, 3
d2: aktif, 4.5

e2'de bu iki sayının toplamını bulmam gerekiyor. Hücre içine sadece sayı girmediğim için formülü bulamadım.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki formülü deneyiniz:

=ARA(9,99999999999999E+307;--SAĞDAN(YERİNEKOY(C2;".";",");SATIR($1:$1000)))+ARA(9,99999999999999E+307;--SAĞDAN(YERİNEKOY(D2;".";",");SATIR($1:$1000)))
 
Katılım
16 Temmuz 2021
Mesajlar
15
Excel Vers. ve Dili
--
Aşağıdaki formülü deneyiniz:

=ARA(9,99999999999999E+307;--SAĞDAN(YERİNEKOY(C2;".";",");SATIR($1:$1000)))+ARA(9,99999999999999E+307;--SAĞDAN(YERİNEKOY(D2;".";",");SATIR($1:$1000)))
Öncelikle cevap için teşekkürler.
Örnekte iki sütun belirtmiştim ancak çalışma sayfasında 32-33 sütun bulunmakta. verdiğiniz formülü tüm sütunlar için uygulamam gerekiyor mu tek tek?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Öyle gerekir ama hem pratik olmaz hem de excel o uzunlukta formülü kabul etmeyebilir. Çok sütunlu işlem için makro kullanmak daha iyi olur bence. Kullanıcı tanımlı bir fonksiyon ya da başka bir makro hazırlanabilir.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
E2 ye yazın.
Kod:
=sayilariTopla(C2:D2)
Modül içerisine aşağıdaki kodları yerleştirin.
Kod:
Function sayilariTopla(rng As Range) As Double
    Dim toplam As Double
    For Each r In rng
        For Each b In Split(r, " ")
            If IsNumeric(b) Then toplam = toplam + Val(b)
        Next b
    Next r
    sayilariTopla = toplam
End Function
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

DİZİ formüldür.

C++:
=SUM(IF(C2:Z2="";0;--SUBSTITUTE(MID(C2:Z2;SEARCH(" ";C2:Z2)+1;15);".";",")))
SUM = TOPLA
IF = EĞER
SUBSTITUTE = YERİNEKOY
MID = PARÇAAL
SEARCH = MBUL
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Teşekkürler ancak bu formül hücrede hata veriyor.
Korhan Bey DİZİ formülü olduğunu belirtmiş, dikkat etmemişsiniz sanıyorum. DİZİ formülünü hücreye yazdıktan sonra hücreden CTRL+SHIFT+ENTER ile çıkmalısınız.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
E2 ye yazın.
Kod:
=sayilariTopla(C2:D2)
Modül içerisine aşağıdaki kodları yerleştirin.
Kod:
Function sayilariTopla(rng As Range) As Double
    Dim toplam As Double
    For Each r In rng
        For Each b In Split(r, " ")
            If IsNumeric(b) Then toplam = toplam + b
        Next b
    Next r
    sayilariTopla = toplam
End Function
KTF'yi uyguladığımda 52,5 çıkması gereken sonuç 336 çıkıyor. Korhan Bey'in çözümü doğru sonucu veriyor.

Koda replace ekleyip noktayı virgüle çevirince doğru sonucu veriyor:

PHP:
Function sayilariTopla(rng As Range) As Double
    Dim toplam As Double
    For Each r In rng
        For Each b In Split(Replace(r, ".", ","), " ")
            If IsNumeric(b) Then toplam = toplam + b
        Next b
    Next r
    sayilariTopla = toplam
End Function
 
Katılım
16 Temmuz 2021
Mesajlar
15
Excel Vers. ve Dili
--
Korhan Bey DİZİ formülü olduğunu belirtmiş, dikkat etmemişsiniz sanıyorum. DİZİ formülünü hücreye yazdıktan sonra hücreden CTRL+SHIFT+ENTER ile çıkmalısınız.
Evet, dediğiniz şekilde çıkış yaptım. ancak sonuç hücresinde #değer hatası alıyorum. Eksik yaptığım bir nokta mı var acaba?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bahsi geçen sütunlarda bize aktarmadığınız bir durum olabilir.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sanıyorum nokta virgül sistem ayarlarıyla ilgili bir farklılık oluyor. Çünkü sizin yaptığınızı ben yaptığımda sizin sonuç 48 çıkarken benim sonuç 7,5 (tabi buna benim demem yanlış olur, kodlar size ait ben sadece bir ilave yaptım) çıkıyor.

229405

229406
 
Katılım
16 Temmuz 2021
Mesajlar
15
Excel Vers. ve Dili
--
Bahsi geçen sütunlarda bize aktarmadığınız bir durum olabilir.
Şöyle özetliyim bu tuttuğum aylık rapor ve izinlerle alakalı bir çalışma sayfası. ayın 1'inden 31'ine kadar sütun oluşturulmuş. bir kaç örnek hücre şöyle: c2: çalıştı, pazar d2: rapor e2: çalıştı, 3 f2: çalıştı, 2 g2.... devam ediyor. buradaki tüm girdğim verileri saydırdım ancak sadece her hücre içinde virgül ile ayrılmış sayıların toplamını alamıyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Küçük bir örnek dosya paylaşırsanız veri düzeniniz görerek formülü revize edebilirim.

Benim önerdiğim formül tek boşluk içeren hücrelerde sağlıklı sonuç verecektir. Eğer hücrelerde birden fazla boşluk varsa ve sayısal veriler en sağda ise formül sıkıntı çıkaracaktır.

Bir formül daha kurguladım. Birden fazla boşluk içeren hücrelerde denediğimde sonuç alabildim. Yine DİZİ formüldür.

C++:
=TOPLA(EĞERHATA(--EĞERHATA(YERİNEKOY(SAĞDAN(C2:Z2;UZUNLUK(C2:Z2)-BUL("*";YERİNEKOY(C2:Z2;" ";"*";UZUNLUK(C2:Z2)-UZUNLUK(YERİNEKOY(C2:Z2;" ";"")))));".";",");0);0))
 
Üst