Ana içeriğe geç

SumIf

SumIf, bir koşula göre bir sütundaki değerleri toplar.

Sözdizimi: SumIf(sütun, koşul).

Örnek: aşağıdaki tabloda, SumIf([Ödeme], [Plan] = "Temel") 200 döndürür.

ÖdemePlan
100Temel
100Temel
200İşletme
200İşletme
400Premium

sumif gibi Toplama formülleri, sorgu oluşturucunun Özetle menüsüne > Özel İfade (gerekirse menüde aşağı kaydırın) eklenmelidir.

Parametreler

  • sütun, sayısal bir sütunun adı veya sayısal bir sütun döndüren bir işlev olabilir.
  • koşul, bir işlev veya koşullu ifade olabilir. [Ödeme] > 100 gibi bir koşullu ifade gibi bir boolean değeri (true veya false) döndürür.

Çoklu koşullar

gerekli, isteğe bağlı ve karışık koşullarla SumIf'i göstermek için aşağıdaki örnek verileri kullanacağız.

ÖdemePlanAlınma Tarihi
100Temel1 Ekim 2020
100Temel1 Ekim 2020
200İşletme1 Ekim 2020
200İşletme1 Kasım 2020
400Premium1 Kasım 2020

Gerekli koşullar

Bir sütunu birden çok gerekli koşula göre toplamak için, koşulları AND operatörünü kullanarak birleştirin:

SumIf([Ödeme], ([Plan] = "Temel" AND month([Alınma Tarihi]) = 10))

Bu ifade, yukarıdaki örnek verilerde 200 döndürür: Ekim ayında Temel Planlar için alınan tüm ödemelerin toplamı.

İsteğe bağlı koşullar

Bir sütunu birden çok isteğe bağlı koşulla toplamak için, koşulları OR operatörünü kullanarak birleştirin:

SumIf([Ödeme], ([Plan] = "Temel" OR [Plan] = "İşletme"))

Örnek verilerde 600 döndürü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 gruplandırın:

SumIf([Ödeme], ([Plan] = "Temel" OR [Plan] = "İşletme") AND month([Alınma Tarihi]) = 10)

Örnek verilerde 400 döndürü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.

Gruba göre koşullu alt toplamlar

Bir kategori veya grup için koşullu bir alt toplam almak için (örneğin, plan başına toplam ödemeler):

  1. Koşullarınızla bir sumif formülü yazın.
  2. Sorgu oluşturucuda bir Gruplandır sütunu ekleyin.
ÖdemePlanAlınma Tarihi
100Temel1 Ekim 2020
100Temel1 Ekim 2020
200İşletme1 Ekim 2020
200İşletme1 Kasım 2020
400Premium1 Kasım 2020

İşletme ve Premium planlar için ödemeleri toplamak için:

SumIf([Ödeme], [Plan] = "İşletme" OR [Plan] = "Premium")

Veya, "Temel" olmayan tüm planlar için ödemeleri toplayın:

SumIf([Ödeme], [Plan] != "Temel")

"eşit değil" operatörü != != olarak yazılmalıdır.

Bu ödemeleri aya göre görüntülemek için, Gruplandır sütununu "Alınma Tarihi: Ay" olarak ayarlayın.

Alınma Tarihi: Ayİşletme ve Premium Planlar için Toplam Ödemeler
Ekim200
Kasım600

İpucu: Çalışmanızı diğer kişilerle paylaşırken, != filtresi daha kısa olsa bile, OR filtresini kullanmak yararlıdır. Kapsayıcı OR filtresi, toplamaya hangi kategorilerin (örneğin, planlar) dahil edildiğini anlamayı kolaylaştırır.

Kabul edilen veri türleri

Veri türüSumIf ile çalışır
Dize
Sayı
Zaman damgası
Boolean
JSON

Bkz. parametreler.

İlgili işlevler

Aynı şeyi yapmanın farklı yolları, çünkü CSV dosyaları hala dünyanın verilerinin %40'ını oluşturuyor.

Patrona

Diğer araçlar

case

Sum ve case birleştirebilirsiniz:

Sum(case([Plan] = "Temel", [Ödeme]))

SumIf ile aynı şeyi yapmak için:

SumIf([Ödeme], [Plan] = "Temel")

