Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Tento rychlý start je pro uživatele, kteří Power Pivot v Excel nebo tabulkových modelech, které jsou SQL Server datové nástroje. Má vám poskytnout rychlý a snadný úvod k tomu, jak můžete pomocí jazyka DAX (Data Analysis Expressions) vyřešit řadu základních problémů s modelováním dat a analytickými problémy. Toto téma obsahuje koncepční informace, řadu úkolů, které můžete dokončit, a několik kvízů, které vám umožní vyzkoušet, co jste se naučili. Po dokončení tohoto tématu byste měli dobře porozumět základním konceptům jazyka DAX.

Co je jazyk DAX?

Jazyk DAX je kolekce funkcí, operátorů a konstant, které lze použít ve vzorci nebo výrazu k výpočtu a vrácení jedné nebo více hodnot. Jazyk DAX vám jednodušeji pomůže vytvářet nové informace z dat, která už jsou ve vašem modelu.

Proč je jazyk DAX tak důležitý?

Sešit můžete snadno vytvořit a importovat do něj některá data. Můžete dokonce vytvářet kontingenční tabulky nebo kontingenční grafy, které zobrazují důležité informace bez použití vzorců jazyka DAX. Ale co když potřebujete analyzovat důležitá data prodeje v několika kategoriích produktů a pro různé rozsahy dat? Nebo potřebujete zkombinovat důležitá data inventáře z několika tabulek v různých zdrojích dat? Vzorce jazyka DAX poskytují tuto funkci a mnoho dalších důležitých funkcí. Naučte se vytvářet efektivní vzorce jazyka DAX, které vám pomůžou na co nejvíc z vašich dat. Když dostanete potřebné informace, můžete začít řešit skutečné obchodní problémy, které mají vliv na váš dolní řádek. Toto je Business Intelligence a dax vám pomůže se tam dostat.

Požadavky

Možná už znáte vytváření vzorců v Microsoft Excel. Tyto znalosti budou užitečné při porozumění jazyku DAX, ale i když nemáte zkušenosti se vzorci Excel, tady popsané koncepty vám pomůžou hned začít vytvářet vzorce jazyka DAX Excel vyřešit skutečné problémy BI.

Zaměříme se konkrétně na pochopení vzorců jazyka DAX používaných při výpočtech. Už byste měli znát základní koncepty počítaných sloupců i položek (označované taky jako počítaná pole), které jsou popsané v Power Pivot nápovědě. Měli byste se také seznámit s Power Pivot v Excel prostředí a nástrojích.

Příklad sešitu

Jazyk DAX se nejlépe naučíte tak, že vytvoříte některé základní vzorce, použijete je s některými skutečnými daty a zobrazíte si výsledky sami. Příklady a úkoly tady používají ukázkový sešit Contoso DAX Formulas.xlsx. Sešit si můžete stáhnout z http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. Až si sešit stáhnete do počítače, otevřete ho a potom otevřete okno Power Pivot sešitu.

Začínat!

Jazyk DAX zarámujeme na tři velmi důležité základní koncepty: syntaxi, funkce a kontext. V jazyku DAX jsou samozřejmě i další důležité koncepty, ale pochopení těchto tří konceptů poskytne nejlepší základ pro budování dovedností jazyka DAX.

Syntaxe

Než vytvoříte vlastní vzorce, podívejme se na syntaxi vzorců jazyka DAX. Syntaxe zahrnuje různé prvky, které tvoří vzorec, neboli jednodušeji, jak je vzorec napsaný. Podívejme se třeba na jednoduchý vzorec jazyka DAX, který slouží k vytvoření nových dat (hodnot) pro každý řádek počítaného sloupce s názvem Okraj v tabulce FactSales: (barvy textu vzorce jsou jenom pro ilustrační účely)

Vzorec počítaného sloupce

