Filtre değiştirici işlevlerini kullanma

Tamamlandı

işlevini kullanırken CALCULATE , filtre değiştirme işlevlerini geçirerek tek başına filtre eklemekten daha fazlasını başarmanızı sağlayabilirsiniz.

Filtreleri kaldırma

Filtre bağlamından REMOVEFILTERS filtreleri kaldırmak için filtre ifadesi olarak CALCULATE DAX işlevini kullanın. Bu işlev, bir tablodaki bir veya daha fazla sütundan veya sütunların tamamından filtreleri kaldırabilir.

Not

REMOVEFILTERS İşlev nispeten yenidir. DAX'ın önceki sürümlerinde, DAX işlevini veya ve ALLNOBLANKROW DAX işlevleri dahil olmak üzere ALLEXCEPT varyantları kullanarak ALL filtreleri kaldırmıştınız. Bu işlevler hem filtre değiştirici hem de ayrı değerler içeren tablo nesnelerini döndüren işlevler olarak kullanılır. Bir belgede veya formülde filtrelerin bu işlevlerle kaldırıldığını görme ihtimaliniz yüksek olduğundan işlevlere bu noktada yer verilmiştir.

Aşağıdaki örnekte, Sales tablosuna Revenue ölçüsünü değerlendiren ancak Sales Territory tablosundaki filtreleri kaldırarak bunu yapacak yeni bir ölçü ekleyebilirsiniz. Ölçüyü iki ondalık basamaklı para birimi olarak biçimlendirin.

Revenue Total Region = CALCULATE([Revenue], REMOVEFILTERS('Sales Territory'))

Şimdi Revenue Total Region ölçüsünü raporun Sayfa 2 bölümünde yer alan matris görseline ekleyin. Matris görseli, Sales Territory tablosundaki üç sütunu kullanarak satırları gruplar: Group, Country ve Region.

Satırlarda gruplanmış Group, Country ve Region sütunlarına ve Revenue ile Revenue Total Region özetlemelerine sahip Reseller Revenue adlı matrisi gösteren görüntü. Her satır grubunun Revenue Total Region değeri aynıdır.

Revenue Total Region değerlerinin aynı olduğuna dikkat edin. Bu, toplam gelir değeridir.

Bu sonuç kendi başına yararlı olmayabilir ancak bir oranda payda olarak kullanıldığında genel toplam yüzdesini hesaplar. Bu nedenle aşağıdaki tanımı Revenue Total Region ölçü tanımının üzerine yazacaksınız. (Bu yeni tanım ölçü adını değiştirir ve iki değişken bildirir. Ölçüyü iki ondalık basamaklı yüzde olarak biçimlendirmeyi unutmayın.)

Revenue % Total Region =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalRegionRevenue =
    CALCULATE(
        [Revenue],
        REMOVEFILTERS('Sales Territory')
    )
RETURN
    DIVIDE(
        CurrentRegionRevenue,
        TotalRegionRevenue
    )

Matris görselinde şimdi Revenue % Total Region değerlerinin gösterildiğini doğrulayın.

Satırlarda gruplanmış Group, Country ve Region sütunlarına ve Revenue ile Revenue % Total Region özetlemelerine sahip Reseller Revenue adlı matris görselini gösteren görüntü.

Şimdi başka bir ölçü oluşturacaksınız ancak bu kez belirli bir bölgenin gelirinin ülke gelirine olan oranını hesaplayacaksınız.

Bu görevi tamamlamadan önce Southwest bölgesinin Revenue % Total Region değerinin yüzde 22,95 olduğuna dikkat edin. Bu hücrenin filtre bağlamını inceleyin. Veri görünümüne geçin ve alanlar bölmesinde Sales Territory tablosunu seçin.

Aşağıdaki sütun filtrelerini uygulayın:

  • Group - North America
  • Country - United States
  • Region - Southwest

Sales Territory tablosunun Power BI Desktop tablo filtrelerini gösteren görüntü. Uygulanan filtreler: (1) Group = North America, (2) Country = United States ve (3) Region = Southwest.

Filtrelerin tabloyu yalnızca bir satır kısalttığına dikkat edin. Bölgenin gelirinin ülkenin gelirine olan oranını hesaplamak olan yeni göreviniz üzerinde düşünürken Region sütunundaki filtreyi temizleyin.

Filtreleri Temizle komutunun vurgulandığı sütun bağlam menüsünü gösteren görüntü.

Şimdi her biri United States ülkesine ait olan beş satır olduğuna dikkat edin. Dolayısıyla Region sütun filtrelerini temizleyip Country ve Group sütunlarındaki filtreleri koruduğunuzda bölgedeki ülkeyi gösteren yeni bir filtre bağlamına sahip olursunuz.

Aşağıdaki ölçü tanımında bir sütundaki filtreleri temizleme veya kaldırma seçeneklerine dikkat edin. DAX mantığının Revenue % Total Region ölçü formülünde yapılan küçük ve küçük bir değişikliktir: İşlev REMOVEFILTERS artık Sales Territory tablosunun tüm sütunları yerine Region sütunundaki filtreleri kaldırır.

