Scenáre jazyka DAX v doplnku Power Pivot

Vzťahuje sa na
Excel pre Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Táto časť obsahuje prepojenia na príklady, ktoré demonštrujú používanie vzorcov jazyka DAX v nasledujúcich scenároch.

  • Vykonávanie zložitých výpočtov
  • Práca s textom a dátumami
  • Podmienené hodnoty a testovanie chýb
  • Používanie časovej inteligencie
  • Poradie a porovnanie hodnôt

Obsah tohto článku

Začíname

Navštívte lokalitu wiki Centrum zdrojov jazyka DAX , kde nájdete najrôznejšie informácie o jazyku DAX vrátane blogov, vzoriek, technickej dokumentácie a videí poskytovaných poprednými odborníkmi a spoločnosťou Microsoft.

Scenáre: Vykonávanie zložitých výpočtov

Vzorce jazyka DAX dokážu vykonávať zložité výpočty, ktoré zahŕňajú vlastné agregácie, filtrovanie a použitie podmienených hodnôt. Táto časť obsahuje príklady ako začať s vlastnými výpočtami.

Vytvorenie vlastných výpočtov pre kontingenčnú tabuľku

CALCULATE a CALCULATETABLE sú výkonné a flexibilné funkcie, ktoré sú užitočné na definovanie vypočítavaných polí. Tieto funkcie umožňujú zmeniť kontext, v ktorom sa výpočet vykoná. Môžete tiež prispôsobiť typ agregácie alebo matematickej operácie, ktorá sa má vykonať. Pozrite si príklady v nasledujúcich témach.

Použitie filtra na vzorec

Na väčšine miest, kde funkcia jazyka DAX berie tabuľku ako argument, môžete zvyčajne namiesto toho prejsť do filtrovanej tabuľky, a to buď použitím funkcie FILTER namiesto názvu tabuľky, alebo zadaním výrazu filtra ako jedného z argumentov funkcie. V nasledujúcich témach sú uvedené príklady vytvárania filtrov a ich vplyvu na výsledky vzorcov. Ďalšie informácie nájdete v téme Filtrovanie údajov vo vzorcoch jazyka DAX.

Funkcia FILTER vám umožňuje zadať kritériá filtrovania pomocou výrazu, zatiaľ čo ostatné funkcie sú navrhnuté špeciálne na filtrovanie prázdnych hodnôt.

Selektívne odstránenie filtrov na vytvorenie dynamického pomeru

Vytvorením dynamických filtrov vo vzorcoch môžete jednoducho odpovedať na otázky typu:

  • Aký bol príspevok predaja aktuálneho produktu k celkovému predaju za rok?
  • Ako táto divízia prispela k celkovému zisku za všetky prevádzkové roky v porovnaní s inými divíziami?

Vzorce, ktoré používate v kontingenčnej tabuľke, môžu byť ovplyvnené kontextom kontingenčnej tabuľky, kontext však môžete selektívne meniť pridaním alebo odstránením filtrov. Postup nájdete v príklade v téme ALL. Ak chcete zistiť pomer predaja konkrétneho predajcu a predaja všetkých predajcov, vytvorte ukazovateľ, ktorý vypočíta hodnotu pre aktuálny kontext vydelenú hodnotou pre kontext ALL.

Téma ALLEXCEPT obsahuje príklad selektívneho vymazania filtrov vo vzorci. Oba príklady vás prevedú zmenami výsledkov v závislosti od návrhu kontingenčnej tabuľky.

Ďalšie príklady výpočtu pomerov a percentuálnych hodnôt nájdete v nasledujúcich témach:

Použitie hodnoty z vonkajšej slučky

Okrem použitia hodnôt z aktuálneho kontextu vo výpočtoch môže jazyk DAX použiť aj hodnotu z predchádzajúcej slučky pri vytváraní množiny súvisiacich výpočtov. Nasledujúca téma obsahuje návod na vytvorenie vzorca, ktorý odkazuje na hodnotu z vonkajšej slučky. Funkcia EARLIER podporuje až dve úrovne vnorených slučiek.