Syntaxe tohoto vzorce obsahuje následující prvky:

  1. Operátor znaménka rovná se (=) označuje začátek vzorce a při výpočtu tohoto vzorce vrátí výsledek nebo hodnotu. Všechny vzorce, které počítají hodnotu, budou začínat znakem rovná se.

  2. Odkazovaný sloupec [SalesAmount] obsahuje hodnoty, od které chcete odečíst. Odkaz na sloupec ve vzorci je vždy obklopen závorkami []. Na Excel vzorců, které odkazují na buňku, vzorec jazyka DAX vždy odkazuje na sloupec.

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

  4. Odkazovaný sloupec [TotalCost] obsahuje hodnoty, které chceme od hodnot ve sloupci [SalesAmount] odečíst.

Když se snažíte pochopit, jak číst vzorec jazyka DAX, je často užitečné rozdělit jednotlivé prvky do jazyka, který si myslíte a mluvíte každý den. Tento vzorec můžete například přečíst takto:

V tabulce FactSales pro každý řádek ve sloupci Počítaná marže vypočítejte (=) hodnotu odečtením hodnot (-)ve sloupci [TotalCost] od hodnot ve sloupci[SalesAmount].

Podívejme se na jiný typ vzorce, který se používá v rozměru:

Vzorec počítaného sloupce

Tento vzorec obsahuje následující prvky syntaxe:

  1. Název míry Součet částky prodeje Vzorce pro míry mohou zahrnovat název míry a dvojtečku a vzorec výpočtu.

  2. Operátor znaménka rovná se (=) označuje začátek vzorce výpočtu. Při výpočtu vrátí výsledek.

  3. Funkce SUMA sečte všechna čísla ve sloupci [SalesAmount]. Další informace o funkcích se dozvíte později.

  4. Závorka () obklopuje jeden nebo více argumentů. Všechny funkce vyžadují aspoň jeden argument. Argument předá hodnotu funkci.

  5. Odkazovaná tabulka FactSales.

  6. Odkazovaný sloupec [SalesAmount] v tabulce FactSales. Pomocí tohoto argumentu funkce SUMA ví, na kterém sloupci se má agregovat suma.

Tento vzorec si můžete přečíst takto:

U míry s názvem Sum of Sales Amount (Sum of Sales Amount) vypočítejte (=)hodnotu SUMA hodnot ve sloupci [SalesAmount] v tabulce FactSales.

Když je tato míra umístěna do zóny přetažení Hodnoty v seznamu polí kontingenční tabulky, vypočítá a vrátí hodnoty definované jednotlivými buňkami kontingenční tabulky, například mobilní telefony v USA.

Všimněte si, že v tomto vzorci se liší několik věcí ve srovnání se vzorcem, který jsme použili pro počítaný sloupec Okraje. Konkrétně jsme zavedli funkci SUMA. Funkce jsou předem napsané vzorce, které usnadňují složité výpočty a manipulace s čísly, kalendářními daty, časem, textem a další. Další informace o funkcích se dozvíte později.

Na rozdíl od počítaného sloupce Marže vidíte sloupec [SalesAmount] před tabulkou FactSales, do které sloupec patří. Tento název se označuje jako plně kvalifikovaný název sloupce v tom, že obsahuje název sloupce, před který předchází název tabulky. Sloupce odkazované ve stejné tabulce nevyžadují, aby byl do vzorce zahrnut název tabulky. Díky tomu se dlouhé vzorce, které odkazují na mnoho sloupců, zkrátí a snadněji čtou. Je ale vhodné, abyste do vzorců míry vždy zahrnuli název tabulky, a to i v případě, že jsou ve stejné tabulce.

Poznámka: Pokud název tabulky obsahuje mezery, rezervovaná klíčová slova nebo zakázané znaky, musíte název tabulky uzavřít do jednoduchých uvozovek. Názvy tabulek je také nutné uzavřít do uvozovek, pokud název obsahuje všechny znaky mimo oblast alfanumerických znaků ANSI bez ohledu na to, jestli národní prostředí tuto znakovou sadu podporuje nebo ne.

Je velmi důležité, aby vzorce měl správnou syntaxi. Pokud syntaxe není správná, bude ve většině případů vrácena chyba syntaxe. V ostatních případech může být syntaxe správná, ale vrácené hodnoty nemusí být to, co očekáváte. Power Pivot (a SQL Server datové nástroje) zahrnuje IntelliSense; funkce použitá k vytvoření syntakticky správných vzorců tím, že vám pomůže vybrat správné prvky.

