Jazyk DAX (Data Analysis Expressions) v doplnku Power Pivot
Applies ToExcel pre Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016 Excel 2013

Jazyk DAX (Data Analysis Expressions) spočiatku znie trochu zastrašujúc, ale nenechajte sa oklamať menom. Základy jazyka DAX sú veľmi ľahko pochopiteľné. Najskôr to najdôležitejšie – DAX nie je programovací jazyk. DAX je jazyk vzorcov. Jazyk DAX môžete použiť na definovanie vlastných výpočtov pre vypočítavané stĺpce a mierky(známe aj ako vypočítavané polia). Jazyk DAX obsahuje niektoré funkcie používané vo vzorcoch Excelu a ďalšie funkcie navrhnuté na prácu s relačnými údajmi a vykonávanie dynamickej agregácie.

Vysvetlenie vzorcov DAX

Vzorce DAX sú veľmi podobné excelovým vzorcom. Ak chcete vytvoriť znamienko rovnosti, za ním názov funkcie alebo výraz a všetky požadované hodnoty alebo argumenty. Podobne ako v Exceli, aj DAX poskytuje širokú škálu funkcií, ktoré môžete použiť na prácu s reťazcami, vykonávanie výpočtov pomocou dátumov a časov alebo vytváranie podmienených hodnôt.

Vzorce DAX sa však líšia nasledujúcimi dôležitými spôsobmi:

  • Ak chcete prispôsobiť výpočty podľa jednotlivých riadkov, jazyk DAX obsahuje funkcie, ktoré umožňujú použiť aktuálnu hodnotu riadka alebo súvisiacu hodnotu na vykonávanie výpočtov, ktoré sa líšia podľa kontextu.

  • Dax obsahuje typ funkcie, ktorá vráti tabuľku ako výsledok, a nie jednu hodnotu. Tieto funkcie možno použiť na zadanie vstupov pre iné funkcie.

  • Funkcie časovej inteligencie v jazyku DAX umožňujú výpočty pomocou rozsahov dátumov a porovnávajú výsledky v paralelných obdobiach.

Kde sa používajú vzorce DAX

Vzorce môžete vytvárať v Power Pivot vo vypočítanýchstĺpcoch alebo vo vypočítanýchieldoch.

Vypočítané stĺpce

Vypočítaný stĺpec je stĺpec, ktorý pridáte do existujúcej Power Pivot tabuľky. Namiesto prilepenia alebo importovania hodnôt do stĺpca vytvoríte vzorec DAX, ktorý definuje hodnoty stĺpca. Ak do kontingenčnej tabuľky (alebo kontingenčného grafu) zahrniete Power Pivot tabuľku, vypočítaný stĺpec možno použiť rovnako ako akýkoľvek iný údajový stĺpec.

Vzorce vo vypočítaných stĺpcoch sú podobné vzorcom, ktoré vytvoríte v Exceli. Na rozdiel od Excelu však nemôžete vytvoriť iný vzorec pre rôzne riadky v tabuľke. Namiesto toho sa vzorec DAX automaticky použije na celý stĺpec.

Ak stĺpec obsahuje vzorec, hodnota sa vypočíta pre každý riadok. Výsledky sa pre stĺpec vypočítajú hneď po vytvorení vzorca. Hodnoty stĺpcov sa prepočítajú iba vtedy, ak sa obnovia základné údaje alebo ak sa použije manuálne prepočítanie.

Môžete vytvoriť vypočítané stĺpce založené na mierkach a iných vypočítaných stĺpcoch. Nepoužívajte však rovnaký názov pre vypočítaný stĺpec a mierku, pretože to môže viesť k mätúcim výsledkom. Ak odkazujete na stĺpec, najlepšie je použiť úplný odkaz na stĺpec, aby sa zabránilo náhodnému vyvolaniu mierky.

Podrobnejšie informácie nájdete v téme Vypočítané stĺpce v doplnku Power Pivot.

Opatrenia

Mierka je vzorec vytvorený špeciálne na použitie v kontingenčnej tabuľke (alebo kontingenčnom grafe), ktorý používa Power Pivot údaje. Mierky môžu byť založené na štandardných agregačných funkciách, ako napríklad COUNT alebo SUM, alebo môžete definovať vlastný vzorec pomocou jazyka DAX. Mierka sa používa v oblasti Hodnoty kontingenčnej tabuľky. Ak chcete vypočítané výsledky umiestniť do inej oblasti kontingenčnej tabuľky, použite namiesto toho vypočítavaný stĺpec.

Keď definujete vzorec pre explicitnú mierku, nič sa nestane, kým nepridáte mierku do kontingenčnej tabuľky. Po pridaní mierky sa vzorec vyhodnotí pre každú bunku v oblasti Hodnoty kontingenčnej tabuľky. Keďže sa vytvorí výsledok pre každú kombináciu hlavičiek riadkov a stĺpcov, výsledok mierky sa môže v každej bunke líšiť.

