Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Táto príručka so stručným návodom je určená pre používateľov, ktorí Power Pivot v excelových alebo tabuľkových modelových projektoch vytvorených v nástrojoch SQL Server Data Tools. Má vám poskytnúť rýchly a jednoduchý úvod o tom, ako môžete použiť jazyk DAX (Data Analysis Expressions) na riešenie mnohých základných problémov s modelovaním údajov a analytickými problémami. Táto téma obsahuje koncepčné informácie, rad úloh, ktoré môžete dokončiť, a niekoľko kvízov na otestovanie toho, čo ste sa naučili. Po dokončení tejto témy by ste mali dobre porozumieť najzákladnejším konceptom v jazyku DAX.

Čo je DAX?

DAX je kolekcia funkcií, operátorov a konštánt, ktoré možno použiť vo vzorci alebo výraze na výpočet a vrátenie jednej alebo viacerých hodnôt. Jednoducho povedané, DAX vám pomôže vytvoriť nové informácie z údajov, ktoré sa už vo vašom modeli nachádzajú.

Prečo je dax taký dôležitý?

Vytvorenie zošita a importovanie niektorých údajov do zošita je jednoduché. Môžete dokonca vytvoriť kontingenčné tabuľky alebo kontingenčné grafy, ktoré zobrazujú dôležité informácie bez použitia vzorcov DAX. Čo však v prípade, že potrebujete analyzovať dôležité údaje o predaji v rámci viacerých kategórií produktov a pre rôzne rozsahy dátumov? Alebo potrebujete skombinovať dôležité údaje inventára z viacerých tabuliek v rôznych zdrojoch údajov? Vzorce DAX poskytujú túto možnosť a mnoho ďalších dôležitých funkcií. Naučte sa vytvárať efektívne vzorce DAX, ktoré vám pomôžu naplno využiť svoje údaje. Keď získate potrebné informácie, môžete začať riešiť skutočné obchodné problémy, ktoré ovplyvňujú vaše spodnom riadku. Toto je Business Intelligence a DAX vám pomôže dostať sa tam.

Predpoklady

Možno už viete vytvárať vzorce v Microsoft Exceli. Tieto poznatky budú užitočné pri pochopení jazyka DAX, ale aj keď nemáte skúsenosti so vzorcami v Exceli, koncepty popísané v tomto článku vám pomôžu začať vytvárať vzorce DAX a okamžite riešiť reálne problémy BI.

Zameriame sa konkrétne na pochopenie vzorcov DAX používaných vo výpočtoch. Už by ste mali poznať základné pojmy vypočítaných stĺpcov a mierok (známe aj ako vypočítavané polia), ktoré sú popísané v Power Pivot Pomocníkovi. Mali by ste tiež poznať Power Pivot v prostredí a nástrojoch na tvorbu v Exceli.

Ukážka zošita

Najlepší spôsob, ako sa naučiť jazyk DAX, je vytvoriť niektoré základné vzorce, použiť ich so skutočnými údajmi a zobraziť výsledky pre seba. V týchto príkladoch a úlohách sa používa vzorový zošit JAZYKA DAX Contoso Formulas.xlsx. Zošit si môžete stiahnuť z http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Po stiahnutí zošita do počítača ho otvorte a potom otvorte okno Power Pivot.

Začíname!

Jazyk DAX bude rámovať okolo troch veľmi dôležitých základných konceptov: syntax, funkcie a kontext. Samozrejme, v jazyku DAX existujú aj iné dôležité pojmy, ale pochopenie týchto troch konceptov poskytne najlepší základ na vybudovanie zručností v jazyku DAX.

Syntax

Skôr než vytvoríte vlastné vzorce, pozrime sa na syntax vzorcov DAX. Syntax obsahuje rôzne prvky, ktoré tvoria vzorec, alebo jednoduchší spôsob zápisu vzorca. Pozrime sa napríklad na jednoduchý vzorec DAX, ktorý sa používa na vytvorenie nových údajov (hodnôt) pre každý riadok vo vypočítanom stĺpci s názvom Okraj v tabuľke FactSales: (farby textu vzorca sú určené len na ilustračné účely)

Vzorec vypočítaného stĺpca