Pojďme vytvořit jednoduchý vzorec. Tento úkol vám pomůže lépe pochopit syntaxi vzorce a jak vám IntelliSense v řádku vzorců pomůže.

Úkol: Vytvoření jednoduchého vzorce pro počítaný sloupec

  1. Pokud ještě nejste v okně Power Pivot, klikněte v Excel na pásu Power Pivot na Power PivotOkno.

  2. V Power Pivot klikněte na tabulku FactSales (karta).

  3. Posuňte se na sloupec nejvíce vpravo a potom v záhlaví sloupce klikněte na Přidat sloupec.

  4. Klikněte na řádek vzorců v horní části okna návrháře modelu.

    Řádek vzorců doplňku PowerPivot

    Kurzor se teď zobrazí na řádku vzorců. Řádek vzorců je místo, kde můžete zadat vzorec pro počítaný sloupec nebo počítané pole.

    Podívejme se na tři tlačítka nalevo od řádku vzorců.

    Formula bar

    Když je kurzor na řádku vzorců aktivní, tato tři tlačítka se stanou aktivními. Tlačítko zcela vlevo, X, je jednoduše tlačítko zrušit. Pokračujte a klikněte na něj. Kurzor se už nezobrazuje na řádku vzorců a tlačítko Zrušit a tlačítko zaškrtnutí se už nezobrazí. Pokračujte a znovu klikněte na řádek vzorců. Tlačítko Zrušit a tlačítko zaškrtnutí se teď znovu zobrazí. To znamená, že jste připravení začít zadávat vzorec.

    Tlačítko zaškrtnutí je tlačítko kontrolního vzorce. Moc toho nenasytá, dokud nezadáte vzorec. Za chvíli se k tomu vrátíme.

    Klikněte na tlačítko Fx. Uvidíte, že se zobrazí nové dialogové okno. v dialogovém okně Vložit funkci. Dialogové okno Vložit funkci je nejjednodušší způsob, jak začít zadávat vzorec jazyka DAX. Funkci přidáme do vzorce, když míru vytvoříme o něco později, ale do vzorce počítaného sloupce teď funkci přidávat nepotřebujete. Pokračujte a zavřete dialogové okno Vložit funkci.

  5. Do řádku vzorců zadejte znaménko rovná se =, pak zadejte počáteční hranatou závorku [. Zobrazí se malé okno se všemi sloupci v tabulce FactSales. Toto je IntelliSense v akci.

    Vzhledem k tomu, že počítané sloupce se vždycky vytvářejí v aktivní tabulce, ve které jste, není nutné před názvem sloupce předcházet názvu tabulky. Pokračujte a posuňte se dolů a potom poklikejte na [SalesQuantity]. Můžete se taky posunout na název sloupce, který chcete, a pak stisknout klávesu Tab.

    Kurzor je teď aktivní napravo od [SalesQuantity].

  6. Zadejte mezeru a potom zadejte operátor odčítání – (znaménko mínus) a zadejte jinou mezeru.

  7. Teď zadejte jinou počáteční hranatou závorku [. Tentokrát vyberte sloupec [ReturnQuantity] a stiskněte Enter.

    Pokud se zobrazí chyba, pečlivě se podívejte na syntaxi. V případě potřeby ho porovnejte se vzorcem ve výše popsaném sloupci Počítaná marže.

    Po stisknutí klávesy Enter vzorec dokončíte, zobrazí se ve stavovém řádku podél dolní části okna Power Pivot výpočet. Jde to rychle, i když jste právě vypočítali nové hodnoty pro více než tři miliony řádků.

  8. Klikněte pravým tlačítkem myši na záhlaví sloupce a přejmenujte sloupec NetSales.

A je to! Právě jste vytvořili jednoduchý, ale velmi výkonný vzorec jazyka DAX. Pro každý řádek v tabulce FactSales vypočítá vzorec NetSales hodnotu odečtením hodnoty ve sloupci [ReturnQuantity] od hodnoty ve sloupci [SalesQuantity]. Všimněte si, jak jsme právě řekli "Pro každý řádek". Toto je pohled na další velmi důležitý koncept jazyka DAX. kontext řádku. Další informace o kontextu řádku se dozvíte později.

Při zadávání operátoru do vzorce jazyka DAX je velmi důležité porozumět datovému typu v argumentech, které používáte. Pokud třeba chcete zadat následující vzorec = 1 & 2, vrácená hodnota by byla textová hodnota "12". Je to proto, že operátor ampersand (&) je pro zřetězení textu. Jazyk DAX interpretuje tento vzorec ke čtení: Vypočítejte výsledek tak, že hodnotu 1 vezmete jako text a přidáte hodnotu 2 jako text. Pokud byste teď měli zadat = 1 + 2, jazyk DAX přečte tento vzorec takto: Výpočet výsledku tak, že vezmete číselnou hodnotu 1 a přidáte číselnou hodnotu 2. Výsledkem je samozřejmě "3", číselná hodnota. Jazyk DAX vypočítá výsledné hodnoty v závislosti na operátoru ve vzorci, nikoli na datovém typu sloupců použitých v argumentu. Datové typy v jazyku DAX jsou velmi důležité, ale mimo rozsah tohoto úvodního panelu. Další informace o datových typech a operátorech ve vzorcích jazyka DAX najdete v článku Referenční příručka jazyka DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) v books online.

Zkusme další. Tentokrát vytvoříte míru zadáním vzorce a použitím IntelliSense. Nebojte se, pokud vzorec plně nerozumíte. Důležité je, abyste se dozvěděli, jak vytvořit vzorec pomocí několika prvků společně ve správné syntaxi.

Úkol: Vytvoření vzorce míry

  1. V tabulce FactSales klikněte na libovolnou prázdnou buňku v oblasti výpočtu. Jedná se o oblast prázdných buněk těsně pod tabulkou v Power Pivot buňky.

Oblast výpočtu doplňku PowerPivot

  1. Do řádku vzorců zadejte název Prodej za předchozí čtvrtletí:.

  2. Pokud chcete začít vzorec výpočtu, zadejte znaménko rovná se = .

  3. Zadejte prvních pár písmen CAL a poklikejte na funkci, kterou chcete použít. V tomto vzorci chcete použít funkci CALCULATE.

  4. Zadejte počáteční závorku ( pokud chcete začínat argumenty, které mají být předány funkci CALCULATE.

    Všimněte si, že po zadání počáteční závorky IntelliSense zobrazí argumenty požadované pro funkci CALCULATE. O argumentech se dozvíte za chvíli.

  5. Zadejte několik prvních písmen tabulky FactSales a potom v rozevíracím seznamu poklikejte na FactSales[Prodej].

  6. Pokud chcete zadat první filtr, zadejte čárku (;), potom napište PRE a potom poklikejte na funkci PREVIOUSQUARTER.

    Po výběru funkce PREVIOUSQUARTER se zobrazí další úvodní závorka označující další argument. pro funkci PREVIOUSQUARTER.

  7. Zadejte prvních pár písmen Dim a potom poklikejte na DimDate[DateKey].

  8. Zavřete oba argumenty předané funkci PREVIOUSQUARTER a funkci CALCULATE zadáním dvou závorek )).

    Vzorec by teď měl vypadat takhle:

    Prodej za předchozí čtvrtletí:=CALCULATE(FactSales[Prodej], PREVIOUSQUARTER(DimDate[DateKey]))

  9. Kliknutím na tlačítko kontrolního vzorce na řádku vzorců vzorec ověříte. Pokud se zobrazí chyba, ověřte každý prvek syntaxe.

