Úvodné informácie o jazyku DAX v aplikácii Power BI Desktop
Získanie prístupu k prostrediu
Skôr než začnete toto cvičenie (ak nepokračujete z predchádzajúceho cvičenia), vyberte položku Spustiť cvičenie vyššie.
Do cvičného prostredia ste automaticky prihlásení ako používatelia s údajmi– ai\študentmi.
Teraz môžete začať s týmto cvičením pracovať.
Tip
Ak chcete cvičenie ukotviť, aby sa vyplnil okno, vyberte v hornej časti ikonu PC a potom vyberte položku Prispôsobiť okno do počítača.
V tomto cvičení vytvoríte vypočítavané tabuľky, vypočítané stĺpce a jednoduché mierky pomocou jazyka DAX (Data Analysis Expressions).
Čo sa naučíte v tomto cvičení:
Vytváranie vypočítaných tabuliek
Vytváranie vypočítaných stĺpcov
Vytváranie mierok
Cvičenie č. 1: Vytváranie vypočítaných tabuliek
V tomto cvičení vytvoríte dve vypočítané tabuľky. Prvou z nich bude tabuľka Salesperson (Predajca), ktorá umožní priamy vzťah medzi touto tabuľkou a tabuľkou Sales (Predaj). Druhou tabuľkou bude Date (Dátum).
Otvorte štartovací súbor Sales Analysis.pbix , ktorý sa nachádza v priečinku D:\DA100\Labs\05-create-dax-calculations-in-power-bi-desktop\Starter .
Úloha 1: Vytvorenie tabuľky Salesperson
V tejto úlohe vytvoríte tabuľku Salesperson (priamy vzťah s tabuľkou Predaj).
V Power BI Desktop v zobrazení zostavy na páse s nástrojmi Modelovanie v skupine Výpočty vyberte položku Nová tabuľka.
V riadku vzorcov (ktorý sa otvára priamo pod pásom s nástrojmi pri tvorbe alebo úprave výpočtov) napíšte Salesperson =, stlačte klávesy SHIFT + ENTER, napíšte 'Salesperson (Performance)' a potom stlačte kláves Enter.
Pre vaše pohodlie je možné všetky definície jazyka DAX v tomto cvičení skopírovať zo súboru D:\DA100\Lab05\Assets\Snippets.txt .
Vypočítaná tabuľka sa vytvorí po prvom zadaní názvu tabuľky, za ktorým nasleduje symbol rovnosti (=), za ktorým nasleduje vzorec DAX, ktorý vráti tabuľku. Názov tabuľky už nemôže existovať v dátovom modeli.
Riadok vzorcov podporuje zadávanie platného vzorca jazyka DAX. Obsahuje funkcie ako automatické dokončovanie, Intellisense a farebné kódovanie, ktoré vám umožnia rýchlo a presne zadať vzorec.
Táto definícia tabuľky vytvorí kópiu tabuľky Salesperson (Performance). Skopíruje iba údaje, avšak nie vlastnosti, ako napríklad viditeľnosť, formátovanie atď.
Tip
Môžete zadať prázdne znaky (napríklad znak konca riadka či tabulátor), aby ste rozloženie vzorcov upravili intuitívnym spôsobom vhodným na čítanie, najmä ak sú vzorce dlhé a komplexné. Ak chcete zadať znak konca riadka, stlačte Shift+Enter. Prázdny znak je voliteľný.
Všimnite si, že na table Polia má ikona tabuľky aj ikonu kalkulačky (čo znamená, že ide o vypočítavanú tabuľku).
Vypočítané tabuľky sú definované pomocou vzorca jazyka DAX, ktorý vráti tabuľku. Vypočítavané tabuľky zväcujú veľkosť dátového modelu, pretože realizujú a ukladajú hodnoty. Pri každom obnovení závislostí vzorca sa znova vypočítajú, ako to bude aj v prípade tohto dátového modelu, keď do tabuliek načítate nové (budúce) hodnoty dátumu.
Na rozdiel od tabuliek, ktoré pochádzajú z Power Query, sa vypočítané tabuľky nedajú použiť na načítanie údajov z externých zdrojov údajov. Môžu transformovať údaje len na základe toho, čo už bolo načítané do dátového modelu.
Prepnutie na zobrazenie Model
Všimnite si, že je k dispozícii tabuľka Salesperson (nezabudnite, že môže byť v zobrazení skrytá, v prípade, ak ju nevidíte, rolujte zobrazenie horizontálne).
Vytvorte vzťah medzi stĺpcom Salesperson | EmployeeKey a stĺpcom Sales | EmployeeKey.
Pravým tlačidlom myši kliknite na neaktívny vzťah medzi tabuľkami Salesperson (Performance) a Sales a potom vyberte možnosť Delete.
Po zobrazení výzvy na potvrdenie odstránenia vyberte položku Odstrániť.
V tabuľke Salesperson vyberte niekoľko stĺpcov z nasledujúcich a potom ich skryte:
EmployeeID
EmployeeKey
UPN
V diagrame modelu vyberte tabuľku Salesperson (Predajca ).
Na table Vlastnosti zadajte do poľa tento popis: Predajca súvisiaci s predajom s
Pripomíname, že popisy sa zobrazia ako popisy na table Polia , keď používateľ ukáže kurzorom na tabuľku alebo pole.
Pre tabuľku Salesperson (Performance) zadajte popis: Salesperson related to s sale (Predajca súvisiaci s predajom s).
Dátový model teraz pri analýze predajcov ponúka dve alternatívy. Tabuľka Salesperson vám umožní analyzovať predaj vykonaný predajcom, pričom tabuľka Salesperson (Performance) umožní analýzu predaja vykonaného v regiónoch priradených predajcovi.
Úloha 2: Vytvorenie tabuľky dátumov
V tejto úlohe vytvoríte tabuľku Dátum .
Prepnutie na zobrazenie údajov.
Na karte Domov na páse s nástrojmi v skupine Výpočty vyberte položku Nová tabuľka.
Do riadka vzorcov zadajte nasledujúce údaje a potom stlačte kláves ENTER:
Date = CALENDARAUTO(6)Funkcia CALENDARAUTO() vráti tabuľku s jedným stĺpcom pozostávajúcim z dátumových hodnôt. Automatické nastavenie tejto funkcie spôsobí, že nasníma všetky stĺpce dátového modelu a určí najnovší a najstarší dátum uložený v dátovom modeli. Potom vytvorí jeden riadok pre každý dátum v uvedenom rozsahu a rozšíri rozsah v oboch smeroch, aby sa zabezpečilo, že sa uložia údaje z celých rokov.
Táto funkcia môže mať jeden voliteľný argument, ktorý predstavuje číslo posledného mesiaca v roku. V prípade vynechania je hodnotou číslo 12, čo znamená, že december je posledný mesiac v roku. V tomto prípade sa zadalo číslo 6, čo znamená, že jún je posledný mesiac v roku.
Všimnite si stĺpec dátumových hodnôt.
Ak sa stĺpec nezobrazí, na table Polia vyberte inú tabuľku a potom vyberte tabuľku Date .
Zobrazené dátumy sú formátované pomocou miestnych nastavení platných v USA (mm/dd/rrrr).
V ľavom dolnom rohu v stavovom riadku si všimnite štatistiku tabuľky a potvrďte, že sa vygenerovalo 1826 riadkov údajov, čo predstavuje päť úplných rokov údajov.
Úloha 3: Vytváranie vypočítaných stĺpcov
V tejto úlohe pridáte ďalšie stĺpce, ktoré umožnia filtrovanie a zoskupovanie podľa rôznych časových období. Môžete tiež vytvoriť vypočítaný stĺpec na ovládanie poradia zoradenia ostatných stĺpcov.
Na kontextuálnom páse Nástroje tabuľky v skupine Výpočty vyberte položku Nový stĺpec.
Do riadka vzorcov zadajte nasledujúce údaje a potom stlačte kláves Enter:
Year = "FY" & YEAR('Date'[Date]) + IF(MONTH('Date'[Date]) > 6, 1)Vypočítavaná tabuľka sa vytvorí po prvom zadaní názvu stĺpca, za ktorým nasleduje symbol rovnosti (=) a potom vzorec DAX, ktorý vráti výsledok s jedinou hodnotou. Názov stĺpca ešte nemôže v tabuľke existovať.
Vzorec použije hodnotu roka uvedenú v dátume, ale pripočíta hodnotu jedna k hodnote roka, keď je mesiac nastavený až po júni. Takto sa vypočítavajú fiškálne roky v spoločnosti Adventure Works.
Skontrolujte, či bol pridaný nový stĺpec.
Pomocou úryvkov definícií súboru vytvorte nasledujúce dva vypočítané stĺpce pre tabuľku Dátum:
- Štvrťrok
- Mesiac
Ak chcete výpočty overiť, prepnite sa do zobrazenia Zostava.
Ak chcete vytvoriť novú stranu zostavy, vľavo dolu vyberte ikonu plus.
Ak chcete pridať na novú stranu zostavy vizuál matice, na table Vizualizácie vyberte typ vizuálu matice.
Tip
Nad každou ikonou môžete podržať kurzor myši a zobrazí sa vám popis typu vizuálu.
Presuňte pole Rok zvnútra tabuľky Dátum umiestnenej na table Polia do časti Riadky.
Presuňte pole Mesiac do časti Riadky, ktorá je priamo pod poľom Rok.
Vedľa vizuálu matice vyberte ikonu obojstrelnej šípky, ktorá rozbalí všetky roky na jednu úroveň.
Všimnite si, že roky sa rozbalia na mesiace a mesiace sú zoradené abecedne a nie chronologicky.
Predvolene sa textové hodnoty zoraďujú abecedne, čísla sa usporadúvajú od najmenšieho po najväčšie a dátumy od najstaršieho po najnovší.
Ak chcete upraviť spôsob zoradenia poľa Mesiac, prepnite na zobrazenie údajov.
Pridajte stĺpec MonthKey do tabuľky Dátum. Tento vzorec vypočíta číselnú hodnotu pre jednotlivé kombinácie roka a mesiaca.
MonthKey = (YEAR('Date'[Date]) * 100) + MONTH('Date'[Date])V zobrazení údajov overte, či nový stĺpec obsahuje číselné hodnoty (napríklad 201707 pre júl 2017 atď.).
Uistite sa, že na table Polia je vybraté pole Mesiac (ak je vybraté, jeho pozadie má tmavosivú farbu).
Na kontextuálnom páse s nástrojmi Nástroje pre stĺpce v skupine Zoradiť vyberte položku Zoradiť podľa stĺpca a potom vyberte položku MonthKey.
Všimnite si, že vo vizuáli matice sú teraz mesiace zoradené chronologicky.
Úloha č. 4: Dokončenie tabuľky dátumov
V tejto úlohe dokončíte návrh tabuľky Dátum skrytím stĺpca a vytvorením hierarchie. Následne vytvoríte vzťahy s tabuľkami Predaj a Ciele .
Prepnutie na zobrazenie Model
V tabuľke Dátum skryte stĺpec MonthKey.
Na pravej table Polia vyberte tabuľku Dátum , kliknite pravým tlačidlom myši na stĺpec Year (Rok ) a vyberte položku vytvoriť hierarchiu.
Premenujte novovytvorenú hierarchiu na Fiškálny kliknutím pravým tlačidlom myši a možnosťou Premenovať
Nasledujúce dve zostávajúce polia pridajte do hierarchie Fiškálne tak, že ich vyberiete na table polí, kliknete pravým tlačidlom myši a vyberiete položku Pridať do hierarchie -> Fiškálne
Vytvorte nasledujúce dva vzťahy s modelmi:
- Dátum | Dátum a Predaj | OrderDate (DátumObjednávky)
- Dátum | Dátum a Ciele | TargetMonth (CieľMesiac)
Skryte nasledujúce dva stĺpce:
- Predaj | OrderDate (DátumObjednávky)
- Ciele | TargetMonth (CieľMesiac)
Úloha č. 5: Označenie tabuľky dátumov
V tejto úlohe označíte tabuľku Dátum ako tabuľku dátumov.
Prepnite na zobrazenie zostavy.
Na table Polia vyberte tabuľku Dátum (nie pole).
Na kontextuálnom páse s nástrojmi Nástroje tabuľky v skupine Kalendáre vyberte položku Označiť ako tabuľku dátumov a potom vyberte položku Označiť ako tabuľku dátumov.
V okne Označiť ako tabuľku dátumov v rozbaľovacom zozname Stĺpec dátumov vyberte položku Dátum.
Vyberte položku OK.
Uložte súbor aplikácie Power BI Desktop.
Aplikácia Power BI Desktop odteraz rozumie, že táto tabuľka definuje dátum (čas). Je to dôležité pri spoliehaní sa na výpočty časovej inteligencie. S výpočtami časovej inteligencie budete pracovať v cvičení Lab 06B.
Poznámka
Tento prístup k návrhu tabuľky dátumov je vhodný, pokiaľ nemáte tabuľku dátumov vo svojom zdroji údajov. Ak máte prístup ku skladu údajov, bolo by vhodné radšej načítať údaje o dátumoch z tabuľky dimenzií dátumov ako „znova definovať“ dátumovú logiku v modeli údajov.
Cvičenie č. 2: Vytváranie mierok
V tomto cvičení vytvoríte a naformátujete niekoľko mierok.
Úloha č. 1: Vytváranie jednoduchých mierok
V tejto úlohe budete vytvárať jednoduché mierky. Jednoduché mierky agregujú jeden stĺpec alebo tabuľku.
V zobrazení zostavy na Strane č. 2 na table Polia presuňte pole Predaj | Jednotková cena do časti Hodnoty vo vizuáli matice.
Nezabúdajme, že v cvičení Lab 05A ste nastavili stĺpec Jednotková cena tak, aby sa sumarizoval podľa hodnoty Priemer. Výsledok, ktorý sa zobrazí vo vizuáli matice, predstavuje priemernú jednotkovú cenu.
Všimnite si, že Jednotková cena je uvedená na table s poľami vizuálu (umiestnenej pod tablou Vizualizácie) v časti Hodnoty.
Vyberte šípku nadol pre Unit Price (Jednotková cena) a všimnite si dostupné možnosti ponuky.
Viditeľné číselné stĺpce umožňujú autorom zostáv, aby sa rozhodli počas návrhu zostavy, ako sa bude stĺpec sumarizovať (a či vôbec). Môže to mať za následok nevhodné vytváranie zostáv. Niektorí modelári údajov nenájdu nechať veci na náhodu, a preto si vyberú možnosť skryť tieto stĺpce a namiesto toho odhaliť logiku agregácie definovanú mierkami. Práve tento prístup si teraz ukážeme v tomto cvičení.
Ak chcete vytvoriť mierku, na table Polia kliknite pravým tlačidlom na tabuľku Predaj a následne vyberte položku Nová mierka.
Do riadka vzorcov pridajte nasledujúcu definíciu mierky:
Avg Price = AVERAGE(Sales[Unit Price])Pridajte mierku priemernej ceny do časti Hodnoty vo vizuáli matice.
Všimnite si, že výsledok je rovnaký ako stĺpec Jednotková cena (ale s iným formátovaním).
V kontajneri Hodnoty otvorte kontextová ponuka pre pole Priemerná cena a všimnite si, že nie je možné zmeniť metódu agregácie.
Pomocou úryvkov definícií súboru vytvorte nasledujúcich päť mierok pre tabuľku Predaj:
- Mediánová cena
- Minimálna cena
- Maximálna cena
- Objednávky
- Riadky objednávky
Funkcia DISTINCTCOUNT() použitá v mierke Objednávky spočíta objednávky iba raz (ignoruje duplikátov). Funkcia COUNTROWS() použitá v mierke Riadky objednávky sa použije v tabuľke. V tomto prípade sa počet objednávok vypočítava spočítaním rôznych hodnôt stĺpca SalesOrderNumber (Číslo predajnej objednávky), zatiaľ čo počet riadkov objednávky je jednoducho počet riadkov tabuľky (každý riadok tabuľky je riadkom objednávky).
Prepnite na zobrazenie modelu a potom pomocou viacnásobného výberu vyberte štyri cenové mierky: Priemerná cena, Maximálna cena, Mediánová cena a Minimálna cena.
Pre viacnásobný výber mierok nakonfigurujte nasledujúce požiadavky:
- Nastavenie formátu na dve desatinné miesta
- Priradenie zobrazovaného priečinku s názvom Ceny
Skryte stĺpec Jednotková cena.
Stĺpec Jednotková cena v súčasnosti nie je k dispozícii pre autorov zostáv. Musia používať mierku, ktorú ste pridali do modelu. Tento prístup k návrhu zaisťuje, že autori zostáv nebudú nevhodne agregovať ceny, napríklad ich sčítaním.
Pomocou viacnásobného výberu vyberte mierky Objednávky a Riadky objednávky a nakonfigurujte nasledujúce požiadavky:
- Nastavte formát pomocou oddeľovača tisícov
- Priradenie zobrazovaného priečinka s názvom Počty
V zobrazení zostavy vyberte v časti Hodnoty vizuálu matice pole Jednotková cena a odstráňte ho výberom položky X.
Zväčšite veľkosť vizuálu matice tak, aby vyplnil celú šírku a výšku strany.
Pridajte do vizuálu matice nasledujúcich päť nových mierok:
- Mediánová cena
- Minimálna cena
- Maximálna cena
- Objednávky
- Riadky objednávky
Skontrolujte, či výsledky vyzerajú zmysluplne a či sú správne naformátované.
Úloha č. 2: Vytvorenie ďalších mierok
V tejto úlohe vytvoríte ďalšie mierky, ktoré používajú zložitejšie výrazy.
V zobrazení zostavy vyberte Stranu č. 1.
Skontrolujte vizuál tabuľky. Všimnite si celkový súčet stĺpca Cieľ.
Súčet cieľových hodnôt nedáva zmysel, pretože ciele predajcov sú nastavené pre každého predajcu na základe priradených oblastí predaja. Cieľová hodnota sa zobrazí iba v prípade, že je odfiltrovaný jeden predajca. Ak to chcete urobiť, implementujete teraz mierku.
Odstráňte vo vizuáli tabuľky pole Cieľ.
Premenujte stĺpec Ciele | Cieľ na Ciele | TargetAmount (Cieľová čiastka).
Tip
Existuje niekoľko spôsobov premenovania stĺpca v zobrazení zostavy: Na table Polia môžete dvakrát kliknúť pravým tlačidlom myši na stĺpec a následne vybrať možnosť Premenovať, alebo dvakrát kliknúť na stĺpec alebo stlačiť tlačidlo F2.
Chystáte sa vytvoriť mierku s názvom Cieľ. Nie je možné, aby sa v rovnakej tabuľke nachádzali stĺpec a mierka s rovnakým názvom.
V tabuľke Ciele vytvorte nasledujúce mierky:
Target = IF( HASONEVALUE('Salesperson (Performance)'[Salesperson]), SUM(Targets[TargetAmount]) )Funkcia HASONEVALUE() testuje, či je v stĺpci Predajca filtrovaná len jedna hodnota. Ak je hodnota True, výraz vráti súčet cieľovej čiastky (len pre daného predajcu). Keď sa vráti hodnota False, vráti sa výraz BLANK (prázdny).
Naformátujte mierku Cieľ pre nulové desatinné miesta.
Tip
Môžete použiť Nástroje mierky pása s nástrojmi.
Skryte stĺpec TargetAmount (Cieľová čiastka).
Pridajte do vizuálu tabuľky mierku Cieľ.
Všimnite si, že súčet stĺpca Cieľ je teraz BLANK (prázdny).
Pomocou úryvkov definícií súboru vytvorte nasledujúce dve mierky pre tabuľku Ciele:
- Odchýlka
- Rozpätie odchýlky
Naformátujte mierku Odchýlka pre nula desatinných miest.
Naformátuje mierku Rozpätie odchýlky ako percentuálnu hodnotu s dvomi desatinnými miestami.
Pridajte mierky Odchýlka a Rozpätie odchýlky do tabuľky vizuálu.
Rozšírte vizuál tabuľky tak, aby sa zobrazili všetky hodnoty.
Hoci sa zdá, že všetci predajcovia nespĺňajú ciele, nezabudnite, že mierky ešte nie sú filtrované podľa konkrétneho časového obdobia. V cvičení Lab 07A vytvoríte zostavy výkonu predaja, ktoré sa budú filtrovať podľa časového obdobia, ktoré vyberie používateľ.
Zbaľte a následne rozbalením otvorte tablu Polia v pravom hornom rohu tably.
Zbalením a opätovním otvorením tably sa obsah obnoví.
Všimnite si, že tabuľka Ciele sa zobrazí v hornej časti zoznamu.
Tabuľky, ktoré obsahujú iba viditeľné mierky, sú automaticky uvedené v hornej časti zoznamu.
Dokončenie
V tejto úlohe dokončíte cvičenie.
Uložte súbor aplikácie Power BI Desktop.
Ponechajte aplikáciu Power BI Desktop otvorenú.
V ďalšom cvičení vylepšíte dátový model pokročilejšími výpočtami pomocou jazyka DAX.
Potrebujete pomoc? Pozrite si nášho sprievodcu riešením problémov alebo odošlite konkrétne pripomienky nahlásením problému.










