Ďalšie informácie o kontexte riadka a súvisiacich tabuľkách, ako aj o používaní tohto konceptu vo vzorcoch, nájdete v téme Kontext vo vzorcoch jazyka DAX.

Scenáre: Práca s textom a dátumami

Táto časť obsahuje prepojenia na referenčné témy jazyka DAX, ktoré obsahujú príklady bežných scenárov zahŕňajúcich prácu s textom, extrahovanie a zostavovanie hodnôt dátumu a času alebo vytváranie hodnôt na základe podmienky.

Vytvorenie stĺpca kľúča zreťazením

Power Pivot nepovoľuje zložené klávesy. Ak teda máte v zdroji údajov zložené kľúče, možno ich budete musieť skombinovať do jedného stĺpca kľúča. Nasledujúca téma obsahuje príklad vytvorenia vypočítaného stĺpca založeného na zloženom kľúči.

Compose a date based on date parts extracted from a text date

Power Pivot používa na prácu s dátumami typ údajov dátum/čas SQL Server. Ak teda externé údaje obsahujú dátumy, ktoré sú inak formátované, napríklad ak sú dátumy zapísané v miestnom formáte dátumu, ktorý nerozpoznáva údajový mechanizmus doplnku Power Pivot, alebo ak vaše údaje používajú náhradné celočíselné kľúče, možno bude potrebné na extrahovanie častí dátumu a následné vytvorenie týchto častí do platného dátumu použiť vzorec jazyka DAX. Časové zastúpenie.

Ak máte napríklad stĺpec dátumov, ktoré boli vyjadrené ako celé číslo a potom importované ako textový reťazec, môžete tento reťazec skonvertovať na hodnotu dátumu a času pomocou tohto vzorca:

=DATE(RIGHT([Hodnota1];4);LEFT([Hodnota1];2);MID([Hodnota1];2))

Hodnota1 Výsledok
01032009 1/3/2009
12132008 12/13/2008
06252007 6/25/2007

Nasledujúce témy poskytujú ďalšie informácie o funkciách používaných na extrahovanie a vytváranie dátumov.

Definovanie vlastného formátu dátumu alebo čísel

Ak údaje obsahujú dátumy alebo čísla, ktoré nie sú znázornené v žiadnom zo štandardných textových formátov systému Windows, môžete definovať vlastný formát a zabezpečiť tak správne spracovanie hodnôt. Tieto formáty sa používajú pri konvertovaní hodnôt na reťazce alebo z reťazcov. Nasledujúce témy tiež poskytujú podrobný zoznam preddefinovaných formátov, ktoré sú k dispozícii na prácu s dátumami a číslami.

Zmena typu údajov pomocou vzorca

V doplnku Power Pivot je typ údajov výstupu určený zdrojovými stĺpcami a nemôžete explicitne určiť typ údajov výsledku, pretože optimálny typ údajov určuje Power Pivot. Konverzie implicitných typov údajov vykonávané doplnkom Power Pivot však môžete použiť na manipuláciu s typom výstupných údajov. 

  • Ak chcete konvertovať dátum alebo číselný reťazec na číslo, vynásobte ho hodnotou 1,0. Nasledujúci vzorec napríklad vypočíta aktuálny dátum mínus 3 dni a potom zobrazí zodpovedajúcu celočíselnú hodnotu.
    =(TODAY()-3)*1,0
  • Ak chcete skonvertovať hodnotu dátumu, čísla alebo meny na reťazec, zreťazte hodnotu s prázdnym reťazcom. Nasledujúci vzorec napríklad vráti dnešný dátum ako reťazec.
    =""& TODAY()

Na zabezpečenie vrátenia konkrétneho typu údajov tiež možno použiť nasledujúce funkcie:

Konverzia reálnych čísel na celé čísla

Scenár: Podmienené hodnoty a testovanie chýb

Podobne ako Excel, aj jazyk DAX obsahuje funkcie, ktoré umožňujú testovať hodnoty v údajoch a vrátiť inú hodnotu na základe podmienky. Môžete napríklad vytvoriť vypočítavaný stĺpec, ktorý v závislosti od ročného objemu predaja označí predajcov ako Preferované alebo Hodnota . Funkcie, ktoré testujú hodnoty, sú užitočné aj na kontrolu rozsahu alebo typu hodnôt, kde sa zabráni neočakávaným chybám údajov, ktoré spôsobia nefunkčné výpočty.