case sürümü, koşul karşılanmadığında farklı bir sütunu toplamanıza olanak tanır. Örneğin, şu şekilde bir "Gelir" sütunu oluşturabilirsiniz:

  • "Plan = Temel" olduğunda "Ödemeler" sütununu toplar ve
  • aksi takdirde "Sözleşme" sütununu toplar.
sum(case([Plan] = "Temel", [Ödeme], [Sözleşme]))

CumulativeSum

SumIf çalışan toplamlar yapmaz. CumulativeSum toplamayı case formülüyle birleştirmeniz gerekir.

Örneğin, ödeme örnek verilerimizi kullanarak İşletme ve Premium planlar için aylık ödemelerin çalışan toplamını almak için:

Alınma Tarihi: Ayİşletme ve Premium Planlar için Toplam Ödemeler
Ekim200
Kasım800

Özetle > Özel ifade'den bir toplama oluşturun:

CumulativeSum(case(([Plan] = "Temel" OR [Plan] = "Premium"), [Ödeme], 0))

Gruplandır sütununu "Alınma Tarihi: Ay" olarak ayarlamayı unutmayın.

SQL

sorgu oluşturucuyu kullanarak bir soru ç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.

ödeme örnek verilerimiz bir PostgreSQL veritabanında saklanıyorsa, SQL sorgusu:

SELECT
SUM(CASE WHEN plan = "Temel" THEN ödeme ELSE 0 END) AS toplam_temel_plan_ödemeleri
FROM faturalar

Patrona ifadesine eşdeğerdir:

SumIf([Ödeme], [Plan] = "Temel")

gruplandırma sütunuyla birden çok koşul eklemek için SQL sorgusunu kullanın:

SELECT
DATE_TRUNC("ay", alınma_tarihi) AS alınma_tarihi_ay,
SUM(CASE WHEN plan = "İşletme" THEN ödeme ELSE 0 END) AS toplam_işletme_ve_premium_ödemeleri
FROM faturalar
GROUP BY
DATE_TRUNC("ay", alınma_tarihi)

SQL sorgusunun SELECT kısmı Patrona SumIf ifadesiyle eşleşir:

SumIf([Ödeme], [Plan] = "İşletme" OR [Plan] = "Premium")

SQL sorgusunun GROUP BY kısmı, "Alınma Tarihi: Ay" olarak ayarlanan bir Patrona Gruplandır sütunuyla eşleşir.

E-tablolar

ödeme örnek verilerimiz, "Ödeme"nin A sütununda ve "Alınma Tarihi"nin B sütununda olduğu bir e-tabloda bulunuyorsa, e-tablo formülü:

=SUMIF(B:B, "Temel", A:A)

Patrona ifadesiyle aynı sonucu verir:

SumIf([Ödeme], [Plan] = "Temel")

Ek koşullar eklemek için, bir e-tablo dizi formülüne geçmeniz gerekir.

Python

ödeme örnek verilerimiz, df adlı bir pandas veri çerçevesi sütununda bulunuyorsa, Python kodu:

df.loc[df['Plan'] == "Temel", 'Ödeme'].sum()

Patrona ifadesiyle eşdeğerdir:

SumIf([Ödeme], [Plan] = "Temel")

gruplandırma sütunuyla koşullu bir toplama almak için:

import datetime as dt

## İsteğe bağlı: sütunu bir datetime nesnesine dönüştürün

df['Alınma Tarihi'] = pd.to_datetime(df['Alınma Tarihi'])

## Ay ve yılı çıkarın

df['Alınma Tarihi: Ay'] = df['Alınma Tarihi'].dt.to_period('M')

## Koşullarınızı ekleyin

df_filtered = df[(df['Plan'] == 'İşletme') | (df['Plan'] == 'Premium')]

## Toplayın ve gruplandırın

df_filtered.groupby('Alınma Tarihi: Ay')['Ödeme'].sum()

Yukarıdaki adımlar, Patrona SumIf ifadesiyle aynı sonucu verecektir (Gruplandır sütunu "Alınma Tarihi: Ay" olarak ayarlanmış).

SumIf([Ödeme], [Plan] = "İşletme" OR [Plan] = "Premium")

Daha fazla okuma