Revenue % Total Country =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalCountryRevenue =
    CALCULATE(
        [Revenue],
        REMOVEFILTERS('Sales Territory'[Region])
    )
RETURN
    DIVIDE(
        CurrentRegionRevenue,
        TotalCountryRevenue
    )

Sales tablosuna Revenue % Total Country ölçüsünü ekleyin ve iki ondalık basamaklı yüzde olarak biçimlendirin. Yeni ölçüyü matris görseline ekleyin.

Satırlarda gruplanmış Group, Country ve Region sütunlarına ve Revenue, Revenue % Total Region ile Revenue % Total Country özetlemelerine sahip Reseller Revenue adlı matris görselini gösteren görüntü. Yalnızca United States için geçerli Revenue % Total Country değerleri %100 değil.

United States bölgeleri dışındaki tüm değerlerin yüzde 100 olduğuna dikkat edin. Bunun nedeni Adventure Works şirketinde United States altında bölgeler varken diğer ülkelerde olmamasıdır.

Not

Tablosal modeller farklı derinliklere sahip hiyerarşiler olan düzensiz hiyerarşileri desteklemez. Bu nedenle hiyerarşinin alt düzeylerinde üst (veya diğer üst öğe) değerlerini yinelemek sık kullanılan bir tasarım yaklaşımıdır. Örneğin, Avustralya'nın bir bölgesi olmadığından ülke/bölge değeri bölge adı olarak yinelenir. BLANK yerine anlamlı bir değer depolamak her zaman daha iyidir.

Bir sonraki örnek, oluşturacağınız son ölçü olacak. Revenue % Total Group ölçüsünü ekleyip iki ondalık basamaklı yüzde değeri olarak biçimlendirin. Ardından yeni ölçüyü matris görseline ekleyin.

Revenue % Total Group =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalGroupRevenue =
    CALCULATE(
        [Revenue],
        REMOVEFILTERS(
            'Sales Territory'[Region],
            'Sales Territory'[Country]
        )
    )
RETURN
    DIVIDE(
        CurrentRegionRevenue,
        TotalGroupRevenue
    )

Satırlarda gruplanmış Group, Country ve Region sütunlarına ve Revenue, Revenue % Total Region, Revenue % Total Country ile Revenue % Total Group özetlemelerine sahip Reseller Revenue adlı matris görselini gösteren görüntü.

Sales Territorytablosundaki Bölge ve Ülke sütunlarından filtreleri kaldırdığınızda ölçü, bölge gelirini grubunun gelirinin oranı olarak hesaplar.

Filtreleri koruma

Filtreleri korumak için işlevde CALCULATE filtre ifadesi olarak DAX işlevini kullanabilirsinizKEEPFILTERS.

Bu görevi nasıl gerçekleştireceğinizi görmek için raporun Sayfa 1 bölümüne geçin. Ardından Revenue Red ölçü tanımını işlevini kullanacak şekilde KEEPFILTERS değiştirin.

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

Üç sütuna sahip tablo görselini gösteren görüntü: Color, Revenue ve Revenue Red. Dokuz satır ve toplam değer gösterilmiştir. Revenue Red için yalnızca Red satırı ve toplam BLANK değildir.

Tablo görselinde yalnızca Revenue Red değeri bulunduğuna dikkat edin. Bunun nedeni, Boole filtre ifadesinin Product tablosundaki Color sütunundaki mevcut filtreleri korumasıdır. Kırmızı dışındaki renklerin BLANK olmasının nedeni, bu iki filtrenin filtre bağlamlarının ve filtre ifadelerinin birleştirilmiş olmasıdır. Siyah ve kırmızı renk kesişir ve her ikisi de aynı anda olamadığı TRUE için ifade hiçbir ürün satırına göre filtrelenmez. Yalnızca iki kırmızı filtrenin de aynı anda olması TRUE mümkündür ve bu da neden bir Revenue Red değerinin gösterildiğini açıklar.

Etkin olmayan ilişkileri kullanma

Etkin olmayan model ilişkisi yalnızca DAX işlevi işleve filtre ifadesi CALCULATE olarak geçirildiğinde USERELATIONSHIP filtreleri yayabilir. Bu işlevi etkin olmayan bir ilişkiyi etkilemek için kullandığınızda etkin ilişki otomatik olarak etkin olmayan ilişki haline döner.

Gönderim tarihlerine göre Revenue ölçüsünü hesaplamak için etkin olmayan ilişki kullanan ölçü tanımı örneğini inceleyin:

Revenue Shipped =
CALCULATE (
    [Revenue],
    USERELATIONSHIP('Date'[DateKey], Sales[ShipDateKey])
)

İlişki davranışını değiştirme

DAX işlevini işleve filtre CALCULATE ifadesi olarak geçirerek CROSSFILTER bir ifade değerlendirildiğinde model ilişkisi davranışını değiştirebilirsiniz. Bu gelişmiş bir özelliktir.

İşlev filtre CROSSFILTER yönlerini değiştirebilir (her ikisinden tekine veya tekten her ikisine) ve hatta bir ilişkiyi devre dışı bırakabilir.