Udělali jste to! Právě jste vytvořili míru pomocí jazyka DAX, a není to jednoduché. Tento vzorec vypočítá celkové prodeje za předchozí čtvrtletí v závislosti na filtrech použitých v kontingenční tabulce nebo PivotChart.

Právě jste se seznámili s několika důležitými aspekty vzorců jazyka DAX. Nejdřív tento vzorec obsahoval dvě funkce. Všimněte si, že funkce PREVIOUSQUARTER je vnořená jako argument předaný funkci CALCULATE. Vzorce jazyka DAX mohou obsahovat až 64 vnořených funkcí. Je nepravděpodobné, že by vzorec někdy obsahoval tolik vnořených funkcí. Takový vzorec by bylo ve skutečnosti velmi obtížné vytvořit a ladit a pravděpodobně by taky nebyl moc rychlý.

V tomto vzorci jste taky použili filtry. Filtry zúží počítané hodnoty. V takovém případě jste vybrali jeden filtr jako argument, což je vlastně jiná funkce. Další informace o filtrech se dozvíte později.

Nakonec jste použili funkci CALCULATE. Toto je jedna z nejvýkonnějších funkcí jazyka DAX. Při vytváření datových modelů a vytváření složitějších vzorců budete tuto funkci pravděpodobně používat mnohokrát. Diskuse o funkci CALCULATE je mimo rozsah tohoto rychlého startu, ale s tím, jak se vaše znalosti jazyka DAX zvětšují, věnujte této funkci zvláštní pozornost.

