Filtre bağlamını değiştirme
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 FALSE
olarak 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
SUM
toplama 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.
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 TRUE
değ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.
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.
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.