• DİKKAT

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

Verilen İki Sayfa Arasında Toplama Yapmak

  • Konbuyu başlatan Konbuyu başlatan e555e
  • Başlangıç tarihi Başlangıç tarihi

e555e

Altın Üye
Katılım
25 Mayıs 2012
Mesajlar
14
Excel Vers. ve Dili
2010 tr
Merhaba Arkadaşlar,
Altın üyeliğim henüz aktif olmadığı için ve rapora acil ihtiyacım olduğu için sizden örnek dosya göndermeden yardım rica ediyorum.

İhtiyacım olan tam olarak şu:
1.03.2022 , 2.3.2022 şeklinde devam edip giden sayfa isimlerim var. (Bu şekilde sayfa adı hata verirse 1_3_2022 şeklinde de değiştirebilirim)
Bir tane de özet sayfam var. Özet sayfasında b2 hücresine başlangıç sayfa adını yazıp, c2 hücresine de bitiş sayfa adını yazıp diğer sayfalarda yeri sabit olan d2 ile d10 arasındaki hücrelerin toplamını almak istiyorum.

Örneğin : özet sayfasında b2 hücresine 1.03.2022 yazacağım c2 hücresine de 25.04.2022 yazacağım a2 hücresinde bu iki sayfa arasında bulunan bütün sayfalardaki d2 ile d10 hücreleri arasındaki rakamları toplayıp verecek.

Şimdiden çok teşekkür ederim.
 
Merhaba.
Kod:
Sub Topla()
    Dim Bak As Date, Bas As Date, son As Date
    Dim Toplam As Double
    Dim SayfaAdi As String
    
    Bas = Worksheets("Özet").Range("B2")
    son = Worksheets("Özet").Range("C2")
    
    For Bak = Bas To son
        SayfaAdi = Bak
        Toplam = Toplam + WorksheetFunction.Sum(Worksheets(SayfaAdi).Range("D2:D9"))
    Next
    MsgBox "Toplam = " & Toplam
End Sub
 
Dosyanızı dosya.tc gibi bir siteye ekleyebilirsiniz.

Bir hata verdiğinde hangi satırda hata verdiğini söylemeniz gerekir.
 
Örnek dosya ekte bulunmakta. örnek dosyada Özet sayfasında bir iki değişiklik yaptım. Alt sayfalarda bulunan ve özet sayfaya çekmek istediğim içerikleri ekledim. Örnek olarak başlangıç ve bitiş tarihleri girdim.
 

Ekli dosyalar

Örnekteki gibi beş tane mi toplam almanız gerekiyor yoksa bunlar artıp eksiliyor mu?
 
.

Dosyanız ekte.

Sarı olarak gösterdiğim yerleri örnek alarak diğer yerleri kendiniz yapabilirsiniz.

.
çalıştı ama ilk sayfa son sayfa ayarlaması yapmak gerekiyor sanırım, 01.03.2022 de 1 tane var 02.03.2022 tarihinde de 1 tane var ama o iki tarih aralığını seçince sonuç 3 çıkıyor
 
teşekkürler çalıştı. tarih formatını 01.03.2022 şeklinde yapıp sayfa adlarını da o şekilde kullanmamız mümkün müdür

Merhaba

Anlamadığım bir nokta var,
Örnek dosyanızda 3d formül zaten yazmışsınız, aynı şekilde neden devam etmiyorsunuz?
İdris beyin çözümü sizin örnek dosyanıza göre, onu kullanmanızı öneririm.

İdris Üstadımız küçük bir noktayı atlamış, müsaade ederse ben düzelteyim.
Kod:
=TOPLA.ÇARPIM(S(DOLAYLI(KAYDIR($M$1;KAÇINCI(B7;M1:M306;0)-1;0;KAÇINCI(C7;M1:M306;0)-KAÇINCI(B7;M1:M306;0)+1)&"!D2")))
 

Ekli dosyalar

Merhaba

Anlamadığım bir nokta var,
Örnek dosyanızda 3d formül zaten yazmışsınız, aynı şekilde neden devam etmiyorsunuz?
İdris beyin çözümü sizin örnek dosyanıza göre, onu kullanmanızı öneririm.

İdris Üstadımız küçük bir noktayı atlamış, müsaade ederse ben düzelteyim.
Kod:
=TOPLA.ÇARPIM(S(DOLAYLI(KAYDIR($M$1;KAÇINCI(B7;M1:M306;0)-1;0;KAÇINCI(C7;M1:M306;0)-KAÇINCI(B7;M1:M306;0)+1)&"!D2")))
Teşekkürler, tam olarak işimi gördü elinize sağlık.
 
@İdris SERDAR Bey, 3B formül içinde DOLAYLI fonksiyonunu kullanamadım.
Bunun bir yolu var mı?
Kod:
=TOPLA('03.03.2022:05.03.2022'!$D$2:$D$10)
 
@İdris SERDAR Bey, 3B formül içinde DOLAYLI fonksiyonunu kullanamadım.
Bunun bir yolu var mı?
Kod:
=TOPLA('03.03.2022:05.03.2022'!$D$2:$D$10)

Merhaba Süleyman bey,

1.Verdiğiniz =SUM(ilk:son!A2) formatında ara sayfalardan başlayan ve bitenler için INDIRECT kullanım yolu yok.
2. INDIRECT işlevi aynı zamanda dinamik alanla da kullanılamıyor.
3. İşin içine tarih ve veri doğrulama girince de işler çetrefilleşiyor.

Ben ekte verdiğim dosyada değişik ve basit bir çözüm üretmeye çalıştım.

.
 

Ekli dosyalar

Merhaba İdris bey,

Pratik ve güzel bir çözüm olmuş, elinize sağlık
Müsaade ederseniz Bitiş tarihinin Başlangıç tarihinden önce seçilmesini önlemek ve #YOK hatası almamak için K1 hücredeki formüle alternatif getireyim.

Kod:
=METNEÇEVİR(J1;"gg.aa.yyyy")+1
 
Geri
Üst