Scénáře jazyka DAX v Power Pivotu

Platí pro
Excel pro Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Tato část obsahuje odkazy na příklady, které demonstrují použití vzorců jazyka DAX v následujících scénářích.

  • Provádění složitých výpočtů
  • Práce s textem a daty
  • Podmíněné hodnoty a testování chyb
  • Používání časového měřítka
  • Řazení a porovnávání hodnot

V tomto článku

Začínáme

Navštivte wikiweb centra zdrojů jazyka DAX , kde najdete nejrůznější informace o jazyce DAX včetně blogů, ukázek, dokumentů white paper a videí od předních odborníků v oboru a od společnosti Microsoft.

Scénáře: Provádění složitých výpočtů

Vzorce jazyka DAX umožňují provádět složité výpočty, které zahrnují vlastní agregace, filtrování a použití podmíněných hodnot. V této části najdete příklady, jak začít s vlastními výpočty.

Vytvoření vlastních výpočtů pro kontingenční tabulku

Funkce CALCULATE a CALCULATETABLE jsou výkonné a flexibilní funkce, které jsou užitečné pro definování počítaných polí. Tyto funkce umožňují změnit kontext, ve kterém se výpočet provede. Můžete taky přizpůsobit typ agregace nebo matematické operace, která se má provést. Příklady najdete v následujících tématech.

Použití filtru ve vzorci

Většinou tam, kde funkce jazyka DAX používá jako argument tabulku, můžete místo toho obvykle předat filtrovanou tabulku, a to buď použitím funkce FILTER místo názvu tabulky, nebo zadáním výrazu filtru jako jednoho z argumentů funkce. V následujících tématech najdete příklady způsobů vytváření filtrů a vlivu filtrů na výsledky vzorců. Další informace naleznete v tématu Filtrování dat ve vzorcích jazyka DAX.

Funkce FILTER umožňuje zadat kritéria filtru pomocí výrazu, ostatní funkce jsou navržené speciálně pro filtrování prázdných hodnot.

Selektivně odeberte filtry, abyste vytvořili dynamický poměr

Pomocí dynamických filtrů ve vzorcích můžete snadno odpovědět na například následující otázky:

  • Jak přispěly prodeje současného produktu k celkovému prodeji za rok?
  • Do jaké míry se tato divize podílela na celkovém zisku za všechny provozní roky ve srovnání s jinými divizemi?

Vzorce použité v kontingenční tabulce můžou být ovlivněné kontextem kontingenční tabulky, ale můžete je selektivně změnit přidáním nebo odebráním filtrů. Příklad v tématu VŠE ukazuje, jak na to. Pokud chcete zjistit poměr prodejů konkrétního prodejce oproti prodeji všech prodejců, vytvoříte míru, která vypočítá hodnotu pro aktuální kontext dělenou hodnotou v kontextu ALL.

Téma funkce ALLEXCEPT obsahuje příklad, jak selektivně vymazat filtry ve vzorci. Oba příklady popisují, jak se výsledky mění v závislosti na návrhu kontingenční tabulky.

Další příklady výpočtu poměrů a procent najdete v těchto tématech:

Použití hodnoty z vnější smyčky

Kromě použití hodnot z aktuálního kontextu ve výpočtech může jazyk DAX používat hodnotu z předchozí smyčky při vytváření sady souvisejících výpočtů. Následující téma obsahuje návod k vytvoření vzorce, který odkazuje na hodnotu z vnější smyčky. Funkce EARLIER podporuje až dvě úrovně vnořených smyček.

Další informace o kontextu řádků a souvisejících tabulkách a o použití tohoto konceptu ve vzorcích naleznete v tématu Kontext ve vzorcích jazyka DAX.

Scénáře: Práce s textem a daty

Tato část obsahuje odkazy na referenční témata jazyka DAX, která obsahují příklady běžných scénářů zahrnujících práci s textem, extrahování a vytváření hodnot data a času nebo vytváření hodnot na základě podmínky.

Vytvoření klíčového sloupce zřetězením

Power Pivot nepovoluje složené klíče. Pokud tedy máte ve zdroji dat složené klíče, budete je muset sloučit do jednoho klíčového sloupce. V následujícím tématu najdete příklad vytvoření počítaného sloupce založeného na složeném klíči.

Vytvoření data na základě částí data extrahovaných z textového data

Power Pivot používá k práci s kalendářními daty datový typ Datum a čas SQL Serveru. Pokud externí data obsahují kalendářní data s odlišným formátem – například pokud jsou zapsána v místním formátu kalendářního data, který není rozpoznán datovým modulem Power Pivot, nebo pokud jsou v datech použity celočíselné náhradní klíče – bude pravděpodobně nutné použít vzorec jazyka DAX k extrahování částí kalendářních dat a jejich následnému složení do platného vyjádření data a času.