Syntax tohto vzorca obsahuje nasledujúce prvky:

  1. Operátor znamienka rovnosti (=) označuje začiatok vzorca a pri výpočte tohto vzorca vráti výsledok alebo hodnotu. Všetky vzorce, ktoré vypočítajú hodnotu, sa začnú znamienkom rovnosti.

  2. Odkazovaný stĺpec [ObjemPredaja] obsahuje hodnoty, od ktoré chceme odčítať. Odkaz na stĺpec vo vzorci je vždy ohraničený zátvorkami []. Na rozdiel od excelových vzorcov, ktoré odkazujú na bunku, vzorec DAX vždy odkazuje na stĺpec.

  3. Matematický operátor odčítania (-).

  4. Odkazovaný stĺpec [TotalCost] obsahuje hodnoty, ktoré chceme odčítať od hodnôt v stĺpci [ObjemPredaja].

Keď sa snažíte pochopiť, ako čítať vzorec DAX, často je užitočné rozdeliť jednotlivé prvky na jazyk, ktorý si myslíte a hovoríte každý deň. Tento vzorec môžete napríklad prečítať ako:

V tabuľke FactSales pre každý riadok vo vypočítanom stĺpci Marža vypočíta hodnotu (=) odčítaním (-) hodnôt v stĺpci [TotalCost] od hodnôt vstĺpci [ObjemPredaja].

Pozrime sa na iný typ vzorca, ktorý sa používa v mierke:

Vzorec vypočítaného stĺpca

Tento vzorec obsahuje nasledujúce prvky syntaxe:

  1. Názov mierky Súčet čiastky predaja. Vzorce pre mierky môžu obsahovať názov mierky, za ktorým nasleduje dvojbodka a vzorec výpočtu.

  2. Operátor znaku rovnosti (=) označuje začiatok vzorca výpočtu. Pri výpočte vráti výsledok.

  3. Funkcia SUM sčíta všetky čísla v stĺpci [ObjemPredaja]. Ďalšie informácie o funkciách získate neskôr.

  4. Zátvorky () ohraničujú jeden alebo viacero argumentov. Všetky funkcie vyžadujú aspoň jeden argument. Argument odovzdá hodnotu funkcii.

  5. Odkazovaná tabuľka FactSales.

  6. Odkazovaný stĺpec [ObjemPredaja] v tabuľke FactSales. Pomocou tohto argumentu funkcia SUM vie, v ktorom stĺpci sa má agregovať funkcia SUM.

Tento vzorec si môžete prečítať ako:

Pre mierku s názvom Sum of Sales Amount (Suma predaja) vypočíta (=) súčet hodnôt v stĺpci [SalesAmount] (ObjemPredaja) v tabuľke FactSales (PredajPredaja).

Po umiestnení do zóny pustenia hodnôt v zozname polí kontingenčnej tabuľky táto mierka vypočíta a vráti hodnoty definované každou bunkou kontingenčnej tabuľky, napríklad Bunkové telefóny v USA.

Všimnite si, že v porovnaní so vzorcom, ktorý sme použili vo vypočítanom stĺpci Marža, sa v tomto vzorci líši niekoľko vecí. Predstavili sme najmä funkciu SUM. Funkcie sú vopred napísané vzorce, ktoré uľahčujú zložité výpočty a manipulácie s číslami, dátumami, časom, textom atď. Ďalšie informácie o funkciách získate neskôr.

Na rozdiel od vyššie vypočítaného stĺpca Marža vidíte, že stĺpcu [ObjemPredaja] predchádza tabuľka FactSales, do ktorej stĺpec patrí. Tento názov sa označuje ako úplný názov stĺpca v tom, že obsahuje názov stĺpca, ktorému predchádza názov tabuľky. Stĺpce, na ktoré sa odkazuje v tej istej tabuľke, nevyžadujú zahrnutie názvu tabuľky do vzorca. Dlhé vzorce odkazujúce na mnohé stĺpce tak môžu byť kratšie a čitateľnejšie. Je však vhodné vždy zahrnúť názov tabuľky do vzorcov mierky, aj keď sú v tej istej tabuľke.

Poznámka: Ak názov tabuľky obsahuje medzery, vyhradené kľúčové slová alebo nepovolené znaky, musíte názov tabuľky uzavrieť do jednoduchých úvodzoviek. Názvy tabuliek je potrebné uviesť aj v úvodzovkách, ak názov obsahuje znaky mimo rozsahu alfanumerických znakov ANSI bez ohľadu na to, či vaše miestne nastavenie podporuje tabuľku znakov alebo nie.

Je veľmi dôležité, aby vzorce mali správnu syntax. Vo väčšine prípadov, ak syntax nie je správna, vráti sa syntaktická chyba. V iných prípadoch môže byť syntax správna, ale vrátené hodnoty nemusia byť to, čo očakávate. Power Pivot (a SQL Server Nástroje pre údaje) obsahuje funkciu IntelliSense, čo je funkcia, ktorá sa používa na vytvorenie syntakticky správnych vzorcov, ktoré vám pomôžu vybrať správne prvky.

