Filtre bağlamını değiştirme

Tamamlandı

Formüllerinizdeki filtre bağlamını CALCULATE değiştirmek için DAX işlevini kullanabilirsiniz. CALCULATE işlevinin söz dizimi şu şekildedir:

CALCULATE(<expression>, [[<filter1>], <filter2>]…)

İşlev için bir skaler değer ve ihtiyacınız olan sayıda filtre döndüren bir ifade geçirilmesi gerekir. İfade bir ölçü (adlandırılmış ifade) veya filtre bağlamında değerlendirilebilen herhangi bir ifade olabilir.

Filtreler, Boole ifadeleri veya tablo ifadeleri olabilir. Filtre bağlamı değiştirirken ek denetim sağlayan filtre değiştirme işlevlerini geçirmek de mümkündür.

Birden çok filtreniz olduğunda, bunlar mantıksal işleç kullanılarak AND değerlendirilir ve bu da tüm koşulların aynı anda olması TRUE gerektiği anlamına gelir.

Not

CALCULATETABLE DAX işlevi, tablo nesnesi döndüren bir ifadeye uygulanan filtre bağlamını değiştirmesi dışında işlevle tam olarak aynı işlevi CALCULATE gerçekleştirir. Bu modülde, açıklamalar ve örnekler işlevini kullanır CALCULATE , ancak bu senaryoların işlev için CALCULATETABLE de geçerli olabileceğini unutmayın.

Boole ifadesi filtrelerini uygulama

Boole ifade filtresi, veya FALSEolarak değerlendirilen TRUE bir ifadedir. Boole filtreleri aşağıdaki kurallara uygun olmalıdır:

  • Yalnızca tek bir sütuna başvurabilirler.
  • Ölçüye başvuramazlar.
  • gibi SUMtoplama işlevlerini içeren bir tabloyu tarayan veya döndüren işlevleri kullanamazlar.

Bu örnekte bir ölçü oluşturacaksınız. Öncelikle Adventure Works DW 2020 M06.pbix dosyasını indirip açın. Ardından, kırmızı ürünler için Boole ifade filtresi kullanarak Revenue ölçüsünü filtreleyen Sales tablosuna aşağıdaki ölçüyü ekleyin.

Revenue Red = CALCULATE([Revenue], 'Product'[Color] = "Red")

Revenue Red ölçüsünü raporun Sayfa 1 bölümünde yer alan tablo görseline ekleyin.

Üç sütuna sahip tabloyu gösteren görüntü: Region, Revenue ve Revenue Red. Tabloda toplamda 10 satır ve bir toplam vardır.

Aşağıdaki bir sonraki örnekte ölçü, Revenue ölçüsünü birden fazla renkle filtreler. işlecinin IN ve ardından renk değerlerinin listesinin kullanıldığına dikkat edin.

Revenue Red or Blue = CALCULATE([Revenue], 'Product'[Color] IN {"Red", "Blue"})

Aşağıdaki ölçü, Revenue ölçüsünü pahalı ürünlere göre filtreler. Pahalı ürünler, liste fiyatı 1000 ABD dolarından fazla olan ürünlerdir.

Revenue Expensive Products = CALCULATE([Revenue], 'Product'[List Price] > 1000)

Tablo ifadesi filtrelerini uygulama

Tablo ifadesi filtresi, bir tablo nesnesini filtre olarak uygular. Model tablosu başvurusu olabilir ancak genellikle tablo nesnesi döndüren DAX işlevleri kullanılır.

Genellikle, Boole filtre ifadesi tarafından tanımlanamayanlar FILTER da dahil olmak üzere karmaşık filtre koşullarını uygulamak için DAX işlevini kullanırsınız. FILTER İşlev bir yineleyici işlevi olarak sınıflandırılır ve bu nedenle bir tablo veya tablo ifadesi ile bu tablonun her satırı için değerlendirilecek bir ifade geçirirsiniz.