Vytvorenie hodnoty na základe podmienky

Na testovanie hodnôt a podmienené generovanie nových hodnôt môžete použiť vnorené podmienky IF. Nasledujúce témy obsahujú niekoľko jednoduchých príkladov podmieneného spracovania a podmienených hodnôt:

Test chýb vo vzorci

Na rozdiel od Excelu nemôžete mať platné hodnoty v jednom riadku vypočítaného stĺpca a neplatné hodnoty v inom riadku. Znamená to, že ak sa vyskytne chyba v akejkoľvek časti stĺpca doplnku Power Pivot, celý stĺpec sa označí príznakom chyby, takže chyby vo vzorci, ktorých výsledkom sú neplatné hodnoty, musíte vždy opraviť.

Ak napríklad vytvoríte vzorec, ktorý delí nulou, môže sa zobraziť výsledok nekonečna alebo chyba. Niektoré vzorce zlyhajú aj vtedy, ak funkcia pri očakávaní číselnej hodnoty narazí na prázdnu hodnotu. Pri vývoji dátového modelu je najlepšie povoliť zobrazovanie chýb, aby ste mohli kliknúť na hlásenie a problém vyriešiť. Pri publikovaní zošitov by ste však mali zahrnúť spracovanie chýb, aby neočakávané hodnoty nespôsobili zlyhanie výpočtov.

Ak chcete zabrániť vráteniu chýb vo vypočítanom stĺpci, na skontrolovanie chýb použite kombináciu logických a informačných funkcií a vždy vrátite platné hodnoty. V nasledujúcich témach nájdete niekoľko jednoduchých príkladov, ako to urobiť v jazyku DAX:

Scenáre: Používanie časovej inteligencie

Funkcie časovej inteligencie jazyka DAX obsahujú funkcie, ktoré vám pomôžu načítať dátumy alebo rozsahy dátumov z údajov. Tieto dátumy alebo rozsahy dátumov potom môžete použiť na výpočet hodnôt v rámci podobných období. Funkcie časovej inteligencie zahŕňajú aj funkcie, ktoré pracujú so štandardnými intervalmi dátumu a umožňujú vám porovnávať hodnoty z mesiacov, rokov alebo štvrťrokov. Môžete tiež vytvoriť vzorec, ktorý porovnáva hodnoty pre prvý a posledný dátum v zadanom období.

Zoznam všetkých funkcií časovej inteligencie nájdete v téme Funkcie časovej inteligencie (DAX). Tipy na efektívne používanie dátumov a časov v analýze doplnku Power Pivot nájdete v téme Dátumy v doplnku Power Pivot.

Výpočet kumulatívneho predaja

Nasledujúce témy obsahujú príklady výpočtu konečného a počiatočného zostatku. Príklady vám umožňujú vytvoriť priebežné zostatky v rôznych intervaloch, ako sú dni, mesiace, štvrťroky alebo roky.

Porovnanie hodnôt v priebehu času

Nasledujúce témy obsahujú príklady porovnávania súčtov v rôznych časových obdobiach. Predvolené časové obdobia podporované jazykom DAX sú mesiace, štvrťroky a roky.

Výpočet hodnoty v rámci vlastného rozsahu dátumov

V nasledujúcich témach nájdete príklady načítania vlastných rozsahov dátumov, ako je napríklad prvých 15 dní po začatí akcie predaja.

Ak používate funkcie časovej inteligencie na načítanie vlastnej množiny dátumov, môžete túto množinu dátumov použiť ako vstupnú hodnotu pre funkciu, ktorá vykonáva výpočty, a vytvoriť vlastné súhrnné hodnoty pre časové obdobia. Príklad postupu nájdete v nasledujúcej téme:

  • Funkcia PARALLELPERIOD

    Poznámka

    Ak nepotrebujete určiť vlastný rozsah dátumov, ale pracujete so štandardnými účtovnými jednotkami, ako sú mesiace, štvrťroky alebo roky, odporúčame vám vykonávať výpočty pomocou funkcií časovej inteligencie, ktoré sú na to určené, ako je napríklad TOTALQTD, TOTALMTD, TOTALQTD atď.

