Iterátorfüggvények ismertetése
Mind a számított oszlopok, mind a mértékek olyan környezettel rendelkeznek, amelyen kiértékelik őket. A környezet határozza meg azt a szemcsét, amelyen a számításokat el kell végezni. A környezet megértése és a környezet hatékony használata fontos a nagy teljesítményű képletek létrehozása, a dinamikus elemzések és a képletek hibáinak elhárítása szempontjából.
Mielőtt iterátorfüggvényekről beszélnénk, két fontos környezeti fogalmat kell átvennie: a sorkörnyezetet és a szűrőkörnyezetet.
A sorkörnyezet ismertetése
A sorkörnyezet a szemcsés vagy az aktuális sor; ez az adatok kiértékelésének sorlebontása. Minden iterátorfüggvény kiértékelése sorkörnyezet szerint. A számított oszlopok sorkörnyezet szerint kiértékelhetők – így rendelkeznek oszlopértékekkel minden egyes sorhoz.
A sorkörnyezet automatikusan követi a táblák közötti kapcsolatokat annak meghatározásához, hogy (a kapcsolódó táblákban) mely sorok legyenek társítva az aktuális sorhoz.
Nézzük meg például a következő kódot:
ActualSales = Sales * RELATED( Product[Discount] )
Az előző képlet egyszerűen a RELATED függvényt használja az aktuális termék kedvezménydíjának lekéréséhez a Product táblából. Nem kell megadnia a két táblát összekötő mezőt.
A szűrőkörnyezet ismertetése
A szűrőkörnyezet az egyes oszlopokban engedélyezett értékek halmaza a sorra alkalmazott szűrési korlátozások alapján. Ezek úgy is gondolhatók, mint a jelentésre szeletelők vagy interakciók segítségével alkalmazott szűrők.
Tekintsünk meg egy szűrőkörnyezeti példát:
A kiemelt cella szűrőkörnyezettel rendelkezik a 2018-ra vonatkozóan, az állapot az Alabama, a Negyedév pedig az 1. negyedév. A kimutatás bármely más értéke eltérő lesz, mivel az év, az állapot és a negyedév eltérő szűrőkörnyezettel rendelkezik.
Tipp
CORATING TO TABLEAU: How Tableau and Power BI decide to calculate measures are similar; ez az oldalon található adatokon, az alkalmazott szűrőken stb. alapul. A Tableau-számítások környezete leggyakrabban a Részletességi (LOD) kifejezésekhez és a táblaszámításokhoz van társítva.
Iterátorfüggvények ismertetése
Az iterátorfüggvényekről való beszélgetés során a sorkörnyezet fogalmára összpontosít.
Íme egy példa egy egyszerű iterátorfüggvényre:
COGS = SUMX( Sales, RELATED( Product[Wholesale Price]) * Sales[Quantity] )
Az előző képletben ugyanazt a COGS-képletet használja, mint korábban, de a SZUMX iterátor függvénybe burkolja.
A SZUMX függvény első része az iterátortábla, vagy az, hogy milyen szemcseméretet kell kiértékelnie. Ebben a példában az iterátortábla a Sales tábla. A számítás elvégzéséhez ki kell értékelnie a Sales táblák minden sorát.
Ezután létrehoz egy listakimenetet egy ideiglenes táblában.
Végül végrehajtja a függvény elején megadott összesítést.
Referenciákra mutató hivatkozások
A környezettel kapcsolatos további információkért lásd: Környezet a DAX-képletekben
A sor- és szűrőkörnyezettel kapcsolatos további információkért lásd: Sorkörnyezet és szűrőkörnyezet a DAX-ban