Mánie kolem hierarchií zde na webu bude pomalu končit. Za sebou mame 5 dílů a o hierarchiích víme snad úplně vše. Zopakovali jsme jak vytvořit kvalitní hierarchii v SQL tabulce, jak se do hierarchií dotazovat a jak je reportovat v SSRS. Zbývá ještě probrat hierarchie v Power BI. Tam totiž neexistuje tak kvalitní nativní podpora hierarchí jako v SSRS a musí se data upravit v jazyce DAX, ale není to žádná těžká věc, tak dem na věc.
Jak reportovat hierarchie v Power BI + úprava dat v DAX
Budu pracovat s tabulkou “zamestnanci”, kteoru jsem si vytvořil v rámci 1. dílu o hierarchiích – Jak správně vytvořit parent-child strukturu v tabulce. Tabulka obsahuje zaměstnance a jejich nadřízené.
1) Vytvoříme si v Power BI desktop report a nahrajeme si jako zdroj tabulku zamestnanci
2) Vytvoříme si v reportu tabulku a zkontrolujem průběžný výsledek – záznamy máme pod sebou, což nechceme – chceme vytvořit stromovou strukturu
3) Přejdeme nad zdrojovou tabulku a vytvoříme si členy hierarchie
- Nejprve si vytvoříme cestu, sloupec nazvu path_id_zamestnanec. Dax vzorec pro tento sloupec bude vypadat takto: Path_id_zamestnanec = PATH ( zamestnanci[id_zamestnanec]; zamestnanci[id_nadrizeny] )
- Tuto cestu použijeme pro vytvoření dalších 3 sloupců (máme 3 úrovně hierarchie – ředitel, manažer, zaměstnanec). Pro úroveň 1 bude vzorec vypadat takto: Uroven_1 = LOOKUPVALUE(zamestnanci[jmenoprijmeni];zamestnanci[id_zamestnanec];VALUE(PATHITEM ( zamestnanci[Path_id_zamestnanec]; 1 )))
- Po úspěšném provedení bychom se měli dostat do následujícího stavu:
4) Na úrovni reportu vytvoříme nové pole s hierarchií – Zaměstnanci a sestavíme ho jako na obrázku níže: uroven_1 -> uroven_2 -> uroven_3
4) V reportu přejdeme na tabulku a jako řádky vybereme pole s hierarchií z předchozího bodu. Na úrovni filtrů (uroven_1, uroven_2, uroven_3) nastavíme zobrazování neprázdných hodnot a je hotovo:
Dobrý den,
pěkné řešení pro Power BI. Ale předpokládá to hierarchii s shodnou hloubkou úrovní.
Jak se dá řešit hierarchie, kde nejsou shodné koncové úrovně?
Pak při další úrovni vzniká prázdné pole, kde se tato úroveň nenachází. A zapnutím filtru na všech úrovních způsobí zmizení některých uzlů.
Zdravím, je to tak…bohužel power bi zatím neumí rekurzivní zpracování hierarchie tak jako to umí třeba SSRS. Stále existují scénáře, kde si dokáže SSRS poradit lépe – třeba tento nebo třeba řízení visibility objektů. Řekl bych ale, že se brzy nějaké funkcionality dočkáme, do té doby je potřeba tvořit hierarchie na stejné hloubce tak, že některé ulzy zkátka zopakujete nkrát. Snad mi nějaký jiný workaround neušel, o žádném jiném nevím
Dík za info. To mě taky napadlo. Vypadá to bohužel dost divoce.
Mám 5 úrovní, dva uzly z 30 končí hned v druhé úrovni. Takže pro tyto dva ve všech dalších mám stejné názvy. Pro uživatele může být velmi matoucí.
Ale pořád to vypadá lépe, než aby tam všude bylo v dalších 3 úrovních jen hodnota (prázdné).
Tak se smíříme a budeme čekat, kdy MS dodá i lepší řešení pro Slicery a Matice ve spojení s Hierarchií.