Definícia mierky, ktorú vytvoríte, sa uloží spolu s tabuľkou zdrojových údajov. Zobrazí sa v zozname polí kontingenčnej tabuľky a je k dispozícii pre všetkých používateľov zošita.

Podrobnejšie informácie nájdete v téme Miery v doplnku Power Pivot.

Vytváranie vzorcov pomocou riadka vzorcov

Power Pivot, napríklad Excel, poskytuje riadok vzorcov, ktorý zjednodušuje vytváranie a úpravu vzorcov a funkciu automatického dokončovania, aby sa minimalizovali chyby pri písaní a syntaxi.

Zadanie názvu tabuľky   Začnite písať názov tabuľky. Automatické dokončovanie vzorca poskytuje rozbaľovací zoznam obsahujúci platné názvy začínajúce týmito písmenami.

Zadanie názvu stĺpca   Zadajte zátvorku a potom vyberte stĺpec zo zoznamu stĺpcov v aktuálnej tabuľke. V prípade stĺpca z inej tabuľky začnite písať prvé písmená názvu tabuľky a potom vyberte stĺpec z rozbaľovacieho zoznamu automatické dokončovanie.

Ďalšie podrobnosti a návod na vytváranie vzorcov nájdete v téme Vytváranie vzorcov pre výpočty v doplnku Power Pivot.

Tipy na používanie funkcie Automatické dokončovanie

Funkciu Automatické dokončovanie vzorca môžete použiť uprostred existujúceho vzorca s vnorenými funkciami. Text bezprostredne pred kurzorom sa používa na zobrazenie hodnôt v rozbaľovacom zozname a celý text za kurzorom zostane nezmenený.

Definované názvy, ktoré vytvoríte pre konštanty, sa nezobrazujú v rozbaľovacom zozname automatického dokončovania, ale môžete ich zadať.

Power Pivot nepridáva pravú zátvorku funkcií ani sa automaticky nezhoduje s zátvorkami. Mali by ste sa uistiť, že každá funkcia je syntakticky správna alebo že vzorec nie je možné uložiť ani použiť. 

Používanie viacerých funkcií vo vzorci

Môžete vnoriť funkcie, čo znamená, že výsledky z jednej funkcie použijete ako argument inej funkcie. Vo vypočítaných stĺpcoch môžete vnoriť až 64 úrovní funkcií. Vnorenie však môže sťažiť vytváranie vzorcov alebo riešenie problémov so vzorcami.

Mnohé funkcie jazyka DAX sú navrhnuté tak, aby sa používali výhradne ako vnorené funkcie. Tieto funkcie vrátia tabuľku, ktorá sa nedá priamo uložiť ako výsledok. mala by byť poskytnutá ako vstup pre funkciu tabuľky. Napríklad všetky funkcie SUMX, AVERAGEX a MINX vyžadujú ako prvý argument tabuľku.

Poznámka: Niektoré obmedzenia vnárania funkcií existujú v rámci mierok, aby sa zabezpečilo, že výkon nebude ovplyvnený mnohými výpočtami požadovanými závislosťami medzi stĺpcami.

Porovnanie funkcií jazyka DAX a funkcií Excelu

Knižnica funkcií JAZYKA DAX je založená na knižnici funkcií Excelu, ale knižnice majú mnoho rozdielov. Táto časť obsahuje súhrn rozdielov a podobností medzi excelovými funkciami a funkciami jazyka DAX.

  • Mnohé funkcie jazyka DAX majú rovnaký názov a rovnaké všeobecné správanie ako funkcie Excelu, ale boli upravené tak, aby prijali rôzne typy vstupov, a v niektorých prípadoch môžu vrátiť iný typ údajov. Vo všeobecnosti nie je možné použiť funkcie jazyka DAX vo vzorci excelu ani použiť vzorce programu Excel v Power Pivot bez akýchkoľvek úprav.

  • Funkcie jazyka DAX nikdy nepoužívajú odkaz na bunku alebo rozsah ako odkaz, ale namiesto toho funkcie jazyka DAX berú stĺpec alebo tabuľku ako odkaz.

  • Funkcie dátumu a času jazyka DAX vrátia typ údajov Datetime. Naopak, excelové funkcie dátumu a času vrátia celé číslo, ktoré predstavuje dátum ako poradové číslo.

  • Mnohé z nových funkcií jazyka DAX vrátia tabuľku hodnôt alebo vykonávajú výpočty na základe tabuľky hodnôt ako vstupu. Naopak, Excel neobsahuje žiadne funkcie, ktoré vracajú tabuľku, ale niektoré funkcie môžu pracovať s poľami. Možnosť jednoducho odkazovať na úplné tabuľky a stĺpce je novou funkciou v Power Pivot.

  • Jazyk DAX poskytuje nové vyhľadávacie funkcie, ktoré sú podobné funkciám vyhľadávania poľa a vektora v Exceli. Funkcie jazyka DAX však vyžadujú vytvorenie vzťahu medzi tabuľkami.

  • Očakáva sa, že údaje v stĺpci budú vždy rovnakého typu údajov. Ak údaje nie sú rovnakého typu, dax zmení celý stĺpec na typ údajov, ktorý najlepšie vyhovuje všetkým hodnotám.

