CALCULATE, DAX'ın en temel ve en güçlü fonksiyonudur — bir ölçünün filtre bağlamını değiştirmenizi sağlar. Bu ders, Power BI ile ciddi anlamda ilerlemek isteyen herkesin mutlaka anlaması gereken bir kavramı ele alıyor.
SUM ile CALCULATE Farkı
Normal bir SUM ölçüsü, raporda uygulanan filtrelere (dilimleyiciler, satır bağlamı vb.) göre otomatik olarak yeniden hesaplanır. CALCULATE de aynı şekilde çalışır, ama fonksiyonun içine ek/override edici bir filtre de verebilirsiniz:
Kadin Musteri Sayisi = CALCULATE(COUNTROWS(Customers), Customers[Gender] = "Female")
Bu ölçü, raporda hangi dilimleyici seçili olursa olsun her zaman yalnızca kadın müşterileri sayar — çünkü CALCULATE içindeki filtre, dışarıdan gelen diğer filtrelerin üzerine sabit bir koşul olarak eklenir.
Sabit Kalan Bir KPI Oluşturmak
Bu özellik, karşılaştırma amaçlı referans değerler oluşturmak için idealdir. Örneğin bir raporda ay seçildikçe değişen bir ciro kartının yanında, hiçbir zaman değişmeyen bir "toplam ciro" kartı göstermek isteyebilirsiniz:
Toplam Ciro (Sabit) = CALCULATE(SUM(Transactions[Revenue]), ALL(Transactions[Ay]))
ALL: Mevcut Filtreleri Kaldırmak
ALL, belirttiğiniz sütun veya tablodaki tüm filtreleri temizler. Yukarıdaki örnekte ALL(Transactions[Ay]), kullanıcı hangi ayı seçerse seçsin, o ölçünün ay filtresinden etkilenmemesini sağlar.
ALL'u bir tabloya uyguladığınızda (ALL(Transactions)), o tablodaki her sütuna ait tüm filtreler kaldırılır — bu, "genel toplam" hesaplamalarında sıkça kullanılan bir kalıptır.
Neden Bu Kadar Önemli?
CALCULATE + ALL kombinasyonu, yüzde hesaplamalarının temelini oluşturur — örneğin "bu ürünün toplam satışlar içindeki payı" gibi bir metrik hesaplarken, payda (genel toplam) hiçbir filtreden etkilenmemeli, pay (o ürünün satışı) ise mevcut filtreye göre değişmelidir. Bu ikisini birleştirmenin yolu tam olarak bu iki fonksiyondur.
Sırada Ne Var?
Sırada, CALCULATE'in özel bir kullanımı olan zaman zekası fonksiyonlarına — TOTALYTD, TOTALQTD, TOTALMTD — geçiyoruz.