CountIf
CountIf
, bir tablodaki bir koşulu sağlayan toplam satır sayısını sayar. CountIf
, yalnızca benzersiz satırları değil, her satırı sayar.
Sözdizimi: CountIf(koşul)
.
Örnek: Aşağıdaki tabloda, CountIf([Plan] = "Basic")
3 sonucunu döndürür.
ID | Plan |
---|---|
1 | Basic |
2 | Basic |
3 | Basic |
4 | Business |
5 | Premium |
CountIf
gibi Toplamalar, sorgu oluşturucunun Özetle menüsüne > Özel İfade (gerekirse menüde aşağı kaydırın) bölümüne eklenmelidir.
Parametreler
CountIf
, bir boolean değeri (true
veya false
) döndüren bir fonksiyon veya koşullu ifade kabul eder.
Çoklu koşullar
Gerekli, isteğe bağlı ve karışık koşullarla CountIf
'i göstermek için aşağıdaki örnek verileri kullanacağız.
ID | Plan | Aktif Abonelik |
---|---|---|
1 | Basic | true |
2 | Basic | true |
3 | Basic | false |
4 | Business | false |
5 | Premium | true |
Gerekli koşullar
Bir tablodaki birden çok gerekli koşulu sağlayan toplam satır sayısını saymak için, koşulları AND
operatörünü kullanarak birleştirin:
CountIf(([Plan] = "Basic" AND [Aktif Abonelik] = true))
Bu ifade, yukarıdaki örnek verilerde 2 sonucunu döndürecektir (aktif aboneliği olan toplam Basic plan sayısı).
İsteğe bağlı koşullar
Bir tablodaki birden çok isteğe bağlı koşulu sağlayan toplam satır sayısını saymak için, koşulları OR
operatörünü kullanarak birleştirin:
CountIf(([Plan] = "Basic" OR [Aktif Abonelik] = true))
Örnek verilerde 4 sonucunu döndürür: üç Basic planı vardır, ayrıca bir Premium planın aktif aboneliği vardır.
Bazı gerekli ve bazı isteğe bağlı koşullar
Gerekli ve isteğe bağlı koşulları birleştirmek için, koşulları parantez kullanarak gruplayın:
CountIf(([Plan] = "Basic" OR [Plan] = "Business") AND [Aktif Abonelik] = "false")
Örnek verilerde 2 sonucunu döndürür: aktif aboneliği olmayan yalnızca iki Basic veya Business planı vardır.
İpucu: Gerekli koşulları isteğe bağlı hale getirmekten (veya tam tersi) kaçınmak için
AND
veOR
gruplarınızın etrafına parantez koymayı alışkanlık haline getirin.
Grup bazında koşullu sayımlar
Genel olarak, bir kategori veya grup için koşullu bir sayı almak için, örneğin plan başına aktif olmayan abonelik sayısı gibi, şunları yapacaksınız:
- Koşullarınızla bir
CountIf
ifadesi yazın. - Sorgu oluşturucuda bir Grupla sütunu ekleyin.
Örnek verileri kullanarak:
ID | Plan | Aktif Abonelik |
---|---|---|
1 | Basic | true |
2 | Basic | true |
3 | Basic | false |
4 | Business | false |
5 | Premium | true |
Plan başına aktif olmayan aboneliklerin toplamını sayın:
CountIf([Aktif Abonelik] = false)
Alternatif olarak, Aktif Abonelik sütununuzda aktif olmayan planları temsil eden null
(boş) değerler varsa, şunu kullanabilirsiniz:
CountIf([Ödeme], [Plan] != true)
"Eşit değil" operatörü
!=
olarak yazılmalıdır.
Koşullu sayımlarınızı plana göre görüntülemek için Grupla sütununu "Plan" olarak ayarlayın.
Plan | Toplam Aktif Olmayan Abonelikler |
---|---|
Basic | 1 |
Business | 1 |
Premium | 0 |
İpucu: Çalışmanızı başkalarıyla paylaşırken,
!=
filtresi daha kısa olsa bileOR
filtresini kullanmak faydalıdır. KapsayıcıOR
filtresi, koşullu sayımınıza hangi kategorilerin (örneğin, planlar) dahil olduğunu anlamayı kolaylaştırır.
Kabul edilen veri türleri
Veri türü | CountIf ile çalışır mı? |
---|---|
String | ❌ |
Number | ❌ |
Timestamp | ❌ |
Boolean | ✅ |
JSON | ❌ |
CountIf
, bir boolean değeri (true
veya false
) döndüren bir fonksiyon veya koşullu ifade kabul eder.
İlgili fonksiyonlar
Aynı şeyi yapmanın farklı yolları, çünkü yeni şeyler denemek eğlencelidir.
Patrona
Diğer araçlar
case
Count
ile case
'i birleştirebilirsiniz:
Count(case([Plan] = "Basic", [ID]))
CountIf
ile aynı şeyi yapmak için:
CountIf([Plan] = "Basic")
case
versiyonu, koşul karşılanmadığında farklı bir sütunu saymanıza olanak tanır. Örneğin, farklı kaynaklardan veri aldıysanız:
ID: Kaynak A | Plan: Kaynak A | ID: Kaynak B | Plan: Kaynak B |
---|---|---|---|
1 | Basic | ||
B | basic | ||
C | basic | ||
4 | Business | D | business |
5 | Premium | E | premium |
Her iki kaynaktaki toplam Basic plan sayısını saymak için, bir case
ifadesi oluşturabilirsiniz:
- "Plan: Kaynak A = "Basic" olan "ID: Kaynak A" satırlarını sayın
- "Plan: Kaynak B = "basic" olan "ID: Kaynak B" satırlarını sayın
Count(case([Plan: Kaynak A] = "Basic", [ID: Kaynak A],
case([Plan: Kaynak B] = "basic", [ID: Kaynak B])))
CumulativeCount
CountIf
artan sayımlar yapmaz. CumulativeCount ile case
'i birleştirmeniz gerekecek.
Örnek verilerimiz bir zaman serisi ise:
ID | Plan | Aktif Abonelik | Oluşturulma Tarihi |
---|---|---|---|
1 | Basic | true | 1 Ekim 2020 |
2 | Basic | true | 1 Ekim 2020 |
3 | Basic | false | 1 Ekim 2020 |
4 | Business | false | 1 Kasım 2020 |
5 | Premium | true | 1 Kasım 2020 |
Ve aktif planların artan sayısını şu şekilde almak istiyoruz:
Oluşturulma Tarihi: Ay | Bugüne Kadar Toplam Aktif Planlar |
---|---|
Ekim 2020 | 2 |
Kasım 2020 | 3 |
Özetle > Özel ifade bölümünden bir toplama oluşturun:
CumulativeCount(case([Aktif Abonelik] = true, [ID]))
Ayrıca Grupla sütununu "Oluşturulma Tarihi: Ay" olarak ayarlamanız gerekecek.
SQL
Bir soruyu sorgu oluşturucu kullanarak çalıştırdığınızda, Patrona sorgu oluşturucu ayarlarınızı (filtreler, özetler vb.) bir SQL sorgusuna dönüştürür ve sonuçlarınızı almak için bu sorguyu veritabanınıza karşı çalıştırır.
Örnek verilerimiz bir PostgreSQL veritabanında saklanıyorsa, SQL sorgusu:
SELECT COUNT(CASE WHEN plan = "Basic" THEN id END) AS total_basic_plans
FROM accounts
Patrona ifadesine eşdeğerdir:
CountIf([Plan] = "Basic")
Grup bazında koşullu sayımlar almak istiyorsanız, SQL sorgusu:
SELECT
plan,
COUNT(CASE WHEN aktif_abonelik = false THEN id END) AS toplam_aktif_olmayan_abonelikler
FROM accounts
GROUP BY
plan
SQL sorgusunun SELECT
kısmı Patrona ifadesiyle eşleşir:
CountIf([Aktif Abonelik] = false)
SQL sorgusunun GROUP BY
kısmı, Patrona Grupla sütununun "Plan" sütununa ayarlanmasıyla eşleşir.
Spreadsheets
Örnek verilerimiz "ID"nin A sütununda olduğu bir elektronik tabloda ise, elektronik tablo formülü:
=CountIf(B:B, "Basic")
Patrona ifadesiyle aynı sonucu üretir:
CountIf([Plan] = "Basic")
Python
Örnek verilerimiz df
adlı bir pandas
veri çerçevesi sütununda ise, Python kodu:
len(df[df['Plan'] == "Basic"])
Patrona ifadesiyle aynı mantığı kullanır:
CountIf([Plan] = "Basic")
Bir grup sütunu ile koşullu sayım almak için:
## Koşullarınızı ekleyin
df_filtered = df[df['Aktif abonelik'] == false]
## Bir sütuna göre gruplayın ve her gruptaki satırları sayın
len(df_filtered.groupby('Plan'))
Yukarıdaki Python kodu, Patrona CountIf
ifadesiyle aynı sonucu üretecektir (ve Grupla sütunu "Plan" olarak ayarlanmıştır).
CountIf([Aktif Abonelik] = false)