Poznámka: Pokud chcete ve vzorcích jazyka DAX používat funkce Časové řady, je obvykle nutné zadat jedinečný sloupec data pomocí dialogového okna Označit jako tabulku dat. Ve vzorci Contoso DAX Samples.xlsx sešitu je sloupec DateKey v tabulce DimDate vybraný jako jedinečný sloupec data.

Kredit navíc

Možná se ptáte: Co je nejjednodušší vzorec jazyka DAX, který můžu vytvořit? No, odpověď na to je "vzorec, který nemusíte". A přesně to můžete udělat pomocí standardní agregační funkce v měřítku. Téměř každý datový model potřebuje filtrovat a vypočítat agregovaná data. Například funkce SUMA v měřítku Sum of Sales Amount (Sum of Sales Amount), kterou jste viděli dříve, slouží k sečtení všech čísel v určitém sloupci. Jazyk DAX obsahuje několik dalších funkcí, které agregují i hodnoty. Vzorce můžete automaticky vytvářet pomocí standardních agregací pomocí funkce Automatické shrnutí.

Extra Credit Task: Vytvoření vzorce míry pomocí funkce Automatické shrnutí

  1. V tabulce FactSales přejděte na sloupec ReturnQuantity a kliknutím na záhlaví sloupce vyberte celý sloupec.

  2. Na kartě Domů klikněte na pásu karet ve skupině Výpočty na tlačítko Automatické shrnutí.

Funkce AutoSum v doplňku PowerPivot

Klikněte na šipku dolů vedle položky Automatickéshrnutí a potom klikněte na Průměr (všimněte si dalších standardních agregačních funkcí, které můžete použít).

Hned se vytvoří nová míra s názvem Průměr returnquantity: následovaný vzorcem =AVERAGE([ReturnQuantity]).

Nebylo to teď tak snadné? Samozřejmě, že ne všechny vzorce, které vytvoříte, budou tak jednoduché. Pomocí funkce Automatické shrnutí ale můžete vytvářet rychlé a jednoduché vzorce pomocí standardních výpočtů agregace.

To by vám mělo poskytnout poměrně dobrou znalost syntaxe používané ve vzorcích jazyka DAX. Představili vás také některé skvělé funkce, jako jsou IntelliSense a Automatické shrnutí, které vám pomůžou vytvářet rychlé, snadné a přesné vzorce. O syntaxi se samozřejmě můžete dozvědět mnohem víc. Dobrým místem, kde se můžete dozvědět víc, je referenční příručka jazyka DAX nebo SQL Books Online.

Syntaxe QuickQuiz

  1. Co dělá toto tlačítko na řádku vzorců?
    Tlačítko Funkce

  2. Co vždycky obklopuje název sloupce ve vzorci jazyka DAX?

  3. Jak byste napsali vzorec pro následující: V tabulce DimProduct pro každý řádek počítaného sloupce UnitMargin vypočítejte hodnotu odečtením hodnot ve
    sloupci UnitCostod hodnot ve sloupci JednotkováCena?

