Ana içeriğe geç
Kesit Power BI
Temel · DAX Temelleri

Toplama fonksiyonları ve DIVIDE

SUM, AVERAGE, MIN, MAX, COUNTROWS, DISTINCTCOUNT ve güvenli bölme.

Uygulamada aç, 9 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Temel toplayıcılar

FonksiyonNe yapar?Örnek
SUMSütundaki sayıları toplarSUM(Satislar[Tutar])
AVERAGEAritmetik ortalamaAVERAGE(Satislar[BirimFiyat])
MIN / MAXEn küçük / en büyük değer (tarihlerde de çalışır)MAX(Satislar[Tarih])
COUNTROWSTablodaki satır sayısıCOUNTROWS(Satislar)
DISTINCTCOUNTSütundaki farklı değer sayısıDISTINCTCOUNT(Satislar[MusteriNo])
COUNT / COUNTABoş olmayan sayısal / tüm değerleri sayarCOUNTA(Musteriler[Sehir])

Satır mı, sipariş mi?

Satislar tablosunda her satır bir sipariş satırıdır. Bir siparişte iki ürün varsa iki satır olur. Bu yüzden:

Satır Sayısı = COUNTROWS(Satislar)
Sipariş Sayısı = DISTINCTCOUNT(Satislar[SiparisNo])

İkisi farklı sonuç verir. “Kaç sipariş aldık?” sorusunun cevabı ikincisidir. Tanecik (grain) dediğimiz şey budur: tablonun bir satırı neyi temsil ediyor?

Güvenli bölme: DIVIDE

Ortalama Sepet = DIVIDE(SUM(Satislar[Tutar]), DISTINCTCOUNT(Satislar[SiparisNo]))

/ işleci payda sıfırsa sonsuz ya da hata üretir. DIVIDE(pay, payda, [alternatif]) ise payda sıfır ya da boşsa boş (ya da verdiğin alternatif değeri) döner. Görselde boş değerli satırlar gizlenir; bu genellikle istediğin davranıştır.

Ölçüleri yeniden kullan

Ortalama Sepet = DIVIDE([Toplam Satış], [Sipariş Sayısı])

Bir kez tanımladığın ölçüyü başka ölçülerde çağırmak, formülü kısa ve tutarlı tutar. Toplam Satış'ın tanımı değişirse (ör. iptaller hariç tutulursa) Ortalama Sepet de kendiliğinden güncellenir.

Uzmanlaş

Hangi soru, hangi fonksiyon?

Doğru toplayıcıyı seçmek için önce soruyu cümle olarak yaz. Cümledeki anahtar kelime fonksiyonu söyler.

Soru cümlesiFonksiyonBu modelde sonuç
“Toplam ne kadar sattık?”SUM(Satislar[Tutar])1.346.190 ₺ (iptaller dahil)
“Kaç satır kayıt var?”COUNTROWS(Satislar)1.620
“Kaç sipariş aldık?”DISTINCTCOUNT(Satislar[SiparisNo])910
“Kaç farklı müşteri aldı?”DISTINCTCOUNT(Satislar[MusteriNo])136
“Kaç farklı ürün satıldı?”DISTINCTCOUNT(Satislar[UrunNo])38 (katalogda 40 ürün var)
“Kaç satırda kargo günü dolu?”COUNT(Satislar[KargoGun])1.489
“Bir satır ortalama kaç lira?”AVERAGE(Satislar[Tutar])yaklaşık 831 ₺

Ortalama tuzağı: satır ortalaması sepet değildir

Satış müdürü “ortalama sepetimiz ne kadar?” diye soruyor. Aceleyle AVERAGE(Satislar[Tutar]) yazarsan yaklaşık 831 ₺ bulursun. Oysa doğru cevap toplam tutarın sipariş sayısına bölümüdür: 1.346.190 / 910 = yaklaşık 1.479 ₺.

Neden fark var? AVERAGE her satırı bir kez sayar. Bir siparişte üç ürün varsa o sipariş üç satırdır ve ortalamayı üç küçük parça olarak etkiler. “Sepet” ise siparişin tamamıdır. Kural: ortalama istendiğinde önce “neyin ortalaması?” diye sor. Cevap “satırın” değilse DIVIDE(toplam, sayım) kur.

Sayımlar toplanmaz

Bir matriste kategorilere göre müşteri sayısını gösterdin. Elektronik 98, Kitap 115, Ev & Yaşam 99… Alt alta toplarsan 649 eder. Ama toplam satırında 136 yazar. Hata yok: aynı müşteri hem kitap hem elektronik almış olabilir ve her iki satırda da sayılır. Toplam satırı ise müşterileri bir kez sayar.

Aynı şey yıllar için de geçerli: 2022'de 33, 2023'te 79, 2024'te 123 müşteri vardır; toplamları 235 eder ama üç yılda alışveriş yapan farklı müşteri sayısı 136'dır. DISTINCTCOUNT ile hesaplanan bir rakamı Excel'e alıp alt alta toplamak, iş hayatındaki en yaygın raporlama hatalarından biridir.

Okuyucuyu önceden uyarMüşteri sayısı gibi toplanmayan ölçülerin olduğu matrislerde toplam satırının yanına kısa bir not ya da araç ipucu ekle: “Bir müşteri birden çok kategoride sayılabilir.” Böylece toplantıda “toplam yanlış” tartışması çıkmaz.

COUNT, COUNTA, COUNTROWS: boşlukları kim sayar?

Satislar tablosunda 1.620 satır var ama KargoGun sütunu 131 satırda boş. COUNTROWS(Satislar) 1.620, COUNT(Satislar[KargoGun]) 1.489 döndürür. COUNT yalnızca dolu (boş olmayan) değerleri sayar. “Kaç satır?” sorusu için COUNTROWS, “kaç satırda bu bilgi var?” sorusu için COUNT ya da COUNTA (metin sütunlarında) kullan. Boşlukların nedeni ve nasıl ele alınacağı BLANK, hatalar ve DAX'ta hata ayıklama dersinde.

Kargo Bilgisi Olan Satır = COUNT(Satislar[KargoGun])
Kargo Bilgisi Eksik Satır = COUNTROWS(Satislar) - [Kargo Bilgisi Olan Satır]
Alıştırmalara geç (9)