Ana içeriğe geç

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.

IDPlan
1Basic
2Basic
3Basic
4Business
5Premium

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.

IDPlanAktif Abonelik
1Basictrue
2Basictrue
3Basicfalse
4Businessfalse
5Premiumtrue

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 ve OR 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:

  1. Koşullarınızla bir CountIf ifadesi yazın.
  2. Sorgu oluşturucuda bir Grupla sütunu ekleyin.

Örnek verileri kullanarak:

IDPlanAktif Abonelik
1Basictrue
2Basictrue
3Basicfalse
4Businessfalse
5Premiumtrue

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.

PlanToplam Aktif Olmayan Abonelikler
Basic1
Business1
Premium0

İpucu: Çalışmanızı başkalarıyla paylaşırken, != filtresi daha kısa olsa bile OR 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 APlan: Kaynak AID: Kaynak BPlan: Kaynak B
1Basic
Bbasic
Cbasic
4BusinessDbusiness
5PremiumEpremium

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:

IDPlanAktif AbonelikOluşturulma Tarihi
1Basictrue1 Ekim 2020
2Basictrue1 Ekim 2020
3Basicfalse1 Ekim 2020
4Businessfalse1 Kasım 2020
5Premiumtrue1 Kasım 2020

Ve aktif planların artan sayısını şu şekilde almak istiyoruz:

Oluşturulma Tarihi: AyBugüne Kadar Toplam Aktif Planlar
Ekim 20202
Kasım 20203

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

Daha fazla okuma