SUMX ile SUM Arasındaki Fark Nedir?

SUM ve SUMX benzer görünse de DAX’ta farklı ihtiyaçları karşılar. SUM doğrudan bir sütundaki değerleri toplarken SUMX bir tabloyu satır satır değerlendirir ve her satır için verilen ifadeyi hesaplayarak sonuçları toplar.

SUM nasıl çalışır?

Bir sütundaki mevcut değerleri toplamak için SUM kullanılır:

Toplam Satış = SUM(Satis[Tutar])

SUMX nasıl çalışır?

SUMX bir iterator fonksiyonudur. İlk parametre tablo, ikinci parametre ise her satır için değerlendirilecek ifadedir:

Toplam Tutar = SUMX(Satis, Satis[Miktar] * Satis[BirimFiyat])

Neden SUMX’e ihtiyaç duyulur?

Bazı durumlarda toplamlanacak değer fiziksel olarak tabloda bulunmaz. Miktar ile birim fiyatın çarpımı gibi satır bazlı bir hesaplamanın sonucunu toplamak istediğimizde SUMX kullanılır.

SUMX her zaman daha güçlü müdür?

Daha esnek olması her zaman daha iyi olduğu anlamına gelmez. Zaten mevcut olan bir sütunu toplamak için SUM daha doğrudan bir çözümdür.

Performans açısından

Gereksiz iterator kullanımından kaçınmak iyi bir yaklaşımdır. Ancak satır bazlı hesaplama gerçekten gerekiyorsa SUMX doğru araçtır.

Pratik karar kuralı

‘Toplayacağım değer zaten bir sütunda var mı?’ sorusunun cevabı evetse SUM; ‘Her satırda bir hesap yapıp sonuçları mı toplayacağım?’ ise SUMX düşünülmelidir.

Sayısal örnek: toplamların çarpımı neden yanlış?

Satis tablosunda iki kalem düşünün: ilk satırda miktar 2 ve birim fiyat 100 TL, ikinci satırda miktar 3 ve birim fiyat 50 TL. Doğru toplam, 2 × 100 + 3 × 50 = 350 TL olur. Toplam miktarı toplam birim fiyatla çarpmak ise 5 × 150 = 750 TL üretir. Bu fark, işlemin önce satır seviyesinde yapılması gerektiğini gösterir.

Hesaplanan Satış =
SUMX(
    Satis,
    Satis[Miktar] * Satis[BirimFiyat]
)

Ağırlıklı Birim Fiyat =
DIVIDE(
    [Hesaplanan Satış],
    SUM(Satis[Miktar])
)

Örnekte ağırlıklı birim fiyat 350 / 5 = 70 TL olur. Birim fiyatların basit ortalaması ise 75 TL olurdu. Sipariş kalemi seviyesinde iskonto veya kur uygulanıyorsa hesaplamanın sırası ayrıca tanımlanmalıdır. Tutar sütununuz zaten doğru net tutarı içeriyorsa aynı hesabı tekrar üretmek yerine bu sütunu SUM ile toplamak daha anlaşılırdır.

Hesaplanmış sütun mu, ölçü mü?

Miktar × fiyat sonucunu Import modelde hesaplanmış sütun olarak saklamak model boyutunu artırabilir; SUMX ölçüsü ise ifadeyi sorgu bağlamında değerlendirir. Çok sık kullanılan bir tutarı veri kaynağında üretmek de mümkündür. Tercihi veri hacmi, yenileme süresi ve sorgu süresiyle birlikte değerlendirin. SUMX her durumda yavaştır veya her durumda daha iyidir gibi kurallar kullanmayın; basit ifadeleri motor farklı biçimlerde optimize edebilir.

Sonuç

Power BI’da DAX konusunda başarılı olmak, yalnızca fonksiyonları ezberlemekten çok veri modelini ve hesaplama bağlamını anlamayı gerektirir. Gerçek projelerde doğru DAX; doğru model, doğru veri kaynağı ve doğru rapor tasarımıyla birlikte ele alındığında daha sürdürülebilir sonuç verir.

Sık Sorulan Sorular

SUMX ne tür bir DAX fonksiyonudur?

Iterator fonksiyonudur; tablo satırları üzerinde ifade değerlendirir.

SUM yerine SUMX kullanılabilir mi?

Teknik olarak bazı senaryolarda evet; ancak mevcut bir sütunu toplamak için SUM daha doğrudan bir çözümdür.

SUMX performansı yavaşlatır mı?

Gereksiz veya çok büyük tablolar üzerinde yapılan iterator hesaplamaları maliyetli olabilir.

Danışmanlık

Power BI raporlarınızda DAX, veri modeli veya performans sorunları yaşıyorsanız mevcut yapınızı inceleyerek raporlama mimarisi, DAX optimizasyonu ve performans analizi konusunda danışmanlık desteği alabilirsiniz.

Kaynak

Microsoft Learn: sumx-function-dax

Metin SEVİNDİK | İş Zekası ve Veri Danışmanlığı

Power BI ve DAX danışmanlığı için iletişime geçin.

DAX serisinde okumaya devam edin

DAX Nedir, Nasıl Çalışır, Zor mu? · CALCULATE Nasıl Çalışır? · ALL, ALLEXCEPT ve REMOVEFILTERS Arasındaki Farklar