Cvičenie – Časová inteligencia a mierky v jazyku DAX

Dokončené

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.

Snímka obrazovky cvičenia s vybratou ikonou PC a zvýraznenou možnosťou Prispôsobiť okno počítaču.

V tomto cvičení budete vytvárať mierky s výrazmi v jazyku DAX, ktoré zahŕňajú manipuláciu s kontextom.

Čo sa naučíte v tomto cvičení:

  • používať funkciu CALCULATE () na manipuláciu s kontextom filtra

  • používať funkcie časovej inteligencie

Cvičenie č. 1: Práca s kontextom filtra

V tomto cvičení budete vytvárať mierky s výrazmi v jazyku DAX, ktoré zahŕňajú manipuláciu s kontextom.

Otvorte úvodný súbor cvičenia, ktorý nájdete v priečinku D:\DA100\Lab06B\starter.

Úloha č. 1: Vytvorenie vizuálu matice

V tejto úlohe budete vytvárať vizuál matice na podporu testovania nových mierok.

  1. V aplikácii Power BI Desktop v zobrazení Zostava vytvorte novú stranu zostavy.

    Snímka obrazovky zobrazujúca, ako pridať novú stranu zostavy.

  2. Na Strane 3 pridajte vizuál matice.

    Snímka obrazovky zobrazujúca spôsob pridania vizuálu matice.

  3. Zmeňte veľkosť vizuálu matice tak, aby vyplnil celú stranu.

  4. Ak chcete konfigurovať polia vizuálu matice, presuňte hierarchiu Oblasť | Oblasti z tably Polia a umiestnite ju dovnútra vizuálu.

  5. Pridajte tiež pole Predaj | Predaj.

  6. Ak chcete rozbaliť celú hierarchiu, kliknite dvakrát v pravom hornom rohu vizuálu matice na ikonu obojsmernej šípky.

    Snímka obrazovky znázorňujúca miesto, kde sa má kliknúť na obojsvojiu šípku.

    Pripomeňme si, že hierarchia Oblasti má úrovne Skupina, Krajina, Oblasť.

  7. Ak chcete vizuál formátovať, pod tablou Vizualizácie vyberte tablu Formát.

    Snímka obrazovky zobrazujúca spôsob výberu tably Formát.

  8. Do poľa Hľadať zadajte Odsadené.

  9. Nastavte vlastnosť Odsadené zobrazenie na možnosť Vyp.

    Snímka obrazovky znázorňujúca, ako vypnúť odsadené zobrazenie.

  10. Overte, či má vizuál matice štyri hlavičky stĺpcov.

    Snímka obrazovky s overením, či sú k dispozícii štyri hlavičky stĺpcov.

    V spoločnosti Adventure Works sú oblasti predaja usporiadané do skupín, krajín a oblastí. Všetky krajiny – okrem Spojených štátov – majú len jednu oblasť, ktorá je pomenovaná podľa krajiny. Keďže Spojené štáty sú takýmito veľkými oblasťami predaja, sú rozdelené do piatich oblastí.

    V tomto cvičení vytvoríte niekoľko mierok a potom ich otestujte pridaním do vizuálu matice.

Úloha 2: Manipulácia s kontextom filtra