Typy údajov JAZYKA DAX

Údaje môžete importovať do dátového modelu Power Pivot z mnohých rôznych zdrojov údajov, ktoré môžu podporovať rôzne typy údajov. Pri importe alebo načítaní údajov a následnom použití údajov vo výpočtoch alebo v kontingenčných tabuľkách sa údaje skonvertujú na jeden z Power Pivot typov údajov. Zoznam typov údajov nájdete v téme Typy údajov v dátových modeloch.

Typ údajov tabuľky je nový typ údajov v jazyku DAX, ktorý sa používa ako vstup alebo výstup pre mnohé nové funkcie. Funkcia FILTER napríklad vezme tabuľku ako vstup a vykoná ďalšiu tabuľku, ktorá obsahuje iba riadky, ktoré spĺňajú podmienky filtra. Kombináciou funkcií tabuľky s agregačnými funkciami môžete vykonávať zložité výpočty v dynamicky definovaných množinách údajov. Ďalšie informácie nájdete v téme Agregácie v doplnku Power Pivot.

Vzorce a relačný model

Okno Power Pivot je oblasť, kde môžete pracovať s viacerými tabuľkami údajov a spájať tabuľky v relačných modeloch. V rámci tohto dátového modelu sú tabuľky navzájom prepojené vzťahmi, ktoré vám umožňujú vytvárať korelácie so stĺpcami v iných tabuľkách a vytvárať zaujímavejšie výpočty. Môžete napríklad vytvoriť vzorce, ktoré sčítajú hodnoty pre súvisiacu tabuľku, a potom túto hodnotu uložiť do jednej bunky. Ak chcete ovládať riadky zo súvisiacej tabuľky, môžete použiť filtre na tabuľky a stĺpce. Ďalšie informácie nájdete v téme Vzťahy medzi tabuľkami v dátovom modeli.

Keďže tabuľky môžete prepojiť pomocou vzťahov, kontingenčné tabuľky môžu obsahovať aj údaje z viacerých stĺpcov, ktoré pochádzajú z rôznych tabuliek.

Keďže však vzorce môžu pracovať s celými tabuľkami a stĺpcami, musíte navrhnúť výpočty inak ako v Exceli.

  • Vo všeobecnosti sa vzorec DAX v stĺpci vždy použije na celú množinu hodnôt v stĺpci (nikdy len na niekoľko riadkov alebo buniek).

  • Tabuľky v Power Pivot musia mať vždy rovnaký počet stĺpcov v každom riadku a všetky riadky v stĺpci musia obsahovať rovnaký typ údajov.

  • Keď sú tabuľky prepojené vzťahom, očakáva sa, že sa uistíte, že dva stĺpce používané ako kľúče majú hodnoty, ktoré sa zhodujú, z väčšej časti. Keďže Power Pivot nevynucuje referenčnú integritu, je možné mať nezhodné hodnoty v stĺpci kľúča a vytvoriť vzťah. Prítomnosť prázdnych alebo nezodpovedaných hodnôt však môže ovplyvniť výsledky vzorcov a vzhľad kontingenčných tabuliek. Ďalšie informácie nájdete v téme Vyhľadávania vo vzorcoch doplnku Power Pivot.

  • Keď prepojíte tabuľky pomocou vzťahov, zväčšíte rozsah alebo text c, v ktorom sa vyhodnocujú vzorce. Vzorce v kontingenčnej tabuľke môžu byť ovplyvnené napríklad ľubovoľnými filtrami alebo záhlaviami stĺpcov a riadkov v kontingenčnej tabuľke. Môžete písať vzorce, ktoré manipulujú s kontextom, ale kontext môže tiež spôsobiť zmenu výsledkov spôsobom, ktorý možno nepredpokladáte. Ďalšie informácie nájdete v téme Kontext vo vzorcoch DAX.

Aktualizácia výsledkov vzorcov

Údaje r efresh a prepočítanie sú dve samostatné, ale súvisiace operácie, ktoré by ste mali pochopiť pri navrhovaní dátového modelu, ktorý obsahuje zložité vzorce, veľké množstvo údajov alebo údaje získané z externých zdrojov údajov.

