Excel Şarta Bağlı Toplama Makrosu Nasıl Yazılır
Bu makalede, Excel VBA kullanarak şarta bağlı toplama işleminin nasıl kolay ve hızlı bir şekilde yapılacağı gösterilmektedir.
Excel makro ile toplama işlemi yapabilmek için öncelikle VBA geliştirici sekmesinin etkinleştirilmesi sonrasında da kod yazımı için modül eklenmesi gerekmektedir. Linklerde yer alan adımlar takip edilerek bu adımlar tamamlanabilir.
Excel VBA Tek Şarta Bağlı Toplama Makrosu
Aşağıda kullanışlı ve basit bir şarta bağlı toplama kodu bulunmaktadır. Bu kodda toplama işlemini gerçekleştirmek için WorksheetFunction.Sumif fonksiyonu kullanılmıştır. Aşağıdaki kod; Sayfa 1 isimli çalışma kitabı içerisinde yer alan B1:B10 hücreleri arasındaki sayıları toplamaktadır. Koşul ise bu sayıların 5'ten büyük olmasıdır.
Kodu kopyala diyerek, aşağıdaki Şarta Bağlı Toplama kodunu kendi VBA projenize yapıştırabilirsiniz.
Sub Örnek()
Dim a As Double
a=WorksheetFunction.SumIf(Sheets("Sayfa1").Range("B1:B10"), "<5")
Sheets("Sayfa1").Range("A1").value=a
End Sub
Şimdi bu şarta bağlı toplama örneğini daha detaylı inceleyelim.
| KOD | Açıklaması |
|---|---|
| Sub Örnek() | Sub kod başlangıcıdır. Örnek kelimesi değiştirilebilir. |
| Dim a As Double | "a" isimli bir değişken tanımlıyoruz. Double ise değişkenin sayı olduğunu belirtiyor. |
| WorksheetFunction.SumIf(Sheets("Sayfa1").Range("B1:B10"), "<5") | B1:B10 arasındaki 5'den küçük sayıların toplamını döndürür. |
| a= [SONUÇ] | İşlem sonucunu a'ya eşitliyoruz. |
| Sheets("Sayfa1").Range("A1").value=a | A1 hücresine, a değişkenini atıyoruz. Cevap burada gözükecektir. |
| End Sub | Standart ifade. Makro sonunu belirtir. |
Excel VBA Birden Çok Şarta Bağlı Toplama Makrosu
Aşağıda oldukça kullanışlı bir çok şarta bağlı toplama makrosu bulunmaktadır. Bu kodda toplama işlemini gerçekleştirmek için WorksheetFunction.SumIfs fonksiyonu kullanılmıştır. Bu fonksiyonun genel mantığı aşağıdaki gibidir. Aşağıda görüldüğü gibi formüle istenildiği kadar yeni koşul aralıkları ve koşullar eklenebilir.
=WorksheetFunction.SumIfs([Toplanacak Aralık][Koşul Aralığı-1], [Koşul-1][Koşul Aralığı-2], [Koşul-2],....)
Aşağıdaki kod; Sayfa 1 isimli çalışma kitabı içerisinde yer alan B1:B10 hücreleri arasındaki sayıları toplamaktadır. Koşullar ise bu sayıların 5'ten büyük ve 9'dan küçük olmasıdır. Bir diğer ifadeyle sadece 6,7 ve 8'in toplanmasını istiyoruz. Kodu kopyala diyerek, aşağıdaki örneği kendi VBA projenize yapıştırabilirsiniz.
Sub Örnek2()
Dim a As Double
a=WorksheetFunction.SumIfs(Sheets("Sayfa1").Range("B1:B10"), Sheets("Sayfa1").Range("B1:B10"),"<9", Sheets("Sayfa1").Range("B1:B10"), ">5" )
Sheets("Sayfa1").Range("A1").value=a
End Sub
Kod figürde görüldüğü gibi sadece 6,7 ve 8'i toplayarak A1 hücresine yazdırıyor.
Şimdi şarta bağlı toplama örneğini daha detaylı inceleyelim.
| KOD | Açıklaması |
|---|---|
| Sub Örnek2() | Sub kod başlangıcıdır. Örnek2 kelimesi değiştirilebilir. |
| Dim a As Double | "a" isimli bir değişken tanımlıyoruz. Double ise değişkenin sayı olduğunu belirtiyor. |
| WorksheetFunction.SumIfs(Sheets("Sayfa1").Range("B1:B10"), Sheets("Sayfa1").Range("B1:B10"),"<9", Sheets("Sayfa1").Range("B1:B10"), ">5" ) | B1:B10 arasındaki 5'den büyük ve 9'dan küçük sayıların toplamını döndürür. Koşul sayısı istenildiği kadar arttırılabilir. |
| a= [SONUÇ] | İşlem sonucunu a'ya eşitliyoruz. |
| Sheets("Sayfa1").Range("A1").value=a | A1 hücresine, a değişkenini atıyoruz. Cevap burada gözükecektir. |
| End Sub | Standart ifade. Makro sonunu belirtir. |
Sonuç
Sonuç olarak, şarta bağlı toplama makrosu kullanarak Excel'deki veri analizlerinizi çok daha verimli hale getirebilirsiniz. Tek koşullu ve çok koşullu şarta bağlı toplama makrosu örnekleri sayesinde, verilerinizi farklı koşullara göre toplamak ve analiz etmek oldukça basit bir hale gelir.
Yorumlar