Excel VBA ile EĞERSAY (COUNTIF): Koşullu Sayma
1. Örnek Veri Tablosu
Aşağıdaki tabloda ürünler ve tarihler var. COUNTIF ile belirli koşullara göre sayım yapacağız.
Tablo Bilgisi
9 ürün kaydı var. COUNTIF ile belirli ürünleri ve tarih aralıklarını sayacağız.
2. Yöntem 1: COUNTIF ile Tek Koşullu Sayma
COUNTIF tek koşula göre hücre sayar. Şimdi tablodaki "Ürün A" sayısını bulalım.
Sub UrunASay()
Dim sonuc As Long
sonuc = WorksheetFunction.CountIf(Range("B2:B10"), "Ürün A")
MsgBox "Ürün A sayısı: " & sonuc
End Sub
Kod Açıklaması
- Dim sonuc As Long → Sayı değişkeni
- CountIf(Range("B2:B10"), "Ürün A") → B2:B10'da "Ürün A" sayar
- MsgBox → Sonucu gösterir
Tablo: 🟩 Sayılan hücreler (Ürün A):
📌 Sonuç: COUNTIF ile tabloda 4 adet "Ürün A" bulundu.
3. Yöntem 2: COUNTIFS ile Çok Koşullu Sayma
COUNTIFS birden fazla koşula göre hücre sayar. Şimdi tablodaki "2023 yılında kaç Ürün A var?" bulalım.
Sub UrunVeTarihSay()
Dim sonuc As Long
sonuc = WorksheetFunction.CountIfs(Range("B2:B10"), "Ürün A", Range("A2:A10"), ">01.01.2023")
MsgBox "2023'te Ürün A: " & sonuc
End Sub
Kod Açıklaması
- Dim sonuc As Long → Sayı değişkeni
- CountIfs(aralık1, koşul1, aralık2, koşul2) → 2 koşula göre sayar
- "Ürün A" ve ">01.01.2023" → İki koşul
İpucu
İstediğiniz kadar koşul ekleyebilirsiniz: CountIfs(aralık1, koşul1, aralık2, koşul2, aralık3, koşul3)
Tablo: 🔵 Sayılan hücreler (2023'te Ürün A):
📌 Sonuç: COUNTIFS ile tabloda 2023 yılında 3 adet "Ürün A" bulundu. (10.01.2024 tarihli Ürün A sayılmadı)
4. VBA Makroları için Ön Hazırlık
1. Geliştirici Sekmesini Aktifleştirin
Excel'de VBA kodlarını yazabilmek için önce Geliştirici sekmesini aktif etmelisiniz. Detaylı bilgi için tıklayın.
3. Modül Ekleyin
Kodlarınızı yazmak için bir Modül eklemelisiniz. Makro yazma rehberi için tıklayın.
2. Visual Basic Düzenleyici'yi Açın
Alt + F11 (Windows) veya Option + F11 (Mac) ile hızlıca açabilirsiniz.
4. Kodu Çalıştırın
Yazdığınız kodu çalıştırmak için F5 tuşuna basın veya Çalıştır butonuna tıklayın. VBA makro nedir? öğrenmek için tıklayın.
F5
▶️ Makroyu çalıştır
5. Sıkça Sorulan Sorular
01 COUNTIF ile EĞERSAY arasındaki fark nedir?
Aynı fonksiyondur. Excel'de EĞERSAY, VBA'da COUNTIF olarak kullanılır.
02 COUNTIF ve COUNTIFS arasındaki fark nedir?
COUNTIF tek koşul, COUNTIFS çok koşul için kullanılır.
03 Tarih koşulu nasıl yazılır?
">01.01.2023" veya "<01.01.2024" şeklinde yazılır.
04 Metin içeren hücreler nasıl sayılır?
"*ürün*" ile içinde "ürün" geçenleri sayar.
05 Sonucu hücreye nasıl yazarım?
Range("C1").Value = say ile C1 hücresine yazabilirsiniz.
06 Mac'te COUNTIF çalışır mı?
Evet, Mac'te de aynı kodlar çalışır. Option+F11 ile VBA'ya erişin.