Obnovenie údajov je proces aktualizácie údajov v zošite novými údajmi z externého zdroja údajov. Údaje môžete obnoviť manuálne v zadaných intervaloch. Ak ste zošit publikovali na lokalite SharePoint, môžete naplánovať automatické obnovenie z externých zdrojov.

Prepočítanie je proces aktualizácie výsledkov vzorcov tak, aby odrážali všetky zmeny v samotných vzorcoch a odrážali tieto zmeny v základných údajoch. Prepočítanie môže ovplyvniť výkon nasledujúcimi spôsobmi:

  • Vo vypočítanom stĺpci by sa výsledok vzorca mal vždy prepočítať pre celý stĺpec vždy, keď zmeníte vzorec.

  • V prípade mierky sa výsledky vzorca nevypočítajú, kým sa mierka neumiestni do kontextu kontingenčnej tabuľky alebo kontingenčného grafu. Vzorec sa prepočíta aj vtedy, keď zmeníte záhlavie riadka alebo stĺpca, ktoré ovplyvňuje filtre údajov alebo manuálne obnovíte kontingenčnú tabuľku.

Riešenie problémov so vzorcami

Chyby pri písaní vzorcov

Ak sa pri definovaní vzorca zobrazí chyba, vzorec môže obsahovať buď syntaktickú chybu, sémantickú chybu alebo chybu výpočtu.

Syntaktické chyby sa dajú najjednoduchšie vyriešiť. Zvyčajne zahŕňajú chýbajúcu zátvorku alebo čiarku. Ak potrebujete pomoc so syntaxou jednotlivých funkcií, pozrite si referenčné informácie o funkciách jazyka DAX.

Druhý typ chyby sa vyskytne, keď je syntax správna, ale odkazovaná hodnota alebo stĺpec nedáva zmysel v kontexte vzorca. Takéto sémantické chyby a chyby výpočtu môžu byť spôsobené niektorým z týchto problémov:

  • Vzorec odkazuje na neexistujúci stĺpec, tabuľku alebo funkciu.

  • Zdá sa, že vzorec je správny, ale keď údajový nástroj načíta údaje, zistí nezhodu typu a vyvolá chybu.

  • Vzorec odovzdá funkcii nesprávny počet alebo typ parametrov.

  • Vzorec odkazuje na iný stĺpec, ktorý obsahuje chybu, a preto sú jeho hodnoty neplatné.

  • Vzorec odkazuje na stĺpec, ktorý nebol spracovaný, čo znamená, že obsahuje metaúdaje, ale žiadne skutočné údaje, ktoré by sa mohli použiť na výpočty.

V prvých štyroch prípadoch jazyk DAX označí celý stĺpec obsahujúci neplatný vzorec. V poslednom prípade jazyk DAX vyšedne stĺpec, čo znamená, že stĺpec je v nespracovanom stave.

Nesprávne alebo nezvyčajné výsledky pri zoraďovaní alebo zoraďovaní hodnôt stĺpcov

Pri zoraďovaní stĺpca, ktorý obsahuje hodnotu NaN (nie je číslo), sa môžu zobraziť nesprávne alebo neočakávané výsledky. Ak napríklad výpočet vydelí číslo 0 číslom 0, vráti sa výsledok NaN.

Dôvodom je, že nástroj na tvorbu vzorcov vykonáva zoraďovanie a zoraďovanie porovnaním číselných hodnôt. Hodnotu NaN však nie je možné porovnať s inými číslami v stĺpci.

Na zabezpečenie správnych výsledkov môžete použiť podmienené príkazy pomocou funkcie IF na testovanie hodnôt NaN a vrátenie číselnej hodnoty 0.

Kompatibilita s tabuľkovými modelmi služby Analysis Services a režimom DirectQuery

Vo všeobecnosti sú vzorce DAX, ktoré vytvoríte v Power Pivot, úplne kompatibilné s tabuľkovými modelmi služby Analysis Services. Ak však svoj model Power Pivot migrujete do inštancie služby Analysis Services a potom model nasadíte v režime DirectQuery, existujú určité obmedzenia.

  • Niektoré vzorce DAX môžu vrátiť rôzne výsledky, ak model nasadíte v režime DirectQuery.

  • Niektoré vzorce môžu spôsobiť chyby overenia pri nasadzovaní modelu do režimu DirectQuery, pretože vzorec obsahuje funkciu DAX, ktorá nie je podporovaná v porovnaní s relačným zdrojom údajov.

Ďalšie informácie nájdete v tabuľkovej dokumentácii služby Analysis Services o modelovaní v službe SQL Server 2012 BooksOnline.

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.