Excel VBA ile EĞERSAY (COUNTIF): Koşullu Sayma

Excel VBA ile EĞERSAY (COUNTIF): Koşullu Sayma
› Excel VBA › EĞERSAY (COUNTIF)

1. Örnek Veri Tablosu

Aşağıdaki tabloda ürünler ve tarihler var. COUNTIF ile belirli koşullara göre sayım yapacağız.

# A (Tarih) B (Ürün)
1 Tarih Ürün
2 01.05.2023 Ürün A
3 15.06.2023 Ürün B
4 20.07.2023 Ürün A
5 10.08.2023 Ürün C
6 05.09.2023 Ürün B
7 12.10.2023 Ürün A
8 20.11.2023 Ürün C
9 15.12.2023 Ürün B
10 10.01.2024 Ürün A
Örnek tablo (A1:B10) - Tarih ve Ürün verileri

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):

# A (Tarih) B (Ürün)
2 01.05.2023 🟩 Ürün A
3 15.06.2023 Ürün B
4 20.07.2023 🟩 Ürün A
5 10.08.2023 Ürün C
6 05.09.2023 Ürün B
7 12.10.2023 🟩 Ürün A
8 20.11.2023 Ürün C
9 15.12.2023 Ürün B
10 10.01.2024 🟩 Ürün A
🟩 4 adet "Ürün A" sayıldı

📌 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):

# A (Tarih) B (Ürün)
2 🔵 01.05.2023 🔵 Ürün A
3 15.06.2023 Ürün B
4 🔵 20.07.2023 🔵 Ürün A
5 10.08.2023 Ürün C
6 05.09.2023 Ürün B
7 🔵 12.10.2023 🔵 Ürün A
8 20.11.2023 Ürün C
9 15.12.2023 Ürün B
10 10.01.2024 Ürün A
🔵 3 adet "2023'te Ürün A" sayıldı

📌 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.

VBA - Geliştirici sekmesi
⚙️ Geliştirici sekmesini aktifleştirme

3. Modül Ekleyin

Kodlarınızı yazmak için bir Modül eklemelisiniz. Makro yazma rehberi için tıklayın.

VBA - Modül ekleme
📝 Modül ekleme

2. Visual Basic Düzenleyici'yi Açın

Alt + F11 (Windows) veya Option + F11 (Mac) ile hızlıca açabilirsiniz.

Visual Basic Düzenleyici'yi Açma
📝 Visual Basic Düzenleyici'yi Açma

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

📋 Makro çalıştırma

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.

💡 İpucu: Makroları çalıştırmadan önce dosyanızı yedeklemeyi unutmayın. Ctrl+S ile kaydedin.
🤖 Akıllı Arama Asistanı
💬 Merhaba! Size nasıl yardımcı olabilirim?
Excel Asistanı
👋 Merhaba! Excel ile ilgili ne öğrenmek istersin? Örn: DÜŞEYARA nasıl kullanılır?
DÜŞEYARA Pivot Tablo Gantt Şeması