Szűrőkörnyezet vizsgálata
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
)
)
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ásokTRUE
közvetlen szűrése esetén ad vissza értéket.ISCROSSFILTERED
– A visszaadott oszlophivatkozás közvetettTRUE
szű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 adTRUE
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
)
)
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.