• DİKKAT

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

Soru formülle özet toplam

Katılım
18 Ağustos 2009
Mesajlar
752
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Arkadaşlar bir dosyamda tarihlere göre bir gelir tutarı yapmaktayım ve bunları aylara göre şuan da elle özet toplam haline getirmekteyim. Burada amacım macro ya da formüllerle bunu otomatik tespit ettirerek aylık özet toplam aldırmaktadır. Ekte bir örnek dosya gönderdim bakınca sizlerde daha iyi anlayacaksınız. F1:F12 kısımlarına A sütunundan hangi ayın olduğunu tespit ettirip B sütunundan da karşılığı olan değeri toplattırmak istiyorum. Bu konuda desteklerinize ihtiyacım vardır.

Şimdiden teşekkürler.
 

Ekli dosyalar

F1 Hücresine kopyalayınız.Aşağı doğru çoğaltınız.
Kod:
=TOPLA.ÇARPIM((YIL($A$1:$A$200)=SAĞDAN($E1;4)*1)*(METNEÇEVİR($A$1:$A$200;"aaaa")=KIRP(SOLDAN($E1;BUL(" ";$E1))))*($B$1:$B$200))
 
F1 Hücresine kopyalayınız.Aşağı doğru çoğaltınız.
Kod:
=TOPLA.ÇARPIM((YIL($A$1:$A$200)=SAĞDAN($E1;4)*1)*(METNEÇEVİR($A$1:$A$200;"aaaa")=KIRP(SOLDAN($E1;BUL(" ";$E1))))*($B$1:$B$200))


Hocam öncelikle yardımınız için teşekkür ederim.

Formülünüzü kendim kullanmış olduğum dosyama göre aşağıdaki şekilde uyarladım ancak dosyam başka dosyalarla bağlantılı olduğundan ve karşı dosya açık olmadığından dolayı değerleri getiremediği durumlarda #BAŞV! yazmaktadır. Diğer formülüm ise
=EĞER(BUGÜN()>=$B$1+SÜTUN()-2;DOLAYLI("'[2020-01--TORNA.xlsm]"&A5&"'!$M$3");"") şeklinde dir. Sizin komutunuza bir eklenti yaparak sadece değer oluşmuş olanların toplamını aldırmak için ne yapmam gerekir? Hücrelerde #BAŞV! yazanları görmezden gelerek komuta toplama işlemi yaptıracak.

Teşekkürler..


=TOPLA.ÇARPIM((YIL($B$3:$B$368)=SAĞDAN($B370;4)*1)*(METNEÇEVİR($B$3:$B$368;"aaaa")=KIRP(SOLDAN($B370;BUL(" ";$B370))))*(C3:C368))
 
Merhaba,

#BAŞV! hatası veren hücrelere EĞERHATA formülü ekleyerek yönetebilirsiniz. Böylece son önerilen formülü uzatmamış olursunuz.
 
Merhaba,

#BAŞV! hatası veren hücrelere EĞERHATA formülü ekleyerek yönetebilirsiniz. Böylece son önerilen formülü uzatmamış olursunuz.

Bunlar karşıdaki bir dosyadan çalışan dosyalar hocam açıldığı zaman hatası giden ya da karşıda mesela 3 nolu sayfası bulunmadığı durumlarda oluşan hatalar hocam. Mesela
=EĞER(BUGÜN()>=$B$1+SÜTUN()-2;DOLAYLI("'[2020-01--TORNA.xlsm]"&A5&"'!$M$3");"")

formülünü ne şekilde değiştirmemi önerirsiniz?

Teşekkürler.
 
Aşağıdaki gibi düzenleyip deneyiniz.

Kod:
=EĞERHATA(EĞER(BUGÜN()>=$B$1+SÜTUN()-2;DOLAYLI("'[2020-01--TORNA.xlsm]"&A5&"'!$M$3");"");"")
 
Aşağıdaki gibi düzenleyip deneyiniz.

Kod:
=EĞERHATA(EĞER(BUGÜN()>=$B$1+SÜTUN()-2;DOLAYLI("'[2020-01--TORNA.xlsm]"&A5&"'!$M$3");"");"")

Bu şekilde oldu hocam ancak tam 1500 tane hücrede formülü tek tek değiştirmem gerekecek. Dediğim gibi
=TOPLA.ÇARPIM((YIL($B$3:$B$368)=SAĞDAN($B370;4)*1)*(METNEÇEVİR($B$3:$B$368;"aaaa")=KIRP(SOLDAN($B370;BUL(" ";$B370))))*(C3:C368))
formülünde sadece sayı olanlara işlem uygulatabilirsem 1500 hücreye gerek kalmayacak. Aşağıdaki şekilde denedim olmadı.


=ESAYIYSA(TOPLA.ÇARPIM((YIL($B$3:$B$368)=SAĞDAN($B370;4)*1)*(METNEÇEVİR($B$3:$B$368;"aaaa")=KIRP(SOLDAN($B370;BUL(" ";$B370))))*(C3:C368)))
 
Sizin başvuru veren formülünüz hangi sütunda?
 
Aşağıdaki formülü dosyanıza göre düzenleyiniz.
Kod:
=TOPLA.ÇARPIM($B$1:$B$200;1*(ESAYIYSA($B$1:$B$200)*(YIL($A$1:$A$200)=SAĞDAN($E1;4)*1)*(METNEÇEVİR($A$1:$A$200;"aaaa")=KIRP(SOLDAN($E1;BUL(" ";$E1))))))
 
Eğer yanlış bilmiyorsam TOPLA.ÇARPIM formülü #BAŞV! hatasını aşamıyor. Bu sebeple ya hata veren alanı düzeltmelisiniz ya da alternatif DİZİ formül kullanabilirsiniz.

CTRL+SHIFT+ENTER tuşlarına basarak formül girişini tamamlayınız. Aksi halde doğru sonuç üretmez.

Kod:
=TOPLA(EĞER(METNEÇEVİR($A$1:$A$200;"aaaa yyyy")=E1;EĞER(ESAYIYSA($B$1:$B$200);$B$1:$B$200)))
 
#1. iletideki ekli dosyanıza ait kod.

Kod:
Sub test()
Dim a(), son As Long
son = Cells(Rows.Count, 1).End(3).Row
a = Range("A1:B" & son).Value
Set dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(a)
    ay = UCase(Replace(Replace(Format(a(i, 1), "mmmm"), "i", "İ"), "ı", "I"))
    yıl = Year(a(i, 1))
    aranan = ay & " " & yıl
    dic(aranan) = dic(aranan) + a(i, 2)
Next i
a = Range("E1:E12").Value
    For i = 1 To UBound(a)
        k = a(i, 1)
        If dic.exists(k) Then
            a(i, 1) = dic(k)
        Else
            a(i, 1) = Empty
        End If
    Next i
[F1].Resize(UBound(a), UBound(a, 2)) = a
MsgBox "İşlem tamam.", vbInformation
End Sub
 
Eklediğiniz örnek dosyaya göre C369 hücresine aşağıdaki DİZİ formülü uygulayıp deneyiniz.

CTRL+SHIFT+ENTER tuşlarına basarak formül girişini tamamlayınız. Aksi halde doğru sonuç üretmez.

Kod:
=TOPLA(EĞER(METNEÇEVİR($B$2:$B$367;"aaaa yyyy")=B369;EĞER(ESAYIYSA($C$2:$C$367);$C$2:$C$367)))
 
Geri
Üst