Poďme vytvoriť jednoduchý vzorec. Táto úloha vám pomôže lepšie pochopiť syntax vzorca a spôsob, akým vám môže pomôcť funkcia IntelliSense v riadku vzorcov.

Úloha: Vytvorenie jednoduchého vzorca pre vypočítavaný stĺpec

  1. Ak sa ešte nenachádzate v okne Power Pivot, v Exceli na páse s nástrojmi Power Pivot kliknite na položku Power Pivot okno.

  2. V okne Power Pivot kliknite na tabuľku FactSales (karta).

  3. Posuňte sa na stĺpec, ktorý je najviac vpravo, a potom v hlavičke stĺpca kliknite na položku Pridať stĺpec.

  4. Kliknite na riadok vzorcov v hornej časti okna návrhára modelu.

    Riadok vzorcov v doplnku PowerPivot

    Kurzor sa teraz zobrazí v riadku vzorcov. Riadok vzorcov je miesto, kde môžete zadať vzorec pre vypočítavaný stĺpec alebo vypočítavané pole.

    Pozrime sa na tri tlačidlá naľavo od riadka vzorcov.

    Formula bar

    Keď je kurzor aktívny v riadku vzorcov, tieto tri tlačidlá sa stanú aktívnymi. Tlačidlo X úplne vľavo je jednoducho tlačidlo zrušiť. Pokračujte a kliknite naň. Kurzor sa už nezobrazuje v riadku vzorcov a tlačidlo Zrušiť a tlačidlo znaku začiarknutia sa už nezobrazujú. Pokračujte a znova kliknite do riadka vzorcov. Tlačidlo Zrušiť a tlačidlo začiarknutia sa teraz znova zobrazia. Znamená to, že ste pripravení začať zadávať vzorec.

    Tlačidlo znaku začiarknutia je tlačidlo vzorca začiarknutia. Kým nezadáte vzorec, nebude toho robiť veľa. O chvíľu sa k tomu vrátime.

    Kliknite na tlačidlo Fx . Zobrazí sa nové dialógové okno. dialógové okno Vloženie funkcie. Dialógové okno Vložiť funkciu predstavuje najjednoduchší spôsob, ako začať zadávať vzorec DAX. Keď vytvoríme mierku o niečo neskôr, do vzorca pridáme funkciu, ale zatiaľ nemusíte do vzorca vypočítaného stĺpca pridávať funkciu. Pokračujte a zavrite dialógové okno Vloženie funkcie.

  5. Do riadka vzorcov zadajte znamienko rovnosti =, potom zadajte ľavú hranatú zátvorku [. Zobrazí sa malé okno so všetkými stĺpcami v tabuľke FactSales. Toto je intelliSense v akcii.

    Keďže vypočítané stĺpce sa vždy vytvárajú v aktívnej tabuľke, v akej sa nachádzate, nie je potrebné pred názov stĺpca zadať názov tabuľky. Pokračujte a posuňte sa nadol a potom dvakrát kliknite na položku [SalesQuantity]. Môžete sa tiež posunúť na požadovaný názov stĺpca a potom stlačiť kláves Tab.

    Kurzor je teraz aktívny napravo od poľa [SalesQuantity].

  6. Zadajte medzeru a potom zadajte operátor odčítania – (znamienko mínus) a potom zadajte ďalšiu medzeru.

  7. Teraz zadajte ďalšiu ľavú hranatú zátvorku [. Tentoraz vyberte stĺpec [ReturnQuantity] a potom stlačte kláves Enter.

    Ak sa zobrazí chyba, pozorne si pozrite syntax. V prípade potreby ho porovnajte so vzorcom vo vypočítanom stĺpci Margin (Marža), ktorý je popísaný vyššie.

    Po stlačení klávesu Enter na dokončenie vzorca sa slovo Vypočítavanie zobrazí v stavovom riadku v dolnej časti okna Power Pivot. Ide to rýchlo, aj keď ste práve vypočítali nové hodnoty pre viac ako tri milióny riadkov.

  8. Kliknite pravým tlačidlom myši na hlavičku stĺpca a premenujte stĺpec NetSales.

To je všetko! Práve ste vytvorili jednoduchý, ale veľmi výkonný vzorec DAX. Pre každý riadok v tabuľke FactSales vzorec NetSales vypočíta hodnotu odčítaním hodnoty v stĺpci [ReturnQuantity] od hodnoty v stĺpci [SalesQuantity]. Všimnite si, ako sme práve povedali "Pre každý riadok". Toto je pohľad na ďalší veľmi dôležitý koncept v jazyku DAX. kontext riadka. Ďalšie informácie o kontexte riadka získate neskôr.

Pri zadávaní operátora do vzorca DAX je typom údajov v argumentoch, ktoré používate, veľmi dôležité pochopiť. Ak by ste napríklad zadali nasledujúci vzorec = 1 & 2, vrátená hodnota by bola textová hodnota "12". Dôvodom je, že operátor ampersand (&) je určený na zreťazenie textu. DAX interpretuje tento vzorec na čítanie: Vypočíta výsledok tak, že hodnotu 1 vezme ako text a pridá hodnotu 2 ako text. Teraz, ak by ste mali zadať = 1 + 2, DAX prečíta tento vzorec ako: Vypočíta výsledok tak, že vezme číselnú hodnotu 1 a pridá číselnú hodnotu 2. Výsledok je samozrejme "3", číselná hodnota. Jazyk DAX vypočíta výsledné hodnoty v závislosti od operátora vo vzorci, nie na základe typu údajov stĺpcov použitých v argumente. Typy údajov v jazyku DAX sú veľmi dôležité, ale mimo rozsahu tejto príručky so stručným návodom. Ďalšie informácie o typoch údajov a operátoroch vo vzorcoch DAX nájdete v téme Referenčné informácie o jazyku DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) v službe Books Online.

Skúsme iný. Tentoraz vytvoríte mierku zadaním vzorca a použitím funkcie IntelliSense. Ak úplne nerozumiete vzorcu, nemusíte sa príliš obávať. Dôležité je naučiť sa vytvoriť vzorec pomocou viacerých prvkov v správnej syntaxi.

Úloha: Vytvorenie vzorca mierky

  1. V tabuľke FactSales kliknite na ľubovoľnú prázdnu bunku v oblasti výpočtov. Toto je oblasť prázdnych buniek hneď pod tabuľkou v okne Power Pivot.

Oblasť výpočtov v doplnku PowerPivot

  1. Do riadka vzorcov zadajte názov Predaj za predchádzajúci štvrťrok:.

  2. Zadajte znamienko rovnosti = a začnite vzorec výpočtu.

  3. Zadajte niekoľko prvých písmen CAL a potom dvakrát kliknite na funkciu, ktorú chcete použiť. V tomto vzorci chcete použiť funkciu CALCULATE .

  4. Zadajte ľavú zátvorku ( ak chcete začať argumenty, ktoré sa majú odovzdať funkcii CALCULATE.

    Po zadaní pôvodnej zátvorky funkcia IntelliSense zobrazí argumenty potrebné pre funkciu CALCULATE. O argumentoch sa dozviete trochu.

  5. Zadajte niekoľko prvých písmen tabuľky FactSales a potom v rozbaľovacom zozname dvakrát kliknite na položku FactSales[Sales].

  6. Ak chcete zadať prvý filter, zadajte čiarku (,), potom zadajte hodnotu PRE a potom dvakrát kliknite na funkciu PREVIOUSQUARTER .

    Po výbere funkcie PREVIOUSQUARTER sa zobrazí iná ľavá zátvorka, ktorá označuje, že sa vyžaduje iný argument. tentoraz pre funkciu PREVIOUSQUARTER.

  7. Zadajte niekoľko prvých písmen – neaktívne a potom dvakrát kliknite na položku DimDate[FormátDátumu].

  8. Zavrite obidva argumenty odovzdávané funkcii PREVIOUSQUARTER a funkcii CALCULATE zadaním dvoch záverečnej zátvorky )).

    Vzorec by teraz mal vyzerať takto:

    Predaj za predchádzajúci štvrťrok:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[FormátDátumu]))

  9. Kliknutím na tlačidlo skontrolovať vzorec v riadku vzorcov overte vzorec. Ak sa zobrazí chyba, overte každý prvok syntaxe.