V tejto úlohe vytvoríte niekoľko mierok s výrazmi DAX, ktoré používajú funkciu CALCULATE() na manipuláciu s kontextom filtra.

  1. V zobrazení zostavy na páse s nástrojmi Modelovanie v skupine Výpočty kliknite na položku Nová mierka aby sa do tabuľky Sales pridala mierka Sales All Region.

  2. Ak chcete vytvoriť mierku, použite nasledujúci výraz:

    Aby to bolo jednoduchšie, môžete všetky definície jazyka DAX v tomto cvičení skopírovať zo súboru D:\DA100\Lab06B\Assets\Snippets.txt.

    Sales All Region =
    CALCULATE(SUM(Sales[Sales]), REMOVEFILTERS(Region))
    

    Funkcia CALCULATE() je výkonná funkcia, ktorá slúži na manipuláciu s kontextom filtra. Prvý argument použije výraz alebo mierku (mierka je len pomenovaný výraz). Nasledujúce argumenty umožňujú upraviť kontext filtra.

    Funkcia REMOVEFILTERS() odstráni aktívne filtre. Nemusí použiť žiadne argumenty, alebo ako argument použije tabuľku, stĺpec či viac stĺpcov.

    V tomto stĺpci mierka vyhodnotí súčet stĺpca Sales v upravenom kontexte filtra, v ktorom sa odstránia všetky filtre použité v tabuľke Region.

  3. V riadku vzorcov skopírujte výraz zo súboru Snippets.txt a stlačte kláves Enter. Toto vytvorí mierku v tabuľke Predaj . Skontrolujte zoznam polí na table Polia pod tabuľkou Sales a zobrazí sa mierka Sales All Region .

  4. Ak chcete pridať mierku do vizuálu matice, začiarknite mierku Sales All Region na table Fields.

    Snímka obrazovky pása s nástrojmi na formátovanie položky Sales % All Region.

  5. Všimnite si, že mierka Sales All Region vypočíta súčet všetkých oblastných predajov pre každú oblasť, krajinu (medzisúčet) a skupinu (medzisúčet).

    Táto mierka však neprinesie použiteľný výsledok. Ak sa predaj v skupine, krajine alebo oblasti rozdelí touto hodnotou, vznikne užitočné percento, ktoré je známe ako percento z celkového objemu.

  6. Na table Fields skontrolujte, či je vybratá mierka Sales All Region a v riadku vzorcov nahraďte názov mierky a vzorec týmto vzorcom:

    Tip

    Ak chcete nahradiť existujúci vzorec, najskôr skopírujte úryvok kódu. Potom kliknite na riadok vzorcov a stlačením klávesov CTRL + A vyberte celý text. Potom stlačením klávesu CTRL + V prilepte úryvok kódu, ktorý prepíše vybratý text. Potom stlačte kláves Enter.

    Sales % All Region =
    DIVIDE(
       SUM(Sales[Sales]),
       CALCULATE(
            SUM(Sales[Sales]),
            REMOVEFILTERS(Region)
       )
    )
    

    Mierka bola premenovaná tak, aby presne zodpovedala aktualizovanému vzorcu. Funkcia DIVIDE() rozdelí mierku Sales (ktorá nie je upravená kontextom filtra) mierkou Sales v upravenom kontexte, ktorý odstráni všetky filtre, ktoré sa použili v tabuľke Region.

  7. Vo vizuáli matice si všimnite, že mierka bola premenovaná a že sa teraz zobrazujú rôzne hodnoty pre každú skupinu, krajinu a oblasť.

  8. Naformátuje mierku Sales % All Region ako percentuálnu hodnotu s dvomi desatinnými miestami.

    Snímka obrazovky znázorňujúca spôsob zmeny mierky na percentuálnu hodnotu.

  9. Vo vizuáli matice obnovte hodnoty mierky Sales % All Region.

    Snímka obrazovky s hodnotami mierky Sales % All Region.

  10. Pridajte ďalšiu mierku do tabuľky Sales na základe nasledujúceho výrazu a naformátujte ho ako percento:

    Sales % Country =
    DIVIDE(
       SUM(Sales[Sales]),
       CALCULATE(
           SUM(Sales[Sales]),
           REMOVEFILTERS(Region[Region])
       )
    )
    
  11. Všimnite si, že vzorec mierky Sales % Country sa mierne líši od vzorca mierky Sales % All Region.

    Rozdiel je v tom, že menovateľ upraví kontext filtra odstránením filtrov v stĺpci Region v tabuľke Region , nie však všetky stĺpce tabuľky Region . Znamená to, že všetky filtre použité pre stĺpce skupiny alebo krajiny sa zachovajú. Dosiahne sa tým výsledok, ktorý predstavuje predaj ako percentuálnu hodnotu predaja krajiny.

  12. Pridajte mierku Sales % Country do vizuálu matice.

  13. Všimnite si, že iba oblasť Spojené štáty vytvorí hodnotu, ktorá nie je 100 %.

    Snímka obrazovky overujúca, že Spojené štáty nerovná sa 100 %.

    Pripomeňme si, že iba Spojené štáty majú viacero oblastí. Všetky ostatné krajiny majú jednu oblasť, vďaka čomu všetky dosahujú 100 %.

  14. Na zlepšenie čitateľnosti tejto mierky vo vizuále prepíšte mierku Sales % Country s týmto vylepšeným vzorcom.

    Sales % Country =
    IF(
        ISINSCOPE(Region[Region]),
        DIVIDE(
            SUM(Sales[Sales]),
            CALCULATE(
                SUM(Sales[Sales]),
                REMOVEFILTERS(Region[Region]
            )
        ) 
    )
    

    Funkcia ISINSCOPE(), ktorá je vložená do funkcie IF(), sa používa na testovanie toho, či stĺpec oblasti predstavuje úroveň v hierarchii. Ak je hodnota TRUE, vyhodnotí sa funkcia DIVIDE(). Absencia falošnej časti znamená, že ak stĺpec oblasti nespadá do požadovaného rozsahu, vráti sa prázdna hodnota.

  15. Všimnite si, že mierka Sales % Country teraz vracia hodnotu len v prípade, ak je oblasť v určenom rozsahu.

    Snímka obrazovky s hodnotou Sales % Country vrátenou, keď je oblasť v rozsahu.

  16. Pridajte ďalšiu mierku do tabuľky Sales na základe nasledujúceho výrazu a naformátujte ho ako percento:

    Sales % Group =
    DIVIDE(
        SUM(Sales[Sales]),
        CALCULATE(
             SUM(Sales[Sales]),
             REMOVEFILTERS(
                 Region[Region],
                 Region[Country]
             )
        )
    )
    

    Ak chcete dosiahnuť predaj ako percento skupiny, môžete použiť dva filtre na efektívne odstránenie filtrov v dvoch stĺpcoch.

  17. Do vizuálu matice pridajte mierku Sales % Country.

  18. Na zlepšenie čitateľnosti tejto mierky vo vizuále prepíšte mierku Sales % Group s týmto vylepšeným vzorcom.

    Sales % Group =
    IF(
        ISINSCOPE(Region[Region])
             || ISINSCOPE(Region[Country]),
        DIVIDE(
            SUM(Sales[Sales]),
            CALCULATE(
                SUM(Sales[Sales]),
                REMOVEFILTERS(
                     Region[Region],
                     Region[Country]
                )
            )
        )
    )
    
  19. Všimnite si, že mierka Sales % Group teraz vracia hodnotu len v prípade, ak je oblasť v určenom rozsahu.

  20. Do zobrazenia Model umiestnite tri nové mierky do zobrazovaného priečinka s názvom Ratios.

    Snímka obrazovky priečinka pomerov.

  21. Uložte súbor aplikácie Power BI Desktop.

    Mierky pridané do tabuľky Sales upravili kontext filtra tak, aby sa dosiahla hierarchická navigácia. Všimnite si, že vzor na výpočet medzisúčtu sa vyžaduje odstránenie niektorých stĺpcov z kontextu filtra a na dosiahnutie celkového súčtu musia byť odstránené všetky stĺpce.

Cvičenie č. 2: Práca s časovou inteligenciou

V tomto cvičení vytvoríte mierku rastu predaja YTD (od začiatku roka k danému dátumu) a YoY (rok za rokom).

Úloha 1: Vytvorenie mierky YTD

V tejto úlohe vytvoríte mierku predaja YTD (od začiatku roka k danému dátumu)

  1. V zobrazení zostavy na strane 2 si všimnite vizuál matice, ktorý zobrazuje rôzne mierky s rokmi a mesiacmi zoskupenými v riadkoch.

  2. Pridajte ďalšiu mierku do tabuľky Sales na základe nasledujúceho výrazu a naformátujte ho ako percento vyjadrené desatinným číslom:

    Sales YTD =  
    TOTALYTD(SUM(Sales[Sales]), 'Date'[Date], "6-30")
    

    Funkcia TOTALYTD() vyhodnotí výraz – v tomto prípade súčet hodnôt stĺpca Sales – vzhľadom na stĺpec s daným dátumom. Stĺpec dátumov musí patriť k tabuľke dátumov označenej ako Tabuľka dátumov. Funkcia môže tiež prijať tretí voliteľný argument predstavujúci posledný dátum roka. Absencia tohto dátumu znamená, že ako posledný dátum roka sa určí 31. december. V spoločnosti Adventure Works je posledným mesiacom ich roka jún, preto sa použije dátum 6-30.

  3. Pridajte pole Sales a mierku Sales YTD do vizuálu matice.

  4. Všimnite si akumuláciu hodnôt predaja v rámci roka.

    Snímka obrazovky znázorňujúca akumuláciu hodnôt predaja.

    Funkcia TOTALYTD() manipuluje s filtrom, konkrétne s filtrom času. Ak chcete napríklad vypočítať tržby od začiatku roka pre september 2017 (tretí mesiac fiškálneho roka), všetky filtre v tabuľke Date sa odstránia a nahradia novým filtrom dátumov začínajúcim na začiatku roka (1. júla 2017) a predĺžením až do posledného dátumu v období pre daný kontext (30. september 2017).

    Poznámka

    V jazyku DAX sú k dispozícii mnohé funkcie časovej inteligencie, ktoré podporujú manipuláciu s filtrom času.

Úloha 2: Vytvorenie mierky rastu YoY

V tejto úlohe vytvoríte mierku rastu YoY.

  1. Pridajte ďalšiu mierku do tabuľky Sales na základe nasledujúceho výrazu:

    Sales YoY Growth =
    VAR SalesPriorYear =
        CALCULATE(
            SUM(Sales[Sales]),
            PARALLELPERIOD(
                'Date'[Date],
                -12,
             MONTH
            )
        )
    RETURN
        SalesPriorYear
    

    Vzorec mierky Sales YoY Growth deklaruje premennú. Premenné môžu byť užitočné na zjednodušenie logiky vzorca a efektívnejšie, keď sa výraz musí vo vzorci vyhodnotiť viackrát (čo platí v prípade logiky rastu YoY). Premenné sú deklarované jedinečným názvom a výraz mierky musí byť výstupom po kľúčovom slove RETURN.

    Premenná SalesPriorYear je priradená k výrazu, ktorý vypočíta súčet stĺpca Sales v upravenom kontexte používajúcom funkciu PARALLELPERIOD() na posun o 12 mesiacov späť z každého dátumu vo filtri.

  2. Do vizuálu matice pridajte mierku Sales YoY Growth.

  3. Všimnite si, že nová mierka vráti prázdnu hodnotu pre prvých 12 mesiacov (ak sa pred fiškálnym rokom 2017 nezaznamenali žiadne predaje).

  4. Všimnite si, že hodnota mierky Sales YoY Growth pre dátum 2017 Jul je hodnotou v predaji pre dátum 2018 Jul.

    Snímka obrazovky znázorňuje hodnoty Sales YoY Growth pre júl 2017 a január 2016 v oblasti Predaja.

    Teraz, keď bola otestovaná zložitá časť vzorca, môžete túto mierku prepísať konečným vzorcom, ktorý vypočíta výsledok rastu.

  5. Ak chcete dokončiť mierku, prepíšte mierku Sales YoY Growth týmto vzorcom a naformátujte ho ako percento s dvomi desatinnými miestami:

    Sales YoY Growth =
    VAR SalesPriorYear =
        CALCULATE(
              SUM(Sales[Sales]),
              PARALLELPERIOD(
              'Date'[Date],
              -12,
              MONTH
            )
    )
    RETURN
       DIVIDE(
           (SUM(Sales[Sales]) - SalesPriorYear),
           SalesPriorYear
       )
    
  6. Vo vzorci v klauzule RETURN si všimnite, že na premennú odkazuje dvakrát.

  7. Overte, či rast medziročnej zmeny YoY pre dátum 2018 Jul vykazuje hodnotu 392.83%.

    Snímka obrazovky s overením rastu YoY.

    To znamená, že predaj za júl 2018 ($2 411 559) predstavuje takmer 400 % zlepšenie (takmer 5-násobok) oproti predaju dosiahnutému za predchádzajúci rok ($489 328).

  8. V zobrazení Model umiestnite dve nové mierky do priečinka zobrazenia s názvom Time Intelligence (Časová inteligencia).

    Snímka obrazovky zobrazujúca priečinok s názvom Sales YoY Growth (Medzinárast predaja).

  9. Uložte súbor aplikácie Power BI Desktop.

    DAX obsahuje množstvo funkcií časovej inteligencie (Time Intelligence), ktoré zjednodušujú manipuláciu s filtrom času pre bežné podnikové scenáre. Toto cvičenie dokončí vývoj dátového modelu.

Cvičenie 3: Publikovanie súboru aplikácie Power BI Desktop

V tomto cvičení budete publikovať súbor aplikácie Power BI Desktop v službe Power BI.

Poznámka

V nasledujúcom cvičení sa bude vyžadovať prihlásenie do služby Power BI. Môžete použiť svoje existujúce konto alebo predtým, ako začnete s touto časťou cvičenia, si vytvorte konto pre skúšobnú verziu.

Úloha 1: Publikovať model

V tejto úlohe budete publikovať súbor aplikácie Power BI Desktop v službe Power BI.

  1. Uložte súbor aplikácie Power BI Desktop.

  2. Ak chcete publikovať súbor, na karte Domov na páse s nástrojmi v skupine Zdieľať kliknite na položku Publikovať.

  3. V okne Publikovať v Power BI vyberte pracovný priestor Analýza predaja.

    Snímka obrazovky pracovného priestoru Sales Analysis (Analýza predaja), v ktorý sa má publikovať.

  4. Kliknite na položku Vybrať.

  5. Po úspešnom publikovaní súboru kliknite na položku Hotovo.

  6. Zatvorte aplikáciu Power BI Desktop.

  7. V Edgei na služba Power BI na navigačnej table (na ľavej strane) skontrolujte obsah svojho pracovného priestoru Analýza predaja.

    Snímka obrazovky obsahu pracovného priestoru Analýza predaja v službe Power BI.

    V rámci publikácie sa pridala zostava a množina údajov. Ak sa nezobrazujú, stlačením klávesu F5 znova načítajte prehliadač a potom ešte raz rozbaľte pracovný priestor.

    Dátový model sa publikovaním stal množinou údajov. Zostava – používaná na otestovanie výpočtov modelu – bola pridaná ako zostava. Táto zostava sa nevyžaduje, takže ju teraz odstráňte.

  8. Ukážte kurzorom na zostavu Analýza predaja, kliknite na zvislé tri bodky (...) a potom vyberte položku Odstrániť.

    Snímka obrazovky zobrazujúca, ako odstrániť zostavu Sales Analysis (Analýza predaja) z pracovného priestoru.

  9. Po zobrazení výzvy na potvrdenie odstránenia kliknite na položku Odstrániť.