• 6.7.2018
  • Ing. Jan Zedníček - Data Engineer & Controlling
  • 3

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

Hierarchie v Power BI - zdrojová tabulka

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

Hierarchie v Power BI - průběžný výsledek

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:

Hierarchie v Power BI - vytvoření členů hierarchie

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

Hierarchie v Power BI - Vytvoření nového pole

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:

Power BI hierarchie - finální report

5/5 - (1 vote)

Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 Přihlašte se do naší Excel facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse »

3 comments on “SQL Hierarchie Díl 5 – Jak na hierarchie v Power BI

  1. 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ů.

    1. 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

      1. 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í.

Leave a Reply

Your email address will not be published. Required fields are marked *