Odpovědi najdete na konci tohoto tématu.

Funkce

Funkce jsou předdefinované vzorce, které provádějí výpočty pomocí určitých hodnot, které se nazývají argumenty v určitém pořadí nebo struktuře. Argumenty mohou být jiné funkce, jiný vzorec, odkazy na sloupce, čísla, text, logické hodnoty, jako je PRAVDA nebo NEPRAVDA, nebo konstanty.

Jazyk DAX zahrnuje následující kategorie funkcí: Datum a čas, Informace, Logické, Matematické, Statistické, Textové a Časové funkce. Pokud znáte funkce ve vzorcích Excel, zobrazí se mnoho funkcí jazyka DAX podobně jako vy. Funkce jazyka DAX jsou ale jedinečné následujícími způsoby:

  • Funkce jazyka DAX vždy odkazuje na celý sloupec nebo tabulku. Pokud chcete použít jenom určité hodnoty z tabulky nebo sloupce, můžete do vzorce přidat filtry.

  • Pokud potřebujete přizpůsobit výpočty na základě jednotlivých řádků, jazyk DAX poskytuje funkce, které umožňují použít aktuální hodnotu řádku nebo související hodnotu jako druh argumentu k provádění výpočtů, které se liší podle kontextu. Další informace o kontextu se dozvíte později.

  • Jazyk DAX obsahuje mnoho funkcí, které vracejí tabulku místo hodnoty. Tabulka se nezobrazuje, ale slouží k zadávání jiných funkcí. Můžete například načíst tabulku a potom spočítat odlišné hodnoty v ní nebo vypočítat dynamické součty mezi filtrované tabulky nebo sloupce.

  • Jazyk DAX obsahuje různé funkce časového rozvědky. Tyto funkce umožňují definovat nebo vybrat rozsahy dat a provádět dynamické výpočty založené na nich. Můžete například porovnávat součty napříč paralelními obdobími.

Někdy je těžké vědět, které funkce je potřeba použít ve vzorci. Power Pivot a návrhář tabulkového modelu v datových nástrojích SQL Server zahrnují funkci Vložit funkci, dialogové okno, které vám pomůže vybrat funkce podle kategorie a poskytne pro každou funkci krátký popis.

Vložit funkci

Vytvoříme nový vzorec, který obsahuje funkci, kterou vyberete pomocí funkce Vložit funkci:

Úkol: Přidání funkce do vzorce pomocí funkce Vložit

  1. V tabulce FactSales přejděte na sloupec nejvíce vpravo a potom v záhlaví sloupce klikněte na Přidat sloupec.

  2. Do řádku vzorců zadejte znaménko rovná se = .

  3. Klikněte na tlačítko Vložit funkci. Vložit funkci Tím se otevře dialogové okno Vložit funkci.

  4. V dialogovém okně Vložit funkci klikněte na seznam Vybrat kategorii. Ve výchozím nastavení je vybraná možnost Vše a všechny funkce v kategorii Vše jsou uvedené níže. To je spousta funkcí, takže budete chtít funkce filtrovat, abyste usnadnili vyhledání typu funkce, kterou hledáte.

  5. U tohoto vzorce chcete vrátit některá data, která už existují v jiné tabulce. K tomu budete používat funkci v kategorii Filtr. Pokračujte a klikněte na kategorii Filtr a potom v části Vyberte funkci posuňte se dolů apoklikejte na funkci SOUVISEJÍCÍ. Kliknutím na OK zavřete dialogové okno Vložit funkci.

  6. Pomocí IntelliSense můžete najít a vybrat sloupec DimChannel[ChannelName].

  7. Zavřete vzorec a stiskněte Enter.

  8. Po stisknutí klávesy Enter vzorec dokončíte, zobrazí se ve stavovém řádku podél dolní části okna Power Pivot výpočet. Teď uvidíte, že jste právě vytvořili nový sloupec v tabulce FactSales s informacemi o kanálu z tabulky DimChannel.

  9. Přejmenujte sloupec Kanál.

    Vzorec by měl vypadat takhle: =RELATED(DimChannel[ChannelName])

