Tabuľkové výrazy DAX
Väčšinou sa v službe Power BI vytvárajú tabuľky importovaním údajov do modelu z externého zdroja údajov. Pomocou funkcií tabuľky namiesto toho pridáte nové tabuľky na základe údajov, ktoré ste už do modelu načítali.
Prehľad
Funkcie tabuľky umožňujú používateľom služby Power BI vytvoriť sprostredkovanú tabuľku, ktorá sa zobrazí v dátovom modeli a môže sa použiť v iných výrazoch DAX. Funkcie tabuľky sú dočasné tabuľky, ktoré môžete použiť, ale nie sú viditeľné, pretože nie sú výstupmi.
Funkcie FILTER, VALUES a ALL predstavujú niektoré bežné sprostredkujúce tabuľky, ktoré sa často používajú v mierkach DAX.
Použitie funkcie FILTER
Funkcia FILTER nastaví filter pre konkrétnu tabuľku a potom vo výpočte použije skrátenú verziu tabuľky. Inými slovami, vráti tabuľku, ktorá predstavuje podmnožinu inej tabuľky alebo výrazu.
Povedzme napríklad, že máte nasledujúcu tabuľku údajov:
V predchádzajúcej tabuľke máte niekoľko riadkov, ktoré zvýraznia predaj v Seattli. Celkový predaj v Seattli v roku 2018 je 30,13 (20,46 + 9,67). Ak chcete získať tento výsledok s funkciou FILTER:
2018 Sales = SUMX(
FILTER(
Sales,
YEAR( Sales[SalesDate] ) = 2018
),
[Price]*[Quantity]
)
Tip
CORRELATING TO TABLEAU: Ak chcete vytvoriť rovnaký výpočet v tableau, použite syntax IF/THEN: 2018 Sales = IF YEAR([SalesDate]) = 2018 THEN SUM([Price]*[Quantity]) END
V predchádzajúcom zlomku kódu ste najprv načítali údaje pre kontext filtra, ktorým je tabuľka faktov Sales (Predaj):
V ďalšom kroku ste vyfiltrovali údaje o predaji tak, aby zahŕňali iba predaj za rok 2018.
Nakoniec ste výraz vyhodnotili, ale iba pre záznamy v dočasnej tabuľke.
Použitie funkcie VALUES
Funkcia VALUES vráti tabuľku s jedným stĺpcom obsahujúcu odlišné hodnoty zo zadanej tabuľky alebo stĺpca. duplicitné hodnoty sa odstránia a vrátia sa iba jedinečné hodnoty.
Napríklad práve vám bola odovzdaná úloha tam, kde musíte ukázať, ktorý hráč športového tímu má poslednú nevyrovnanú pokutu, ktorú je potrebné vyplatiť.
Nižšie je uvedená tabuľka údajov (s názvom Team Fine Details), ktorú budete používať:
Čo budete musieť urobiť, je otestovať, či je tu len jeden hráč vľavo splatiť svoju pokutu. Ak áno, zobrazte ich meno. V opačnom prípade zobrazí správu "viac ako jeden prehrávač".
Môžete to urobiť pomocou funkcie VALUES:
LastPlayer = IF(
COUNTROWS( VALUES( 'Team Fine Details'[SportsTeam] ) ) = 1,
VALUES( 'Team Fine Details'[PlayerName] ),
"More than one player"
)
Tip
CORRELATING TO TABLEAU: Takto by ste v tableau mohli vykonať rovnaký výpočet: LastPlayer = IF COUNTD([SportsTeam]) = 1 THEN [PlayerName] ELSE "More than one player" END
Táto mierka by vyzerala približne ako zostava/vizualizácia nižšie:
Použitie funkcie ALL
Funkcia ALL povie službe Power BI, aby sa pozrela na konkrétnu tabuľku, prevzala z nej všetky hodnoty (nefiltrujte tabuľku) a použila túto podmnožinu hodnôt vo výraze.
Bežným použitím funkcie ALL je vtedy, keď chcete poznať percento súčtu agregovanej mierky.
Uvažujme o situácii, že športový tím má napr. Váš šéf je spokojný so svojimi zisteniami z predchádzajúcej úlohy, ale chce vedieť, ktorý tím má najvyššie percento nezaplatených pokút.
Prvým krokom je vytvorenie mierky pre celkový súčet nezaplatených pokút:
TotalAllFineAmount = CALCULATE( [TotalFineAmount], ALL( 'Team Fine Details'[SportsTeam] ) )
Tip
CORRELATING TO TABLEAU: Takto by ste použili rovnaký výpočet v Tableau pomocou výrazu FIXED LOD. Agregujete celkový súčet TotalFineAmount na úrovni tabuľky: TotalAllFineAmount = { FIXED : SUM([TotalFineAmount]) }
Druhým a posledným krokom je vytvorenie percenta z celkovej mierky pomocou funkcie DIVIDE:
FineAmountPercentOfTotal = DIVIDE( [TotalFineAmount], [TotalAllFineAmount] )
Tip
CORRELATING TO TABLEAU: Takto by ste v tableau mohli vykonať rovnaký výpočet: FineAmountPercentOfTotal = SUM([TotalFineAmount]) / SUM([TotalAllFineAmount])
Potrebujete pomoc? Pozrite si nášho sprievodcu riešením problémov alebo odošlite konkrétne pripomienky nahlásením problému.