Urobil si to! Práve ste vytvorili mierku pomocou jazyka DAX a nie jednoduchú. Tento vzorec vypočíta celkový predaj za predchádzajúci štvrťrok v závislosti od filtrov použitých v kontingenčnej tabuľke alebo kontingenčnom grafe.

Práve ste sa zoznámili s niekoľkými dôležitými aspektmi vzorcov DAX. Po prvé, tento vzorec obsahoval dve funkcie. Všimnite si, že funkcia PREVIOUSQUARTER je vnorená ako argument odovzdaný funkcii CALCULATE . Vzorce DAX môžu obsahovať až 64 vnorených funkcií. Je nepravdepodobné, že by vzorec niekedy obsahoval toľko vnorených funkcií. V skutočnosti, takýto vzorec by bolo veľmi ťažké vytvoriť a ladiť, a to asi nebude veľmi rýchly jeden.

V tomto vzorci ste použili aj filtre. Filtre zúžia počet vypočítaných hodnôt. V tomto prípade ste vybrali jeden filter ako argument, čo je vlastne iná funkcia. Ďalšie informácie o filtroch získate neskôr.

Nakoniec ste použili funkciu CALCULATE. Toto je jedna z najúčinnejších funkcií v jazyku DAX. Keď vytvárate dátové modely a vytvárate zložitejšie vzorce, pravdepodobne túto funkciu budete používať mnohokrát. Diskusia o funkcii CALCULATE je mimo rozsahu tejto príručky So stručným návodom, ale s rastom vedomostí o jazyku DAX venujte tejto funkcii osobitnú pozornosť.