Máte-li například sloupec kalendářních dat, která byla reprezentována jako celé číslo a poté importována jako textový řetězec, můžete tento řetězec převést na hodnotu data a času pomocí následujícího vzorce:

=DATUM(ZPRAVA([Hodnota1];4);ZLEVA([Hodnota1];2);ČÁST([Hodnota1];2))

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

Následující témata obsahují další informace o funkcích používaných k extrahování a vytváření kalendářních dat.

Definovat vlastní formát data nebo čísla

Pokud data obsahují kalendářní data nebo čísla, která nejsou uvedena v některém ze standardních textových formátů systému Windows, můžete definovat vlastní formát, který zajistí správné zpracování hodnot. Tyto formáty se používají při převodu hodnot na řetězce nebo z řetězců. Následující témata obsahují také podrobný seznam předdefinovaných formátů, které jsou k dispozici pro práci s kalendářními daty a čísly.

Změna datových typů pomocí vzorce

V Power Pivotu je datový typ výstupu určený zdrojovými sloupci a datový typ výsledku nelze explicitně zadat, protože optimální datový typ je určen doplňkem Power Pivot. Můžete ale použít implicitní převody datových typů prováděné doplňkem Power Pivot a pracovat s výstupním datovým typem. 

  • Datum nebo číselný řetězec převedete na číslo vynásobením hodnotou 1,0. Následující vzorec například vypočítá aktuální datum minus 3 dny a zobrazí odpovídající celočíselnou hodnotu.
    =(DNES()-3)*1,0
  • Chcete-li převést hodnotu kalendářního data, čísla nebo měny na řetězec, zřetězte hodnotu s prázdným řetězcem. Následující vzorec například vrátí dnešní datum jako řetězec.
    =""& DNES()

Následující funkce také můžete použít k zajištění vrácení určitého datového typu:

Převod reálných čísel na celá čísla

Scénář: Podmíněné hodnoty a testování chyb

Stejně jako aplikace Excel obsahuje i jazyk DAX funkce, které umožňují testovat hodnoty v datech a vracet různé hodnoty na základě podmínky. Můžete třeba vytvořit počítaný sloupec, který označí prodejce jako upřednostňované nebo jako hodnotu v závislosti na množství prodeje za rok. Funkce, které testují hodnoty, jsou užitečné taky pro kontrolu oblasti nebo typu hodnot, aby se zabránilo neočekávaným chybám dat, které by narušily výpočty.

Vytvoření hodnoty na základě podmínky

Pomocí vnořených podmínek KDYŽ můžete testovat hodnoty a podmíněně generovat nové hodnoty. Následující témata obsahují několik jednoduchých příkladů podmíněného zpracování a podmíněných hodnot:

Testování chyb ve vzorci

Na rozdíl od Excelu nemůžete mít v jednom řádku počítaného sloupce platné hodnoty a v jiném řádku neplatné hodnoty. To znamená, že pokud je v jakékoli části sloupce Power Pivotu chyba, označí se chybou celý sloupec, takže chyby ve vzorci, které vedou k neplatným hodnotám, musíte vždycky opravit.

Pokud třeba vytvoříte vzorec, který dělí nulou, může se zobrazit nekonečno nebo chyba. Některé vzorce selžou taky v případě, že funkce při očekávané číselné hodnotě zjistí prázdnou hodnotu. Při vývoji datového modelu je nejlepší nechat chyby vznikat, abyste mohli kliknout na zprávu a vyřešit dané potíže. Při publikování sešitů byste však měli zahrnout zpracování chyb, abyste zabránili neočekávaném hodnotám, které způsobí selhání výpočtů.

Chcete-li zabránit vrácení chyb ve počítaném sloupci, používáte kombinaci logických a informačních funkcí pro testování chyb a vždy vraťte platné hodnoty. V následujících tématech najdete několik jednoduchých příkladů, jak to udělat v jazyce DAX:

Scénáře: Používání časového měřítka

Funkce časového měřítka jazyka DAX zahrnují funkce, které vám pomohou načíst z dat kalendářní data nebo rozsahy dat. Tato data nebo rozsahy dat pak můžete použít k výpočtu hodnot pro podobná období. Mezi funkce časového měřítka patří taky funkce, které pracují se standardními datovými intervaly a umožňují porovnávat hodnoty napříč měsíci, roky nebo čtvrtletími. Můžete taky vytvořit vzorec, který porovná hodnoty pro první a poslední datum zadaného období.

Seznam všech funkcí časového měřítka naleznete v tématu Funkce časového měřítka (DAX). Tipy, jak efektivně používat data a časy v analýze Power Pivotu, najdete v tématu Data v Power Pivotu.

Výpočet kumulativních prodejů

Následující témata obsahují příklady výpočtu závěrečných a počátečních zůstatků. V příkladech můžete vytvořit průběžné zůstatky v různých intervalech, jako jsou dny, měsíce, čtvrtletí nebo roky.

