Calculation groups
Znáte ten stav, kdy počítáte jednu a tu samou metriku pro jednotlivé ukazatele v modelu mnohokrát dokola?
Například kumulovaný součet, kdy jednou je potřeba kumulovaný součet za posledních dvanáct měsíců pro počet objednávek, cenu objednávek a například expedovanou hmotnost objednávek.
Obvyklý postup je ten, že si pro každý ze zmíněných ukazatelů vyrobíte separátní metriku.
CALCULATE (
[Cena],
FILTER (
ALLSELECTED ( 'DateKey'[Date] ),
'DateKey'[Date] > EOMONTH ( MAX ( 'DateKey'[Date] ), -12 )
&& 'DateKey'[Date] <= EOMONTH ( MAX ( 'DateKey'[Date] ), 0 )
)
)
V tento okamžik byste tedy vyrobili tři metriky. Pokud by vyvstal požadavek na další metriku, která by byla ve stylu kumulovaného součtu za posledních dvanáct měsíců, tak by bylo nezbytné celou metriku vytvořit znovu.
Tento postup vede k tomu, že v modelu začne být velká řada té samotné metriky, kdy se mění jen jedna část výpočtu.
Jde to jinak?
Ano! V Power BI světě existuje možnost, jak si připravit jednotný výpočet, do kterého se budou jen dosazovat metriky, pro které se má výpočet aplikovat. Bohužel tato možnost se nenachází přímo v Power BI Desktop ale v externím nástroji, který se jmenuje Tabular Editor a konkrétní funkce, která vám pomůže dosáhnout tohoto předpřipraveného výpočtu se nazývá Calculation Groups.
Jak připravit Calculation Groups?
Vytvoření Calculation Group
V první řadě je nutné mít Tabular Editor nainstalovaný. Když si otevřete připravovaný soubor v Power BI Desktop, tak v záložce External Tools můžete Tabular Editor otevřít. Ten se tímto způsobem otevře rovnou připojený na model. V levém výpisu si můžete všimnout složek, které se k modelu vážou. Mezi složkami se nachází jedna, která se jmenuje „Tables“. Pokud na tuto složku kliknete pravým tlačítkem myši, pak můžete z výběrové nabídky zvolit již zmíněné Calculation Groups.
Po vybrání této volby do modelu přibude nová tabulka, kterou si můžete pojmenovat dle svého uvážení.
Vytvoření Calculation Item
Pokud si zobrazíte obsah této tabulky, tak zjistíte, že se v ní nachází Calculation Items. Jde o složku, do které budeme vkládat námi požadované postupy výpočtů, které se mají používat pro požadované metriky. Kliknutím pravým tlačítkem myši na Calculation Items můžete vytvořit první Calculation Item.
Stejně jako u předešlého kroku si tento Item můžete pojmenovat dle svého uvážení. Název by však měl být výstižný, neboť pak bude vidět v rámci vizuálů v Power BI. Já jsem v tuto chvíli vytvořil první Item s názvem „Running Total 12M“.
Přiřazení DAX kódu do Itemu
Můžete si všimnout, že v pravé části Tabular Editoru se rozsvítil Expression Editor, do kterého je možno začít zapisovat. V první části článku jsem uvedl DAX kód pro výpočet Running Totalu 12M aplikovaný na ceně objednávky. Vezmu si z něj celý DAX kód, který se nachází na znakem „rovná se“ a vložím ho do Expression Editoru.
Expression Editor zabarvil jednotlivé DAX funkce modře, aby bylo možné se v nich lépe orientovat. Takto provedený zápis by vám ještě neposloužil v tom stylu, jak je požadováno. Aby bylo možné získat požadovaný výsledek, tak je nezbytné dosadit funkci SELECTEDMEASURE() na místo aktuálně pevně napsaného ukazatele [cena]. Upravený zápis bude vypadat následovně:
Výsledek je nutné uložit. To můžete provést pomocí CTRL + S.
Jak se aplikuje Calculation Groups v Power BI?
Objeví se vám hláška, že jedna nebo více počítaných skupin potřebuje aktualizovat a Power BI vás vyzve k okamžitému provedení aktualizace.
Jakmile se aktualizace provede, tak se mezi tabulkami objeví nová tabulka, která bude obsahovat pouze jeden sloupec s názvem „Name“.
Jak mohu vytvořenou skupinu využít?
Vytvořenou skupinu lze aplikovat v libovolném vizuálu. Já pro demonstraci využiji vizuál Matrix. Takto vytvořenou skupinu jsem vložil do řádků, do pole pro sloupce jsem vložil sloupce Rok a Měsíc z tabulky DateKey. Do pole pro hodnoty jsem pak vložil ukazatele, pro které chci, aby se Running Total 12M aplikoval.
Znamená to, že musím pro každý takový výpočet vytvořit novou Calculation Groups?
To rozhodně ne! Jediné, co mi stačí, je vytvořit další Calculation Item ve složce Items, doplnit požadovaný kód a ten upravit ve stejném stylu, jako již ukázaná funkce Running Total 12M. Například TotalYTD.
V tu chvíli, kdy uložíte Tabular Editor a aplikujete změny v Power BI, tak si můžete všimnout, že se námi vytvořený Matrix samovolně upraví. Respektive se rozšíří o vytvořený Item.
Jak vyřešit, když chcete stále zobrazovat jen konkrétní výpočetní Item? Stačí dát sloupec z Calculation Groups do filtrů a vybrat konkrétní metriku. Stejně tak je možné tento sloupec vložit do vizuálu Průřez a využít pro zobrazení konkrétního detailu s uživatelskou možností přepínat metriky.