işlevi, FILTER tablonun geçirdiği yapıyla tam olarak aynı yapıya sahip bir tablo nesnesi döndürür. Satırları, geçirilen satırların bir alt kümesidir, yani ifadenin olarak TRUEdeğerlendirildiği satırlardır.

Aşağıdaki örnekte işlevini kullanan bir tablo filtresi ifadesi gösterilmektedir FILTER :

Revenue High Margin Products =
CALCULATE(
    [Revenue],
    FILTER(
        'Product',
        'Product'[List Price] > 'Product'[Standard Cost] * 2
    )
)

Bu örnekte işlev, FILTER Product tablosunun filtre bağlamındaki tüm satırlarını filtreler. Liste fiyatının standart fiyatın iki katını aştığı ürün satırları, filtrelenmiş tablo satırı olarak görüntülenir. Bu nedenle Revenue ölçüsü işlevi tarafından FILTER döndürülen tüm ürünler için değerlendirilir.

İşleve CALCULATE geçirilen tüm filtre ifadeleri tablo filtresi ifadeleridir. Boole filtre ifadesi, yazma ve okuma kolaylığı sağlamak için kullanılan kısa gösterimdir. Microsoft Power BI arka planda Boole filtre ifadelerini tablo filtre ifadelerine çeviri ve bunun sonucunda Revenue Red ölçüsü tanımınız ortaya çıkar.

Revenue Red =
CALCULATE(
    [Revenue],
    FILTER(
        'Product',
        'Product'[Color] = "Red"
    )
)

Filtre davranışı

İşleve filtre ifadeleri CALCULATE eklediğinizde iki olası standart sonuç oluşur:

  • Sütunlar (veya tablolar) filtre bağlamında değilse, ifadeyi değerlendirmek CALCULATE için filtre bağlamlarına yeni filtreler eklenir.
  • Sütunlar (veya tablolar) zaten filtre bağlamındaysa, ifadeyi değerlendirmek için yeni filtreler tarafından var olan filtrelerin CALCULATE üzerine yazılır.

Aşağıdaki örneklerde işleve filtre ifadeleri eklemenin CALCULATE nasıl çalıştığı gösterilir.

Not

Örneklerde tablo görseline herhangi bir filtre uygulanmamıştır.

Bir önceki etkinlikte olduğu gibi Revenue Red ölçüsü, bölgeye göre gruplayan ve geliri gösteren bir tablo görseline eklenmiştir.

Üç sütuna sahip tabloyu gösteren görüntü: Region, Revenue ve Revenue Red. Tabloda toplamda 10 satır ve bir toplam vardır.

Producttablosundaki Color sütununa filtre uygulanmadığından, ölçünün değerlendirmesi filtre bağlamı için yeni bir filtre ekler. İlk satırdaki $2.681.324,79 değeri, Australian bölgesinde satılan kırmızı renkli ürünlere aittir.

Product tablosundaki Color sütunu artık filtre bağlamında olduğundan, tablo görselinin ilk sütunu Region'danColor'a geçirildiğinde farklı bir sonuç elde edilir.

Üç sütuna sahip tabloyu gösteren görüntü: Color, Revenue ve Revenue Red. Tabloda toplamda 10 satır ve bir toplam vardır. Her satırın Revenue Red değeri aynıdır.

Revenue Red ölçü formülü, Product tablosundaki Color sütununa (kırmızıya) bir filtre ekleyerek Revenue ölçüsünü değerlendirir. Sonuçta renklere göre gruplama yapan bu görselde ölçü formülü yeni bir filtreyle filtre bağlamının üzerine yazar.

Sonuç istediğiniz gibi olabilir veya olmayabilir. Sonraki ünitede KEEPFILTERS , filtrelerin üzerine yazmak yerine korumak için kullanabileceğiniz bir filtre değiştirme işlevi olan DAX işlevi tanıtılır.