Szűrőkörnyezet vizsgálata

Befejeződött

A VALUES DAX-függvény lehetővé teszi a képletek számára, hogy meghatározzák a szűrőkörnyezetben található értékeket.

A VALUES függvény szintaxisa a következő:

VALUES(<TableNameOrColumnName>)

A függvényhez táblahivatkozás vagy oszlophivatkozás megadása szükséges. Ha táblahivatkozást ad meg, egy táblaobjektumot ad vissza ugyanazokkal az oszlopokkal, amelyek a szűrőkörnyezet tartalmára vonatkozó sorokat tartalmazzák. Ha oszlophivatkozást ad meg, akkor a szűrőkörnyezetben lévő egyedi értékek egyoszlopos táblázatát adja vissza.

A függvény mindig táblaobjektumot ad vissza, és egy tábla több sort is tartalmazhat. Ezért annak teszteléséhez, hogy egy adott érték szerepel-e a szűrőkörnyezetben, a képletnek először azt kell tesztelnie, hogy a VALUES függvény egyetlen sort ad-e vissza. Két függvény segíthet a feladat végrehajtásában: a HASONEVALUE és a SELECTEDVALUE DAX-függvények.

A HASONEVALUE függvény akkor ad TRUE vissza, ha egy adott oszlophivatkozás egyetlen értékre lett szűrve.

A SELECTEDVALUE függvény leegyszerűsíti az egyetlen érték meghatározásának feladatát. Ha a függvénynek oszlophivatkozást ad meg, akkor egyetlen értéket ad vissza, vagy ha egynél több érték van a szűrőkörnyezetben, akkor az ÜRES értéket adja vissza (vagy egy másik, a függvénynek megadott értéket).

Az alábbi példában a függvényt HASONEVALUE fogja használni. Adja hozzá az alábbi mértéket, amely kiszámítja az értékesítési jutalékot a Sales táblában. Vegye figyelembe, hogy az Adventure Worksnél a jutalék mértéke a bevétel 10 százaléka az összes országban/régióban, kivéve a Egyesült Államok. Az Egyesült Államokban az értékesítők 15 százalék jutalékot kapnak. Formázza a mértéket két tizedesjeggyel rendelkező pénznemként, majd adja hozzá a jelentés 3. oldalán található táblázathoz.

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

A képen a következő három oszloppal rendelkező táblavizualizáció látható: Region (Régió), Revenue (Bevétel) és Sales Commission (Értékesítési jutalék). A tábla tíz, régiót jelző sort és egy teljes összeget tartalmaz. A teljes Értékesítési jutalék értéke ÜRES.

Megfigyelheti, hogy az összes Értékesítési jutalék eredménye ÜRES. Ennek az az oka, hogy több érték van a Sales Territory tábla Ország oszlopának szűrőkörnyezetében. Ebben az esetben a függvény a HASONEVALUE értéket adja vissza FALSE, ami azt eredményezi, hogy a Revenue mértéket megszorozza a BLANK értékkel (a BLANK értékkel szorzott érték ÜRES). Egy összeg előállításához iterátorfüggvényt kell használnia, amelyről később lesz szó ebben a modulban.

Három másik függvény segítségével is ellenőrizheti a szűrőállapotot:

  • ISFILTERED – A visszaadott oszlophivatkozások TRUEközvetlen szűrése esetén ad vissza értéket.
  • ISCROSSFILTERED – A visszaadott oszlophivatkozás közvetett TRUEszűrése esetén ad vissza értéket. Egy oszlop akkor minősül keresztszűrtnek, ha ugyanazon tábla vagy egy kapcsolódó tábla egy másik oszlopára alkalmazott szűrő a hivatkozott oszlopra is szűrőt alkalmaz.
  • ISINSCOPE – Akkor ad TRUE vissza értéket, ha egy átadott oszlophivatkozás a szintek hierarchiájában lévő szint.

Térjen vissza a jelentés 2. oldalához, majd módosítsa a Revenue % Total Country mértékdefiníciót annak ellenőrzéséhez, hogy az Értékesítési terület tábla Régió oszlopa hatókörben van-e. Ha nem szerepel a hatókörben, a mérték eredményének ÜRES kell, hogy legyen.

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

A képen a Reseller Revenue (Viszonteladói bevétel) mátrixos vizualizáció látható, amely a sorokat Group (Csoport), Country (Ország) és Region (Régió) szerinti csoportosítja, valamint tartalmazza a Revenue (Bevétel), a Revenue % Total Region (Bevétel %-os aránya az összes régió esetében), a Revenue % Total Country (Bevétel %-os aránya az összes ország esetében) és a Revenue % Total Group (Bevétel %-os aránya az összes csoport esetében) összegzéseket. Az ÜRES értékek a Revenue % Total Country (Bevétel %-os aránya az összes ország esetében) összegzéseiben találhatók.

Megfigyelheti, hogy a mátrixvizualizációban a Revenue % Total Country (Bevétel %-os aránya az összes ország esetében) értékei most már csak akkor jelenik meg, ha egy régió a hatókörben van.