• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Makro ile listeden aylık toplamı bulma

arda41

Altın Üye
Katılım
30 Mayıs 2010
Mesajlar
127
Excel Vers. ve Dili
Excel2010
Türkçe
Merhaba Arkadaşlar,

Makro ile bir listeden aylık toplam alınması ile ilgili bir sorum olacak.

Ekteki örnekte A16 hücresinde tarih ve B16 hücresinde tutar olan bir kısmı gözüken uzun bir listem var. her ay için hareket sayısı değişken olabiliyor ve ayrıca tarihler de karışık sıralanabiliyor.

Amacım makro ile A2 hücresindeki Ocak ayından itibaren tüm ayların toplam tutarlarını B2 hücresinden aşağıya doğru ayrı ayrı yazdırabilmek.

Şimdiden çok çok teşekkür ederim.

Saygılarımla
 

Ekli dosyalar

Merhaba.

Makro-VBA bölümüne konu açmışsınız ancak formül ile çözüm önerisi isterseniz,
aşağıdaki formüllerden birini B2 hücresine uygulayıp aşağı doğru B13 hücresine kadar kopyalayarak istediğiniz sonuca ulaşabilirsiniz.
-- Birinci formül: formüldeki 38 sayılarını gerçek belgenizdeki son dolu satır numarasıyla değiştirebilirsiniz
-- Ya da doğrudan ikinci formülü kullanailirsiniz (ikinci formülde son satır numarası BAĞ_DEĞ_DOLU_SAY işlevi ile sürekli güncel kalacaktır).
.
Kod:
=TOPLA.ÇARPIM((AY($A$16:$A$[B][COLOR="Blue"]38[/COLOR][/B])=SATIRSAY($B$1:B1))*($B$16:$B$[B][COLOR="blue"]38[/COLOR][/B]))
=TOPLA.ÇARPIM((AY(DOLAYLI("A16:A"&BAĞ_DEĞ_DOLU_SAY($A:$A)+1))=SATIRSAY($B$1:B1))*(DOLAYLI("B16:B"&BAĞ_DEĞ_DOLU_SAY($A:$A)+1)))
 
Son düzenleme:
Sayın Ömer Baran,

Yine hızır gibi yetiştiniz. Elinize sağlık. Makrosuz da işim görülecek gibi. Çok teşekkür ederim.

Saygılarımla
 
Merhaba,

İlla makro istiyorsanız TOPLA.ÇARPIM'ın makroya uyarlanmış hali.

Kod:
Sub AyToplam()

    Dim i   As Long
    
    Application.ScreenUpdating = False
    
    i = Cells(Rows.Count, "A").End(3).Row
    If i < 16 Then i = 16
    
    Range("B2").FormulaR1C1 = _
        "=SUMPRODUCT((MONTH(R16C1:R" & i & "C1)=ROW(R[-1]C[-1]))*R16C2:R" & i & "C2)"
        
    Range("B2").AutoFill Destination:=Range("B2:B13")

    Application.ScreenUpdating = True
    
End Sub
 
Başta yardımcı olan herkese çok teşekkürler.

Benzer bir sorum daha olacak. Aynı şekilde aylık olarak toplam çalışmasını bu sefer B sütununda yer alan bir karaktere göre de yapabilir miyiz? Örneğin Ocak ayında kaç tane "ABC" gibi bir giriş yapılmış şeklinde mesela? Bu şekilde diğer ayları da aşağı doğru çekeceğim. EĞERSAY formülü ile bir şeyler yapmaya çalıştım ancak başarılı olamadım. Formül ile yapılacak çözüm işimi görecek.Yardımcı olabilirseniz sevinirim.

Saygılarımla
 
Merhaba.

Konu açılış mesajındaki belge üzerinden gidersek;
verdiğim ilk cevapta kullandığım TOPLA.ÇARPIM formülünü aşağıdaki gibi değiştirerek sonuç alabilirsiniz.
(A16:A38 tarihler, B16:B38 tutarlar, C16:C38 ABC türü bilgiler olduğu, formülün de B2 hücresinden başlayarak uygulanacağı varsayımıyla)

Formülü B2 hücresine uygulayın ve aşağı doğru kopyalayın.
.
Kod:
=TOPLA.ÇARPIM((AY($A$16:$A$38)=SATIRSAY($B$[COLOR="red"][B]1[/B][/COLOR]:B[B][COLOR="red"]1[/COLOR][/B]))*($C$16:$C$38=[B]"ABC"[/B])*($B$16:$B$38))
 
Ömer Bey Merhabalar,

İlginiz için çok teşekkür ederim. dediğiniz şekilde ekteki excelde uyguladım. Yine tutar üzerinden mi işlemekte yoksa ben bir hata mı yaptım?

Benim yapmaya çalıştığım Ocak ayında 2 sefer "ABC" girişi yapılmış, Şubat ayında 1 sefer "ABC" girişi yapılmış ... şeklinde tüm ayların aşağıya doğru hesaplanması.

Saygılarımla
 

Ekli dosyalar

Geri
Üst