Poznámka: Ak chcete vo vzorcoch DAX používať funkcie časovej inteligencie, musíte zadať jedinečný stĺpec dátumu pomocou dialógového okna Označiť ako tabuľku dátumov. V zošite Samples.xlsx vzorcov JAZYKA DAX Contoso sa ako jedinečný stĺpec dátumu vyberie stĺpec FormátDátumu v tabuľke DimDate.

Kredit navyše

Možno sa pýtate: "Aký najjednoduchší vzorec DAX môžem vytvoriť?" Odpoveď na to je "vzorec, ktorý nepotrebujete". A to je presne to, čo môžete urobiť pomocou štandardnej agregačnej funkcie v mierke. Takmer každý dátový model potrebuje filtrovať a vypočítať agregované údaje. Napríklad funkcia SUM v mierke Suma predaja, ktorú ste videli predtým, sa používa na sčítanie všetkých čísel v konkrétnom stĺpci. Jazyk DAX obsahuje aj niekoľko ďalších funkcií, ktoré agregujú hodnoty. Pomocou funkcie Automatický súčet môžete automaticky vytvárať vzorce pomocou štandardných agregácií.

Dodatočná úloha kreditu: Vytvorenie vzorca mierky pomocou funkcie Automatický súčet

  1. V tabuľke FactSales sa posuňte na stĺpec ReturnQuantity a potom kliknutím na hlavičku stĺpca vyberte celý stĺpec.

  2. Na karte Domov na páse s nástrojmi kliknite v skupine Výpočty na tlačidlo Automatický súčet .

Funkcia automatického súčtu v doplnku PowerPivot

Kliknite na šípku nadol vedľa položky Automatický súčet a potom kliknite na položku Priemer (všimnite si aj ďalšie štandardné agregačné funkcie, ktoré môžete použiť).

Okamžite sa vytvorí nová mierka s názvom Average of ReturnQuantity: nasledovaný vzorcom =AVERAGE([ReturnQuantity]).

Teraz to nebolo také jednoduché? Samozrejme, že nie všetky vzorce, ktoré vytvoríte, budú také jednoduché. Pomocou funkcie Automatický súčet však môžete vytvoriť rýchle a jednoduché vzorce pomocou štandardných výpočtov agregácie.

To by vám malo poskytnúť pomerne dobré pochopenie syntaxe používanej vo vzorcoch DAX. Zoznámili ste sa tiež s niektorými skutočne skvelými funkciami, ako sú IntelliSense a Automatický súčet, ktoré vám pomôžu vytvoriť rýchle, jednoduché a presné vzorce. O syntaxi sa samozrejme môžete dozvedieť oveľa viac. Vhodným miestom na ďalšie informácie je referenčné informácie o jazyku DAX alebo SQL Books Online.

QuickQuiz syntaxe

  1. Čo robí toto tlačidlo v riadku vzorcov?
    Tlačidlo Funkcia

  2. Čo vždy obklopuje názov stĺpca vo vzorci DAX?

  3. Ako by ste mohli napísať vzorec pre:
    V tabuľke DimProduct (DimProdukt) vypočítate pre každý riadok vo vypočítanom stĺpci UnitMargin hodnotu odčítaním hodnôt v stĺpci JednotkováCena od hodnôt v stĺpciJednotkováCena?

Odpovede nájdete na konci tejto témy.

Funkcie

