Tábla DAX-kifejezések

Befejeződött

A Power BI-ban a legtöbb esetben úgy hoz létre táblákat, hogy adatokat importál a modellbe egy külső adatforrásból. Táblázatfüggvények esetén ehelyett új táblákat ad hozzá a modellbe már betöltött adatok alapján.

Áttekintés

A táblafüggvények lehetővé teszik, hogy a Power BI-felhasználók köztes táblázatot hozzanak létre, amelyet az adatmodellben tekinthetnek meg, és más DAX-kifejezésekben is használhatnak. A táblafüggvények ideiglenes táblák, amelyeket használhat, de nem láthatók, mert nem jelennek meg.

A FILTER, a VALUES és az ALL néhány gyakori köztes tábla, amelyeket gyakran használnak a DAX-mértékekben.

A FILTER függvény alkalmazása

A FILTER függvény beállítja a szűrőt egy adott táblához, majd egy tábla egy tömörített verzióját használja egy számításban. Más szóval egy olyan táblát ad vissza, amely egy másik tábla vagy kifejezés egy részhalmazát jelöli.

Tegyük fel például, hogy a következő adattáblával rendelkezik:

A FILTER függvény példájában hivatkozott adattábla.

Az előző táblázatban vannak olyan sorok, amelyek a Seattle értékesítését emelik ki. Seattle teljes értékesítése 2018-ban 30,13 (20,46 + 9,67). Az eredmény lekérése a FILTER függvénnyel:

2018 Sales = SUMX(
  FILTER(
    Sales,
    YEAR( Sales[SalesDate] ) = 2018
  ),
  [Price]*[Quantity]
)

Tipp

KORRELÁCIÓ A TABLEAU-HOZ: Ha ugyanazt a számítást szeretné létrehozni a Tableau-ban, használja a HA/THEN szintaxist: 2018 Sales = IF YEAR([SalesDate]) = 2018 THEN SUM([Price]*[Quantity]) END

Az előző kódrészletben először lekérte a szűrőkörnyezet adatait, amely a Sales ténytábla:

Az Értékesítési ténytábla adatelőnézete.

Ezután szűrte az Értékesítési adatokat, hogy csak a 2018-ra vonatkozó értékesítéseket tartalmazza.

A 2018-ra vonatkozó értékesítéseket kiemelő Sales ténytábla adatelőnézete.

Végül kiértékelte a kifejezést, de csak az ideiglenes táblában lévő rekordokra.

A 2018-ra vonatkozó értékesítések megjelenítésére szűrt Sales ténytábla adatelőnézete.

A VALUES függvény alkalmazása

AZ ÉRTÉKEK egy egyoszlopos táblát ad vissza, amely a megadott táblától vagy oszloptól eltérő értékeket tartalmazza; a rendszer eltávolítja az ismétlődő értékeket, és csak az egyedi értékeket adja vissza.

Most kapott például egy feladatot, amelyben meg kell mutatnia, hogy egy sportcsapat melyik játékosa rendelkezik az utolsó kiemelkedő finom egyenlegével, amelyet ki kell fizetni.

Az alábbi adattábla (a csapat részletes adatai) lesz használva:

Adattábla, amely a VALUES függvény példájában lesz hivatkozva.

Amit meg kell tennie, tesztelje, hogy csak egy játékos maradt, hogy kifizetje a bírságot. Ha igen, jelenítse meg a nevüket. Ellenkező esetben jelenítse meg a "több játékos" üzenetet.

Ezt a VALUES függvénnyel teheti meg:

LastPlayer = IF(
  COUNTROWS( VALUES( 'Team Fine Details'[SportsTeam] ) ) = 1,
  VALUES( 'Team Fine Details'[PlayerName] ),
  "More than one player"
)

Tipp

A TABLEAU-HOZ VALÓ KORRELÁCIÓ: Így végezheti el ugyanezt a számítást a Tableauban: LastPlayer = IF COUNTD([SportsTeam]) = 1 THEN [PlayerName] ELSE "More than one player" END

Ez a mérték az alábbi jelentéshez/vizualizációhoz hasonlóan nézne ki:

Példajelentés a LastPlayer számítással együtt.

Az ALL függvény alkalmazása

Az ALL függvény arra utasítja a Power BI-t, hogy vizsgálja meg egy adott táblát, vegye ki belőle az összes értéket (ne szűrje a táblát), és használja az értékek ezen részhalmazát egy kifejezésben.

Az ALL függvénnyel általában akkor érdemes tisztában lenni, ha egy összesített mérték százalékos arányát szeretné tudni.

Vegyük például a sportcsapatra vonatkozó részletes forgatókönyvet. A főnöke elégedett az előző feladattal kapcsolatos megállapításaival, de tudni szeretné, hogy melyik csapat rendelkezik a legmagasabb arányban a kiemelkedő bírságok arányával.

A legutóbbi jelentés a LastPlayer számítással együtt.

Az első lépés egy intézkedés létrehozása a ki nem egyenlített bírságok teljes összegére vonatkozóan:

TotalAllFineAmount = CALCULATE( [TotalFineAmount], ALL( 'Team Fine Details'[SportsTeam] ) )

Tipp

KORRELÁCIÓ A TABLEAU-HOZ: Így végezheti el ugyanezt a számítást a Tableauban a FIX LOD kifejezéssel. A teljes TotalFineAmount értéket a tábla szintjén összesítjük: TotalAllFineAmount = { FIXED : SUM([TotalFineAmount]) }

A második és utolsó lépés a teljes mérték százalékos arányának létrehozása a DIVIDE függvénnyel:

FineAmountPercentOfTotal = DIVIDE( [TotalFineAmount], [TotalAllFineAmount] )

Tipp

A TABLEAU-HOZ VALÓ KORRELÁCIÓ: Így végezheti el ugyanezt a számítást a Tableauban: FineAmountPercentOfTotal = SUM([TotalFineAmount]) / SUM([TotalAllFineAmount])