Bağlam geçişini gerçekleştirme
Bir ölçü veya ölçü ifadesi satır bağlamında değerlendirildiğinde ne olur? Bu senaryo hesaplanmış sütun formülünde veya yineleyici işlev içindeki bir ifade değerlendirildiğinde ortaya çıkabilir.
Aşağıdaki örnekte, müşterileri sadakat sınıfına sınıflandırmak için Customer tablosuna bir hesaplanmış sütun ekleyebilirsiniz. Senaryo basittir: Müşteri tarafından üretilen gelir 2500 ABD dolarının altında olduğunda müşteri Düşük olarak sınıflandırılır; aksi takdirde Yüksek olarak sınıflandırılır.
Customer Segment =
VAR CustomerRevenue = SUM(Sales[Sales Amount])
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
Raporun Sayfa 4 bölümünde Customer Segment sütununu pasta grafiğinin göstergesi olarak ekleyin.
Yalnızca bir Customer Segment değerinin mevcut olduğuna dikkat edin. Bunun nedeni, hesaplanmış sütun formülünün yanlış sonuç vermesidir: SUM(Sales[Sales Amount])
ifadesi filtre bağlamında değerlendirilmediğinden tüm müşterilere High değeri atanmıştır. Sonuç olarak, her müşteri Sales tablosundaki herSales Amount sütun değerinin toplamına göre değerlendirilir.
SUM(Sales[Sales Amount])
ifadesinin her bir müşteri için değerlendirilmesini zorlamak için satır bağlamı sütun değerlerini filtre bağlamına uygulayan bir bağlam işlemi gerçekleştirilmelidir. Filtre ifadelerini geçirmeden işlevini kullanarak CALCULATE
bu geçişi gerçekleştirebilirsiniz.
Hesaplanmış sütun tanımını doğru sonucu verecek şekilde değiştirin.
Customer Segment =
VAR CustomerRevenue = CALCULATE(SUM(Sales[Sales Amount]))
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
Pasta grafik görselinde yeni hesaplanmış sütunu Gösterge kutusuna ekleyin ve iki pasta kesiminin artık görüntülendiğini doğrulayın.
Bu durumda işlev, CALCULATE
satır bağlamı değerlerini filtre olarak uygular ve bağlam geçişi olarak bilinir. İşlemin tabloda benzersiz bir sütun olduğunda aynı performansı vermediğini belirtmek gerekir. Tabloda benzersiz bir sütun olduğunda geçişi gerçekleştirmek için yalnızca bu sütuna bir filtre uygulamanız gerekir. Bunu yaptığınızda Power BI, satır bağlamındaki değer için CustomerKey sütununa bir filtre uygular.
Satır bağlamında değerlendirilen bir ifadede ölçülere başvurduğunuzda bağlam geçişi otomatik olarak gerçekleştirilir. Bu nedenle, işleve ölçü başvurularını CALCULATE
geçirmeniz gerekmez.
Revenue ölçüsüne başvuran hesaplanmış sütun tanımını değiştirdiğinizde doğru sonucu vermeye devam ettiğini göreceksiniz.
Customer Segment =
VAR CustomerRevenue = [Revenue]
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
Şimdi Sales Commission ölçüsü formülünü tamamlayabilirsiniz. Toplam oluşturmak için yineleyici işlevi kullanarak filtre bağlamındaki tüm bölgeleri yinelemeniz gerekir. Yineleyici işlev ifadesi, satır bağlamını CALCULATE
filtre bağlamı için geçiş yapmak için işlevini kullanmalıdır. Sales Territory tablosundaki tek bir Country sütun değerinin filtre bağlamında olup olmadığını test etmesi gerekmediğine dikkat edin çünkü tek bir ülkeye göre filtreleme yaptığı bilinmektedir (çünkü filtre bağlamında bölgeler üzerinde yineleniyor ve bir bölge yalnızca bir ülkeye ait).
Raporun 3. Sayfasına geçin ve ardından Sales Commission ölçü tanımını yineleyici işlevini kullanacak şekilde SUMX
değiştirin:
Sales Commission =
SUMX(
VALUES('Sales Territory'[Region]),
CALCULATE(
[Revenue]
* IF(
VALUES('Sales Territory'[Country]) = "United States",
0.15,
0.1
)
)
)
Tablo görselinde artık tüm bölgelere ait satış komisyonu toplamı görüntülenir.