Funkcie sú preddefinované vzorce, ktoré vykonávajú výpočty pomocou konkrétnych hodnôt nazývaných argumenty v určitom poradí alebo štruktúre. Argumenty môžu byť iné funkcie, iný vzorec, odkazy na stĺpce, čísla, text, logické hodnoty, ako napríklad TRUE alebo FALSE alebo konštanty.

Jazyk DAX obsahuje nasledujúce kategórie funkcií: funkcie dátumu a času, informácie, logické funkcie, matematické, štatistické funkcie, text a funkcie časovej inteligencie. Ak poznáte funkcie vo vzorcoch Excelu, mnohé funkcie v jazyku DAX sa budú zobrazovať podobne ako vy. Funkcie jazyka DAX sú však jedinečné nasledujúcimi spôsobmi:

  • Funkcia DAX vždy odkazuje na úplný stĺpec alebo tabuľku. Ak chcete použiť iba konkrétne hodnoty z tabuľky alebo stĺpca, môžete do vzorca pridať filtre.

  • Ak potrebujete prispôsobiť výpočty podľa jednotlivých riadkov, dax poskytuje funkcie, ktoré umožňujú použiť aktuálnu hodnotu riadka alebo súvisiacu hodnotu ako druh argumentu na vykonávanie výpočtov, ktoré sa líšia kontextom. Ďalšie informácie o kontexte získate neskôr.

  • Jazyk DAX obsahuje mnoho funkcií, ktoré vracajú tabuľku a nie hodnotu. Tabuľka sa nezobrazuje, ale používa sa na zadanie vstupov pre iné funkcie. Môžete napríklad načítať tabuľku a potom spočítať jedinečné hodnoty v nej alebo vypočítať dynamické súčty v rámci filtrovaných tabuliek alebo stĺpcov.

  • Jazyk DAX obsahuje rôzne funkcie časovej inteligencie. Tieto funkcie umožňujú definovať alebo vybrať rozsahy dátumov a vykonávať na nich dynamické výpočty. Môžete napríklad porovnať súčty v paralelných obdobiach.

Niekedy je ťažké zistiť, ktoré funkcie možno budete potrebovať vo vzorci. Power Pivot a návrhár tabuľkového modelu v nástrojoch SQL Server Data Tools obsahujú funkciu Vložiť funkciu, dialógové okno, ktoré vám pomôže vybrať funkcie podľa kategórie a poskytne stručné popisy jednotlivých funkcií.

Vložiť funkciu

Vytvorme nový vzorec, ktorý obsahuje funkciu, ktorú vyberiete pomocou funkcie Vložiť funkciu:

Úloha: Pridanie funkcie do vzorca pomocou funkcie Insert

  1. V tabuľke FactSales sa posuňte na stĺpec, ktorý je najviac vpravo, a potom v hlavičke stĺpca kliknite na položku Pridať stĺpec.

  2. Do riadka vzorcov zadajte znamienko rovnosti =.

  3. Kliknite na tlačidlo Vložiť funkciu . Vložiť funkciu Otvorí sa dialógové okno Vloženie funkcie .

  4. V dialógovom okne Vloženie funkcie kliknite na zoznam Vybrať kategóriu . Predvolene je vybratá možnosť Všetko a všetky funkcie v kategórii Všetky sú uvedené nižšie. To je veľa funkcií, takže budete chcieť filtrovať funkcie, aby bolo jednoduchšie nájsť typ funkcie, ktorú hľadáte.

  5. Pre tento vzorec chcete vrátiť niektoré údaje, ktoré už existujú v inej tabuľke. Na to budete používať funkciu v kategórii Filter. Pokračujte a kliknite na kategóriu Filter a potom v časti Výber funkcie sa posuňte nadol a dvakrát kliknite na funkciu RELATED. Kliknutím na tlačidlo OK zatvoríte dialógové okno Vloženie funkcie.

  6. Pomocou funkcie IntelliSense môžete vyhľadať a vybrať stĺpec DimChannel[ChannelName].

  7. Zavrite vzorec a stlačte kláves Enter.

  8. Po stlačení klávesu Enter na dokončenie vzorca sa slovo Vypočítavanie zobrazí v stavovom riadku v dolnej časti okna Power Pivot. Teraz uvidíte, že ste práve vytvorili nový stĺpec v tabuľke FactSales s informáciami kanála z tabuľky DimChannel.

  9. Premenujte stĺpec Kanál.

    Vzorec by mal vyzerať takto: =RELATED(DimChannel[ChannelName])

