Filtre bağlamını inceleme

Tamamlandı

VALUES DAX işlevi, formüllerinizin filtre bağlamında hangi değerlerin olduğunu belirlemesini sağlar.

İşlev VALUES söz dizimi aşağıdaki gibidir:

VALUES(<TableNameOrColumnName>)

İşleve bir tablo başvurusu veya sütun başvurusu geçirilmesi gerekir. Tablo başvurusu geçirdiğinizde filtre bağlamında bulunan satırları içeren aynı sütunlara sahip bir tablo nesnesi döndürür. Sütun başvurusu geçirdiğinizde filtre bağlamında bulunan benzersiz değerlerden oluşan tek sütunlu bir tablo döndürür.

İşlev her zaman bir tablo nesnesi döndürür ve tabloda birden çok satır bulunabilir. Bu nedenle, belirli bir değerin filtre bağlamında olup olmadığını test etmek için formülünüzün önce işlevin VALUES tek bir satır döndürdüğünü test etmesi gerekir. Bu görevi gerçekleştirmenize iki işlev yardımcı olabilir: HASONEVALUE ve SELECTEDVALUE DAX işlevleri.

İşlev, HASONEVALUE belirli bir sütun başvurusu tek bir değere göre filtrelendiğinde döndürür TRUE .

işlevi, SELECTEDVALUE tek bir değerin ne olabileceğini belirleme görevini basitleştirir. İşleve bir sütun başvurusu geçirildiğinde tek bir değer, filtre bağlamında bulunan birden fazla değer geçirildiğinde ise BLANK değeri (veya işlevi geçirmenizi sağlayan alternatif bir değer) döndürülür.

Aşağıdaki örnekte işlevini kullanacaksınız HASONEVALUE . Sales tablosuna satış komisyonunun hesaplandığı aşağıdaki ölçüyü ekleyin. Adventure Works'te komisyon oranının, Birleşik Devletler dışındaki tüm ülkeler/bölgeler için gelirin yüzde 10'u olduğunu unutmayın. United States içinde satış temsilcileri yüzde 15 komisyon almaktadır. Ölçüyü iki ondalık basamaklı para birimi olarak biçimlendirin ve ardından raporun Sayfa 3 bölümünde yer alan tabloya ekleyin.

Sales Commission =
[Revenue]
    * IF(
        HASONEVALUE('Sales Territory'[Country]),
        IF(
            VALUES('Sales Territory'[Country]) = "United States",
            0.15,
            0.1
        )
    )

Üç 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 değeri BLANK olmuştur.

Toplam Sales Commission sonucunun BLANK olduğuna dikkat edin. Bunun nedeni, Birden çok değerin Sales Territory tablosundaki Country sütunu için filtre bağlamında olmasıdır. Bu durumda işlevi döndürürFALSE. HASONEVALUE Bu da Revenue ölçüsünün BLANK ile çarpılmasıyla sonuçlanır (BLANK ile çarpılan bir değer BLANK'tır). Toplam oluşturmak için bu modülün ilerleyen bölümlerinde anlatılacak olan yineleyici işlevi kullanmanız gerekir.

Filtre durumunu test etmek için kullanabileceğiniz diğer üç işlev şunlardır:

  • ISFILTERED- Geçirilen sütun başvurusu doğrudan filtrelendiğinde döndürürTRUE.
  • ISCROSSFILTERED- Geçirilen sütun başvurusu dolaylı olarak filtrelendiğinde döndürürTRUE. Aynı tabloda veya ilgili tabloda başka bir sütuna uygulanmış olan filtre, başvuru sütununu filtreleyerek etkilediğinde sütuna çapraz filtreleme uygulanır.
  • ISINSCOPE - Geçirilen sütun başvurusu bir düzey hiyerarşisindeki düzey olduğunda döndürür TRUE .

Raporun 2. Sayfasına dönün ve Revenue % Total Country ölçü tanımını değiştirerek Sales Territory tablosundaki Region sütununun kapsam içinde olduğunu test edin. Kapsam dahilinde değilse ölçü sonucu BLANK olmalıdır.

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

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ü. Revenue % Total Country özetlemelerinde BLANK değerleri var.

Matris görselinde Revenue % Total Country değerlerinin yalnızca bölge kapsam dahilinde olduğunda görüntülendiğine dikkat edin.