Hücrelerdeki metinlerin sağındaki sayıları toplamak

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,215
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
İstenen B1 hücresinne yazılan kritere göre A sütununda verileri bulacak.
Bulunan metinlerin sağındaki sayıları c1 hücresinde toplayacak.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ben aşağıdaki kodu öneriyorum.

Kod:
Sub topla()
For a = 1 To [a65536].End(3).Row
deger = Replace(Cells(a, "a"), [b1], "", , , vbTextCompare)
If deger <> Cells(a, "a") Then toplam = toplam + CDbl(deger)
Next
[c1] = toplam
End Sub
 
[COLOR=green]'A sütununda son hücreyide dikkate alan döngü başlangıcı[/COLOR]
[COLOR=green]'deger değişkenine, B1 hücresindeki kriter, A sütunundaki hücrelerdeki veride bulunarak yerine boşluk verilir. Böylece sadece sayısal değer kalmış olur.
'deger değişkeni ile A sütunundaki taranan hücredeki veri karşılaştırılır eğer farklı ise toplam değişkenine deger değişkenindeki sayı atanır.
'döngü sınu
'toplam değişkeninin değeri C1 hücresine yazılır.[/COLOR]
 
Katılım
17 Şubat 2006
Mesajlar
981
Excel Vers. ve Dili
M.Office Excel 2003 Tr.
Arşivimde olan , Sayın Haluk'un Yaptığı kullanıcı tanımlı fonksiyonu kullanarak yaptığım, ama tek seferde işlem görmeyen çözüm (4 işlevle sonuca varılıyor). Açıklama yapamayacağım, çünkü makronun açıklamasını bilmiyorum.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Soru dizi fonksiyonu ilede &#231;&#246;z&#252;lebilmektedir. Form&#252;l a&#351;a&#287;&#305;daki gibidir.

{=TOPLA(E&#286;ER(YER&#304;NEKOY(B&#220;Y&#220;KHARF(A1:A4);B&#220;Y&#220;KHARF(B1);"")<>B&#220;Y&#220;KHARF(A1:A4);SAYIYA&#199;EV&#304;R(YER&#304;NEKOY(B&#220;Y&#220;KHARF(A1:A4);B&#220;Y&#220;KHARF(B1);""));0))}


Not: B&#220;Y&#220;KHARF fonksiyonu b&#252;y&#252;k-k&#252;&#231;&#252;k harf ayr&#305;m&#305;n&#305; ortadan kald&#305;rmak i&#231;in kullan&#305;lm&#305;&#351;t&#305;r.
 
Katılım
17 Şubat 2006
Mesajlar
981
Excel Vers. ve Dili
M.Office Excel 2003 Tr.
Say&#305;n leventm
Sundu&#287;unuz ikinci alternatifin pek sa&#287;l&#305;kl&#305; olmad&#305;&#287;&#305; kanaatindeyim. &#199;&#252;nk&#252; Ba&#351;vuru h&#252;cresi "Ali" oldu&#287;u zaman, &#304;&#351;lev "Ali ali" olanlar&#305; da topluyor veya "Ali veli" olan h&#252;crelerde #DE&#286;ER! hatas&#305; veriyor.
Makroda
toplam = toplam + CDbl(deger)
sat&#305;r&#305;nda Type Mismatch hatas&#305; veriyor.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sn kombo

Her iki önerimde her hücrede sadece tek isim sözkonusu ise geçerlidir. (aynı isim birden fazla olabilir), ekli dosyada örnekler bu şekilde verilmiş, eğer farklı isimler sözkonusu ise elbette farklı çözümler düşünmek gerekecektir.
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,215
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Verilerin sa&#287;&#305;ndaki say&#305;lar &#246;rnekte oldu&#287;u gibi iki haneli olmak &#351;art&#305; ile &#231;&#246;z&#252;m a&#351;&#351;a&#287;&#305;dad&#305;r.
Sub test()
[c1].ClearContents
For Each bak In Range("a1:a10")
alan = UCase(Replace(Replace(bak, "&#305;", "I"), "i", "&#304;"))
veri = UCase(Replace(Replace([b1], "&#305;", "I"), "i", "&#304;"))
If alan Like "*" & veri & "*" Then
[c1] = [c1] + Right(alan, 2)
End If
Next
End Sub
'c1 h&#252;cresini temizliyoruz
'a1:a10 aral&#305;&#287;&#305;n&#305; d&#246;ng&#252;ye al&#305;yoruz
'alan de&#287;i&#351;kenine d&#246;g&#252;m&#252;zdeki h&#252;crelerdeki verilerin b&#252;y&#252;k k&#252;&#231;&#252;k harf &#246;zelli&#287;ini al&#305;yoruz
'b1 h&#252;cresindeki verinin b&#252;y&#252;k k&#252;&#231;&#252;k harf &#246;zelli&#287;ini al&#305;yoruz
'alan ile veri de&#287;i&#351;kenini kar&#351;&#305;la&#351;t&#305;rma yap&#305;yoruz
'c1 h&#252;cresinde kritere uyan verilerin sa&#287;&#305;ndaki say&#305;lar&#305;n toplam&#305;n&#305; al&#305;yoruz
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,609
Excel Vers. ve Dili
Pro Plus 2021
Bir çözüm de ben hazırladım.
Yalnız soru sorulurken net olarak bütün alternatifler verilmemiş.
Örneğin AliAhmet25 yazan hücreyi hem Ali hem Ahmet olarak mı toplayacağız,
AliAhmet25 le AliAhmet 25 yazan veriler aynı şekilde mi değerlendirilecek,
Ali Ahmet25 le AliAhmet25 yazan veriler aynı şekilde mi değerlendirilecek gibi sorulara açıklık getirilerek özellikle bu bölümde soru sorulursa iyi olurdu. Kaç gündür bir çözüm yapayım dedim fakat içimden yukarıdaki sorulara cevap bulamadığım için yapmadım. Bugün kafama göre değerlendirip yaptım.

Çözümde A sütunundaki hücrelerde aranan değer geçiyorsa (büyük küçük harf farketmez) o hücrenin sağındaki veriler toplanıyor.
 
Katılım
19 Şubat 2009
Mesajlar
45
Excel Vers. ve Dili
2000
türkçe
Birde bunu deneyin arkadaşlar. dosyayı açamadığım için anlatılandan böyle birşey istendiğini çıkardım. daha komplike birşeyse siz yine makrodan devam edin.

=ETOPLA(H4:H23;"ali";K4:K23)
 
Üst