Práve ste sa zoznámili s ďalšou veľmi dôležitou funkciou v jazyku DAX, funkciou RELATED . Funkcia RELATED vráti hodnoty z inej tabuľky. Funkciu RELATED môžete použiť za predpokladu, že existuje vzťah medzi tabuľkou, v ktorom sa práve nachádzate, a tabuľkou obsahujúcou hodnoty, ktoré chcete získať. Samozrejme, že funkcia RELATED má obrovské možnosti. V tomto prípade teraz môžete do tabuľky FactSales zahrnúť predajný kanál pre každý predaj. Tabuľku DimChannel teraz môžete skryť v zozname polí kontingenčnej tabuľky, vďaka čomu sa môžete jednoduchšie pohybovať a zobraziť len tie najdôležitejšie informácie, ktoré naozaj potrebujete. Podobne ako predtým popísaná funkcia CALCULATE, aj funkcia RELATED je veľmi dôležitá a pravdepodobne ju budete používať mnohokrát.

Ako vidíte, funkcie v jazyku DAX vám môžu pomôcť vytvoriť veľmi výkonné vzorce. Naozaj sme sa dotkli len základov funkcií. S vylepšením zručností v jazyku DAX budete vytvárať vzorce pomocou mnohých rôznych funkcií. Jedným z najlepších miest, kde sa môžete dozvedieť podrobnosti o všetkých funkciách jazyka DAX, je odkaz na jazyk DAX (Data Analysis Expressions).

Rýchle kvízy o funkciách

  1. Na čo funkcia vždy odkazuje?

  2. Môže vzorec obsahovať viac ako jednu funkciu?

  3. Akú kategóriu funkcií by ste použili na zreťazenie dvoch textových reťazcov do jedného reťazca?

Odpovede nájdete na konci tejto témy.

Kontext

Kontext je jedným z najdôležitejších konceptov jazyka DAX, ktorý je potrebné pochopiť. V jazyku DAX existujú dva typy kontextu. kontext riadka a kontext filtra. Najprv sa pozrieme na kontext riadka.

Kontext riadka

Kontext riadka sa najjednoduchšie považuje za aktuálny riadok. Pamätáte si napríklad vypočítaný stĺpec Margin, ktorý ste predtým videli pri učení sa o syntaxi? Vzorec =[ObjemPredaja] – [TotalCost] vypočíta hodnotu v stĺpci Marža pre každý riadok v tabuľke. Hodnoty pre každý riadok sa vypočítavajú z hodnôt v dvoch ďalších stĺpcoch, [ObjemPredaja] a [TotalCost] v tom istom riadku. Dax dokáže vypočítať hodnoty pre každý riadok v stĺpci Marža, pretože obsahuje kontext: Pre každý riadok berie hodnoty v stĺpci [TotalCost] a odčíta ich od hodnôt v stĺpci [ObjemPredaja].

Vo vybratej bunke zobrazenej nižšie bola hodnota 49,54 $ v aktuálnom riadku vypočítaná odčítaním hodnoty 51,54 $ v stĺpci [TotalCost] od hodnoty 101,08 $ v stĺpci [ObjemPredaja].

Kontext riadka v doplnku PowerPivot

Kontext riadka sa nevzťahuje len na vypočítané stĺpce. Kontext riadka sa použije vždy, keď vzorec obsahuje funkciu, ktorá používa filtre na identifikáciu jedného riadka v tabuľke. Funkcia vo svojej podstate použije kontext riadka pre každý riadok tabuľky, pre ktorú sa filtruje. Tento typ kontextu riadka sa najčastejšie vzťahuje na mierky.

Kontext filtra

Kontext filtra je trochu ťažšie pochopiteľný ako kontext riadka. Kontext filtra si môžete najjednoduchšie predstaviť ako: jeden alebo viacero filtrov použitých vo výpočte, ktorý určuje výsledok alebo hodnotu.

Kontext filtra neexistuje namiesto kontextu riadka. namiesto toho sa použije okrem kontextu riadka. Ak chcete napríklad ďalej zúžiť hodnoty, ktoré sa majú zahrnúť do výpočtu, môžete použiť kontext filtra, ktorý nielen určuje kontext riadka, ale tiež určuje iba konkrétnu hodnotu (filter) v tomto kontexte riadka.

Kontext filtra sa jednoducho zobrazuje v kontingenčných tabuľkách. Ak napríklad pridáte hodnotu TotalCost do oblasti Hodnoty a potom pridáte rok a oblasť do riadka alebo stĺpcov, definujete kontext filtra, ktorý vyberie podmnožinu údajov na základe daného roka a oblasti.

