CALCULATE işlevini öğrenme
Bu ünitenin sonunda CALCULATE işlevinin Power BI'daki en çok yönlü işlevlerden biri olduğunu çok iyi anlayacaksınız.
Yüksek düzeyde, satır ve filtre bağlamı üzerinde denetime sahipsiniz. CALCULATE işleviyle filtre ekleyebilir, bunları çıkartabilir ve güncelleştirebilirsiniz. Bu, tek bir işlevde çok fazla güçtür!
CALCULATE ile filtre ekleme
İlk olarak CALCULATE işleviyle filtre ekleme.
Önceki veri tablosundaki toplam satışlara sahipsiniz:
Total Sales = SUM( [Sales Amount] )
Ayrıca, toplam satışları değerlendirdiğiniz ve uçak filtresi bağlamını uyguladığınız filtrelenmiş bir toplam satış sürümüne de sahipsiniz:
Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )
İpucu
TABLEAU ILE BAĞıNTı: Aşağıdaki kod parçacığı, Tableau'da aynı hesaplamayı nasıl yapacağınızı gösterir: Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END)
CALCULATE ile filtreyi yoksayma
Ardından CALCULATE işlevine sahip bir filtreyi yoksayma.
Önceki veri tablosunda, bir sütunda eyalete göre toplam satışlarınız ve sonraki sütundaki tüm coğrafyaya göre toplam satışlarınız var. Her durum (veya satır) için toplam yüzdesinde analiz yapmak istediğinizde bu sütun yararlı olacaktır.
DAX'ta toplamın yüzdesini gerçekleştirmenin en yaygın yolu ALL işlevidir.
Total Sales All Geo = CALCULATE( [Total Sales], ALL( Geography ) )
Yukarıdaki kodda Geography tablosuna bakar ve içindeki tüm değerleri eklersiniz; filtre bağlamını daraltmayın.
İpucu
TABLEAU ILE BAĞıNTı: Aşağıdaki kod parçacığında, EXCLUDE LOD ifadesini kullanarak Tableau'da aynı hesaplamayı nasıl yapacağınızı gösterir: Total Sales All Geo = { EXCLUDE [State], [City] : SUM([Total Sales]) }
Farklı bir yoksayma filtresi örneği şöyle görünür:
Önceki tabloda, eyalete göre toplam satışlarınız, tüm coğrafyaya göre toplam satışlarınız (tüm coğrafya filtreleri hariç) ve son olarak, tüm eyaletlere göre toplam satışlara sahipsiniz ancak şehir filtresi uygulanmaya devam ediyor.
Görüntüye göre İskenderiye şehri birden çok eyalette bulunuyor. Bu nedenle, yalnızca İskenderiye'nin şehir olarak bulunduğu eyaletlerin toplam satışlarını bulmak istiyorsunuz:
Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )
İpucu
TABLEAU ILE BAĞıNTı: Aynı hesaplamayı Tableau'da EXCLUDE LOD ifadesini kullanarak bu şekilde yapabilirsiniz. Bu LOD ifadesinin ayrıntı düzeyiyle diğerinden farklı olduğunu fark edeceksiniz. Bu ifadeyle, yalnızca eyalet ve şehir yerine görünümün dışında tutmak istersiniz: Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }
CALCULATE ile filtreyi güncelleştirme
Son olarak CALCULATE işlevinin kullanışlılığını vurgulamak için son izlenecek yol bir filtreyi güncelleştirmek olacaktır.
Önceki veri tablosunda toplam satışlar (yılı yoksayarak), filtre bağlamındaki toplam satışlar görseldeki dilimleyici tarafından uygulanır ve son sütun ise yalnızca 2018 yılı için toplam satışlar olur.
"2018 Sales" sütununu almak için aşağıdakine benzer bir şey yazmanız gerekir:
2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )
İpucu
TABLEAU'YA İLGİlİ: Bu, doğrudan bir Tableau karşılaştırması gibi görünmediğinden ilginçtir. Bunu Tableau'da yapmak için alanları yinelemeniz, ek veri kaynakları getirmeniz veya her sütunda hesaplamalar yapmanız gerekir.
Bu CALCULATE ünitesinde gözden geçirdiklerini özetleyelim:
Herhangi bir ifade ilk bağımsız değişken olarak eklenebilir.
İfade, sayfadaki tüm filtre bağlamına (görselleştirme için dilimleyiciler) bakar.
Filtreler varsa eklenir.
Zaten filtre listesinde olan bir filtre varsa ve sayfa bağlamı ile aynıysa, bunu geçersiz kılar.
Tüm bu nüanslardan sonra (yukarıda listelenmiştir), sonunda ifadeyi değerlendirir.
Not
Açıkçası, bu işlem sırasını gerçekten anlamak için yanıtlarınızı kontrol etmeden yapmanız gereken bir şey değildir. Kendinize "Filtrelerim iptal edildi mi, iptal edildi mi?" diye sormalısınız.