Právě jste se seznámili s další velmi důležitou funkcí jazyka DAX, která je funkce RELATED. Funkce RELATED vrátí hodnoty z jiné tabulky. Můžete použít RELATED za předpokladu, že mezi tabulkou, ve které právě jste, a tabulkou obsahující hodnoty, které chcete získat, existuje relace. Funkce RELATED má samozřejmě obrovské možnosti. V takovém případě teď můžete do tabulky FactSales zahrnout prodejní kanál pro každý prodej. Tabulku DimChannel teď můžete v seznamu polí kontingenční tabulky skrýt, což usnadňuje navigaci a zobrazuje jenom ty nejdůležitější informace, které opravdu potřebujete. Podobně jako dříve popsaná funkce CALCULATE je funkce RELATED velmi důležitá a pravděpodobně ji budete často používat.

Jak vidíte, funkce jazyka DAX vám můžou pomoct vytvářet velmi výkonné vzorce. Opravdu jsme se dotáhli jenom na základy funkcí. S vylepšováním dovedností jazyka DAX vytvoříte vzorce pomocí mnoha různých funkcí. Jedním z nejlepších míst, kde se dozvíte podrobnosti o všech funkcích jazyka DAX, je odkaz na výrazy dax (Data Analysis Expressions).

Rychlý přehled funkcí

  1. Na co funkce vždycky odkazuje?

  2. Může vzorec obsahovat více než jednu funkci?

  3. Jakou kategorii funkcí byste měli použít ke zřetězování dvou textových řetězců do jednoho řetězce?

Odpovědi najdete na konci tohoto tématu.

Kontext:

Kontext je jedním z nejdůležitějších konceptů jazyka DAX, který je třeba pochopit. V jazyku DAX existují dva typy kontextu. kontext řádku a kontext filtru. Nejdřív se podíváme na kontext řádku.

Kontext řádku

Kontext řádku se nejčastěji používá jako aktuální řádek. Pamatujete si třeba počítaný sloupec Okraje, který jste viděli dřív při učení o syntaxi? Vzorec =[SalesAmount] - [TotalCost] vypočítá hodnotu ve sloupci Okraj pro každý řádek v tabulce. Hodnoty pro každý řádek se počítají z hodnot ve dvou dalších sloupcích, [SalesAmount] a [TotalCost] ve stejném řádku. Jazyk DAX může vypočítat hodnoty pro každý řádek ve sloupci Okraj, protože má kontext: Pro každý řádek přebírá hodnoty ve sloupci [TotalCost] a odečte je od hodnot ve sloupci [SalesAmount].

Ve níže zobrazené vybrané buňce se hodnota 49,54 Kč v aktuálním řádku vypočítala odečtením hodnoty 51,54 Usd ve sloupci [TotalCost] od hodnoty 101,08 Kč ve sloupci [SalesAmount].

Kontext řádku v doplňku PowerPivot

Kontext řádku se nevztahuje jenom na počítané sloupce. Kontext řádku se taky použije pokaždé, když má vzorec funkci, která používá filtry k identifikaci jednoho řádku v tabulce. Funkce ze své podstaty použije kontext řádku pro každý řádek tabulky, přes který filtruje. Tento typ kontextu řádku se nejčastěji vztahuje na míry.

Kontext filtru

Kontext filtru je o něco obtížnější než kontext řádku. Kontext filtru si můžete nejsnáděši představovat takto: Jeden nebo více filtrů použitých při výpočtu, který určuje výsledek nebo hodnotu.

Kontext filtru neexistuje místo kontextu řádku. místo toho platí kromě kontextu řádku. Pokud chcete například dále zúžit hodnoty, které chcete zahrnout do výpočtu, můžete použít kontext filtru, který nejen určuje kontext řádku, ale také určuje pouze určitou hodnotu (filtr) v kontextu tohoto řádku.

Kontext filtru je snadno vidět v kontingenčních tabulkách. Když třeba přidáte totalcost do oblasti Hodnoty a potom přidáte rok a oblast do řádků nebo sloupců, definujete kontext filtru, který vybere podmnožinu dat na základě daného roku a oblasti.