Prečo je kontext filtra pre jazyk DAX taký dôležitý? Keďže kontext filtra možno najjednoduchšie použiť pridaním označení stĺpcov a riadkov a rýchlych filtrov do kontingenčnej tabuľky, kontext filtra možno použiť aj vo vzorci DAX definovaním filtra pomocou funkcií ako ALL, RELATED, FILTER, CALCULATE, podľa vzťahov a iných mierok a stĺpcov. Pozrime sa napríklad na nasledujúci vzorec v mierke s názvom StoreSales:

Vzorec

Je zrejmé, že tento vzorec je zložitejší ako niektoré ostatné vzorce, ktoré ste videli. Aby sme však tomuto vzorcu lepšie porozumeli, môžeme ho rozložiť podobne ako pri iných vzorcoch.

Tento vzorec obsahuje nasledujúce prvky syntaxe:

  1. Názov mierky StoreSales, za ktorým nasleduje dvojbodka :.

  2. Operátor znaku rovnosti (=) označuje začiatok vzorca.

  3. Funkcia CALCULATE vyhodnotí výraz ako argument v kontexte upravenom zadanými filtrami.

  4. Zátvorky () ohraničujú jeden alebo viacero argumentov.

  5. Mierka [Predaj] v rovnakej tabuľke ako výraz. Mierka Predaj obsahuje vzorec: =SUM(FactSales[SalesAmount]).

  6. Každý filter sa oddeľuje čiarkou (,).

  7. Odkazovaný stĺpec a konkrétna hodnota DimChannel[ChannelName] ="Store" ako filter.

Tento vzorec zabezpečí, že iba hodnoty predaja definované mierkou Predaj ako filter sa vypočítavajú iba pre riadky v stĺpci DimChannel[NázovKanála] s hodnotou Obchod ako filtrom.

Ako si dokážete predstaviť, definovanie kontextu filtra vo vzorci má obrovské a výkonné možnosti. Možnosť odkazovať iba na konkrétnu hodnotu v súvisiacej tabuľke je len jedným z takýchto príkladov. Nemusíte sa obávať, ak úplne nerozumiete kontextu hneď. Pri vytváraní vlastných vzorcov lepšie pochopíte kontext a dôvod, prečo je v jazyku DAX taký dôležitý.

Kontextová rýchlaquiz

  1. Aké sú dva typy kontextu?

  2. Čo je kontext filtra?

  3. Čo je kontext riadka?

Odpovede nájdete na konci tejto témy.

Súhrn

Teraz, keď máte základné znalosti o najdôležitejších pojmoch v jazyku DAX, môžete začať vytvárať vzorce DAX pre vypočítané stĺpce a mierky sami. Dax môže byť naozaj trochu zložité sa učiť, ale existuje veľa zdrojov k dispozícii. Po niekoľkých prečítaní tejto témy a experimentovaní s niekoľkými vlastnými vzorcami sa môžete dozvedieť viac o ďalších konceptoch a vzorcoch jazyka DAX, ktoré vám pomôžu vyriešiť vlastné obchodné problémy. V pomocníkovi Power Pivot, SQL Server knihy online, technická dokumentácia a blogy od spoločnosti Microsoft aj popredných odborníkov v oblasti BI máte k dispozícii mnoho zdrojov informácií jazyka DAX. Wiki (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) centra zdrojov DAX je skvelým miestom, kde začať. Referenčné informácie k jazyku DAX (Data Analysis Expressions) sú tiež skvelým zdrojom informácií. Nezabudnite ho uložiť medzi obľúbené položky.

Technická dokumentácia k jazyku DAX v tabuľkovom modeli BI, ktorá je k dispozícii na stiahnutie (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409), poskytuje podrobnejší pohľad na koncepty, ktoré sú tu zavedené, ako aj na mnohé ďalšie pokročilé koncepty a vzorce. V tejto technickej dokumentácii sa používa aj rovnaký vzorový Formulas.xlsx zošita jazyka DAX Contoso, ktorý už máte.

QuickQuiz Answers

Syntax:

  1. Otvorí funkciu Vložiť funkciu.

  2. Zátvorky [].

  3. =[JednotkováCena] - [JednotkováCena]

Funkcie:

  1. Tabuľka a stĺpec.

  2. Áno. Vzorec môže obsahovať až 64 vnorených funkcií.

  3. Textové funkcie.

Kontexte:

  1. Kontext riadka a kontext filtra.

  2. Jeden alebo viacero filtrov vo výpočte, ktorý určuje jednu hodnotu.

  3. Aktuálny riadok.

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×