Porovnání hodnot v průběhu času

Následující témata obsahují příklady, jak porovnat součty v různých časových obdobích. Výchozí časová období podporovaná jazykem DAX jsou měsíce, čtvrtletí a roky.

Výpočet hodnoty ve vlastním rozsahu dat

V následujících tématech najdete příklady, jak načíst vlastní rozsahy dat, například prvních 15 dní po zahájení podpory prodeje.

Pokud používáte funkce časového měřítka k načtení vlastní sady kalendářních dat, můžete tuto sadu dat použít jako vstup pro funkci, která provádí výpočty, a vytvořit tak vlastní souhrnné údaje pro různá časová období. Příklad postupu najdete v následujícím tématu:

  • PARALLELPERIOD (funkce DAX)

    Poznámka

    Pokud nepotřebujete zadávat vlastní rozsah dat, ale pracujete se standardními účetními jednotkami, jako jsou měsíce, čtvrtletí nebo roky, doporučujeme provádět výpočty pomocí funkcí časového měřítka určených pro tento účel, například TOTALQTD, TOTALMTD, TOTALQTD atd.

Scénáře: řazení a porovnávání hodnot

Pokud chcete zobrazit jenom prvních n položek ve sloupci nebo kontingenční tabulce, máte několik možností:

  • Funkce Excelu slouží k vytvoření horního filtru. V kontingenční tabulce můžete taky vybrat několik nejvyšších nebo nejnižších hodnot. První část tohoto oddílu popisuje, jak vyfiltrovat prvních 10 položek v kontingenční tabulce. Další informace najdete v dokumentaci k Excelu.
  • Můžete vytvořit vzorec, který hodnoty dynamicky seřadí podle hodnot, a potom je filtrovat podle hodnot pořadí nebo použít hodnotu pořadí jako průřez. Druhá část tohoto oddílu popisuje, jak vytvořit tento vzorec a potom toto pořadí použít v průřezu.

Každá metoda má své výhody a nevýhody.

  • Hlavní filtr Excelu se snadno používá, ale filtr slouží jenom pro účely zobrazení. Pokud se data, která jsou základem kontingenční tabulky, změní, je nutné kontingenční tabulku ručně aktualizovat, aby se změny projevily. Pokud potřebujete dynamicky pracovat s pořadím, můžete pomocí jazyka DAX vytvořit vzorec, který porovnává hodnoty s jinými hodnotami ve sloupci.
  • Vzorec jazyka DAX je výkonnější. Přidáním hodnoty hodnocení do průřezu navíc stačí kliknout na průřez a změnit počet zobrazených nejvyšších hodnot. Výpočty jsou ale výpočetně náročné a tato metoda nemusí být vhodná pro tabulky s mnoha řádky.

Zobrazení pouze deseti prvních položek v kontingenční tabulce

Zobrazení nejvyšších nebo nejnižších hodnot v kontingenční tabulce
  1. V kontingenční tabulce klikněte na šipku dolů v záhlaví Popisky řádků .
  2. Vyberte Filtry hodnot>Prvních 10.
  3. V dialogovém okně Název <sloupce> filtru prvních 10 zvolte sloupec, který chcete zařadit, a počet hodnot následujícím způsobem:
    1. Výběrem možnosti Nahoře zobrazíte buňky s nejvyššími hodnotami. Pokud chcete zobrazit buňky s nejnižšími hodnotami, vyberte Dolů.
    2. Zadejte počet nejvyšších nebo nejnižších hodnot, které chcete zobrazit. Výchozí hodnota je 10.
    3. Vyberte, jak se mají hodnoty zobrazovat:
NameDescriptionItemsTuto možnost vyberte, pokud chcete filtrovat kontingenční tabulku tak, aby zobrazovala jenom seznam prvních nebo posledních položek podle jejich hodnot. ProcentaTuto možnost vyberte, pokud chcete kontingenční tabulku filtrovat tak, aby zobrazovala jenom položky, jejichž součet odpovídá zadané procentuální hodnotě. SoučetTuto možnost vyberte, pokud chcete zobrazit součet hodnot pro první nebo poslední položky.
  1. Vyberte sloupec obsahující hodnoty, které chcete seřadit.
  2. Klikněte na OK.

Dynamické řazení položek pomocí vzorce

Následující téma obsahuje příklad použití jazyka DAX k vytvoření řazení, které je uloženo v počítaném sloupci. Vzhledem k tomu, že vzorce jazyka DAX se počítají dynamicky, můžete si být vždy jisti, že pořadí je správné, i když se podkladová data změní. Vzhledem k tomu, že se vzorec používá v počítaném sloupci, můžete také použít pořadí v průřezu a potom vybrat hodnoty 5 nejvyšších, 10 prvních nebo dokonce 100 nejvyšších.