Vba: i̇ki tarih arasında ise nasıl eklenir
Hücrelerin iki tarih arasında olması durumunda toplamı hesaplamak için VBA’da aşağıdaki sözdizimini kullanabilirsiniz:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
Bu özel örnek, yalnızca A2:A9 aralığındaki tarihin E1 hücresindeki başlangıç tarihi ile E2 hücresindeki bitiş tarihi arasında olması durumunda B2:B9 aralığındaki değerleri toplayacaktır.
Toplam, daha sonra E3 hücresinde görüntülenecektir.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA’da iki tarih arasında If nasıl eklenir?
Bir perakende mağazasında farklı tarihlerde satılan ürünlerin toplam sayısı hakkında bilgi içeren aşağıdaki veri setine sahip olduğumuzu varsayalım:
Diyelim ki sadece 01/07/2023 ile 01/26/2023 tarihleri arasındaki satışların toplamını hesaplamak istiyoruz.
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
E3 hücresinin 16 değerini içerdiğini unutmayın.
Bu, tarihin 01/07/2023 ile 01/26/2023 arasında olduğu satış sütunundaki değerlerin toplamını temsil eder.
Tarih sütununda karşılık gelen değerin 01/7/2023 ile 26/01/2023 arasında olduğu Satış sütunundaki değerlerin toplamını manuel olarak hesaplayarak bunun doğru olduğunu doğrulayabiliriz:
Satışların toplamı: 3 + 7 + 6 = 16 .
Bu, VBA tarafından hesaplanan değere karşılık gelir.
Sırasıyla E1 ve E2 hücrelerindeki başlangıç ve bitiş tarihi değerlerini değiştirip makroyu tekrar çalıştırırsanız, yeni tarihler için satış toplamını hesaplayacağını unutmayın.
Not : Tarih sütunundaki değerlerin Excel’de zaten tarih olarak biçimlendirildiği varsayılmaktadır.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: ETOPLA ve ETOPLA işlevleri nasıl yazılır
VBA: COUNTIF ve COUNTIFS işlevleri nasıl yazılır?
VBA: EĞER ORTALAMA ve EĞER ORTALAMA işlevleri nasıl yazılır