Bağlam geçişini gerçekleştirme

Tamamlandı

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.

Revenue by Customer Segment adlı pasta grafiği görselini gösteren görüntü. Tek bir parça var: Verilerin %100'ünü temsil eden High.

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.

Revenue by Customer Segment adlı pasta grafiği görselini gösteren görüntü. İki parça var: High ve Low. High verilerin %76'sını, Low ise %24'ünü temsil ediyor.

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.

Üç sütuna sahip tablo görselini gösteren görüntü: Region, Revenue ve Sales Commission. On bölge satırı ve toplam gösterilmiştir. Toplam Sales Commission altında artık bir toplam vardır.