Proč je kontext filtru pro jazyk DAX tak důležitý? Vzhledem k tomu, že kontext filtru se dá nejsnáz použít přidáním popisků sloupců a řádků a průřezů do kontingenční tabulky, můžete kontext filtru použít také ve vzorci jazyka DAX definováním filtru pomocí funkcí, jako jsou ALL, RELATED, FILTER, CALCULATE, relace a další míry a sloupce. Podívejme se například na následující vzorec v rozměru s názvem StoreSales:

Vzorec

Je zřejmé, že tento vzorec je složitější než některé z ostatních vzorců, které jste viděli. Abychom ale lépe porozuměli tomuto vzorci, můžeme ho rozdělit, stejně jako jsme to udělali s jinými vzorci.

Tento vzorec obsahuje následující prvky syntaxe:

  1. Název míry StoreSales a dvojtečka :.

  2. Operátor znaménka rovná se (=) označuje začátek vzorce.

  3. Funkce CALCULATE vyhodnotí výraz jako argument v kontextu upraveném zadanými filtry.

  4. Závorka () obklopuje jeden nebo více argumentů.

  5. Míra [Prodej] ve stejné tabulce jako výraz Míra Prodej má vzorec: =SUMA(FactSales[SalesAmount]).

  6. Každý filtr odděluje čárka (;).

  7. Odkazovaný sloupec a konkrétní hodnota DimChannel[ChannelName] ="Store" jako filtr.

Tento vzorec zajistí, aby se pro řádky ve sloupci DimChannel[ChannelName] s hodnotou "Store" (Úložiště) ve sloupci DimChannel[ChannelName] vypočítali jenom hodnoty prodejů definované jako filtr.

Jak si dovedete představit, schopnost definovat kontext filtru ve vzorci má nesmírnou a výkonnou schopnost. Jedním z příkladů je možnost odkazovat jenom na určitou hodnotu v související tabulce. Nebojte se, pokud kontextu úplně nerozumíte hned. Při vytváření vlastních vzorců lépe pochopíte kontext a důvody, proč jsou v jazyku DAX tak důležité.

Kontextová rychlá žádanka

  1. Jaké jsou dva typy kontextu?

  2. Co je kontext filtru?

  3. Co je kontext řádku?

Odpovědi najdete na konci tohoto tématu.

Shrnutí

Teď, když máte základní znalosti nejdůležitějších konceptů jazyka DAX, můžete začít vytvářet vzorce jazyka DAX pro počítané sloupce a míry samostatně. Jazyk DAX může být opravdu trochu složitější, ale máte k dispozici mnoho zdrojů. Po několika přečtení tohoto tématu a experimentování s několika vlastními vzorci se můžete dozvědět víc o dalších konceptech a vzorcích jazyka DAX, které vám pomůžou vyřešit vaše vlastní obchodní problémy. V nápovědě k aplikaci Power Pivot, SQL Server Books Online, white papers a blogech od Microsoftu i předních odborníků bi je k dispozici mnoho zdrojů daxu. The DAX Resource Center Wiki (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) is a great place to start. Skvělým zdrojem je také odkaz na výrazy dax (Data Analysis Expressions). Nezapomeňte si ho uložit do oblíbených položek.

Jazyk DAX v dokumentu whitepaper bi tabulkového modelu, který je k dispozici ke stažení (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) poskytuje podrobnější pohled na koncepty, které jsme tady představili, a mnoho dalších pokročilých konceptů a vzorců. Tento dokument whitepaper také používá stejný ukázkový sešit Contoso DAX Formulas.xlsx sešitu, který už máte.

QuickQuiz Answers

Syntaxe:

  1. Otevře funkci Vložit funkci.

  2. Hranaté závorky [].

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

Funkce:

  1. Tabulka a sloupec.

  2. Ano. Vzorec může obsahovat až 64 vnořených funkcí.

  3. Textové funkce.

Kontext:

  1. Kontext řádku a kontext filtru

  2. Jeden nebo více filtrů ve výpočtu, který určuje jednu hodnotu.

  3. Aktuální řádek

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×