Scenáre: Poradie a porovnanie hodnôt

Ak chcete zobraziť len n najvyšších položiek v stĺpci alebo kontingenčnej tabuľke, máte niekoľko možností:

  • Funkcie v Exceli môžete použiť na vytvorenie horného filtra. V kontingenčnej tabuľke môžete vybrať aj niekoľko najvyšších alebo najnižších hodnôt. V prvej časti tejto časti sa popisuje spôsob filtrovania prvých 10 položiek v kontingenčnej tabuľke. Ďalšie informácie nájdete v dokumentácii k Excelu.
  • Môžete vytvoriť vzorec, ktorý dynamicky určuje poradie hodnôt a potom filtrovať podľa hodnôt poradia, alebo môžete použiť hodnotu poradia ako rýchly filter. Druhá časť tejto časti popisuje, ako tento vzorec vytvoriť a potom toto umiestnenie použiť v rýchlom filtri.

Každá metóda má svoje výhody a nevýhody.

  • Horný filter Excelu sa jednoducho používa, ale slúži iba na účely zobrazenia. Ak sa zmenia údaje, ktoré tvoria základ kontingenčnej tabuľky, zmeny sa zobrazia až po manuálnom obnovení kontingenčnej tabuľky. Ak potrebujete dynamicky pracovať s poradím, môžete pomocou jazyka DAX vytvoriť vzorec, ktorý porovnáva hodnoty s inými hodnotami v stĺpci.
  • Vzorec jazyka DAX je výkonnejší; navyše pridaním hodnoty poradia do rýchleho filtra stačí kliknúť na rýchly filter a zmeniť počet najvyšších zobrazených hodnôt. Výpočty sú však výpočtovo náročné a táto metóda nemusí byť vhodná pre tabuľky s mnohými riadkami.

Zobrazenie iba prvých desať položiek v kontingenčnej tabuľke

Zobrazenie najvyšších alebo najnižších hodnôt v kontingenčnej tabuľke
  1. V kontingenčnej tabuľke kliknite na šípku nadol v záhlaví Označenia riadkov .
  2. Vyberte filtre> hodnôt– prvých 10.
  3. V dialógovom okne Názov> stĺpca s <prvými desiatkami vyberte stĺpec, ktorý sa má zoradiť, a počet hodnôt takto:
    1. Vyberte Hore na zobrazenie buniek s najvyššími hodnotami alebo Dole na zobrazenie buniek s najnižšími hodnotami.
    2. Zadajte počet najvyšších alebo najnižších hodnôt, ktoré sa majú zobraziť. Predvolená hodnota je 10.
    3. Vyberte spôsob zobrazovania hodnôt:
NameDescriptionItemsVyberte túto možnosť, ak chcete filtrovať kontingenčnú tabuľku tak, aby sa zobrazil iba zoznam prvých alebo posledných položiek podľa ich hodnôt. PercentoVyberte túto možnosť, ak chcete filtrovať kontingenčnú tabuľku tak, aby zobrazovala iba položky, ktoré tvoria súčet zadaného percentuálneho podielu. SúčetTúto možnosť vyberte, ak chcete zobraziť súčet hodnôt pre prvé alebo posledné položky.
  1. Vyberte stĺpec obsahujúci hodnoty, na ktoré sa chcete zoradiť.
  2. Kliknite na tlačidlo OK.

Dynamické zoradenie položiek pomocou vzorca

Nasledujúca téma obsahuje príklad použitia jazyka DAX na vytvorenie poradia, ktoré je uložené vo vypočítavanom stĺpci. Keďže vzorce jazyka DAX sa vypočítavajú dynamicky, vždy si môžete byť istí správnym poradím aj vtedy, ak sa zmenili základné údaje. Keďže sa vzorec používa vo vypočítavanom stĺpci, môžete poradie použiť v rýchlom filtri a potom vybrať prvých 5, 10 najvyšších alebo dokonca 100 najvyšších hodnôt.