Dynamické názvy vizuálů v Power BI

Dynamické názvy vizuálů v Power BI

V Power BI je u vybraných vizuálů k dispozici možnost sestavit nadpisy a podnadpisy dynamicky na základě výpočtu v měřítku. Díky tomu můžeme ve vizuálech jednoduše zobrazovat další dodatečné informace, jako jsou například souhrny, vnější filtry působící na vizuál, KPI ukazatele a tak dále. Tento příspěvek obsahuje příklad vytvoření dynamických nadpisů, které budou zobrazovat aktuální vnější filtry působící na vizuál a souhrnnou částku složenou s dílčích hodnot zobrazených v grafu.

K tomuto tématu je k dispozici také video.

Příklad vytvoření dynamického názvu vizuálu

V příkladu v tomto příspěvku budeme pracovat se cvičným Power BI souborem Adventure Works DW 2020.pbix, který je volně dostupný ke stažení na internetu. Soubor s řešením si můžete stáhnout pod odkazem uvedeným níže pod tímto článkem. V použitém souboru je navíc vytvořené měřítko [Prodeje], které má následující definici.

Měřítko:

Prodeje = SUM(Sales[Sales Amount])

Měřítko [Prodeje] vrací sumu za prodané produkty v aktuálním kontextu vyhodnocení. Ve výchozím reportu si můžeme toto měřítko zobrazit ve Skupinovém sloupcovém grafu, kde na osu X vložíme státy, ze kterých pocházejí jednotlivý zákazníci.

Dynamické názvy vizuálů v Power BI 2

Na obrázku výše jsou zobrazené také dva průřezy, které jsou součástí reportu a ve kterých si uživatel reportu může nastavit filtry, které budou ovlivňovat hodnoty v zobrazeném grafu. První průřez obsahuje roky z kalendářní tabulky. Druhý průřez obsahuje kategorie produktů. V prvním příkladu si ukážeme, jak v hlavním nadpisu zobrazit souhrnnou sumu za prodané produkty za všechny státy. Ve druhém příkladu si ukážeme, jak zobrazit v podnadpisu položky vybrané v průřezech, aby mohl uživatel na první pohled vidět, jaké vnější filtry ovlivňují hodnoty v zobrazeném grafu. Výsledný vizuál pak může vypadat například následovně.

Dynamické názvy vizuálů v Power BI 3

Na obrázku výše můžeme v nadpisu grafu vidět sumu za prodeje přes všechny státy. Tato souhrnná částka se skládá ze všech dílčích částek zobrazených v grafu na ose X. V podnadpisu jsou pak zobrazeny filtry vybrané v průřezech a jedná se tedy o filtry, které ovlivňují výsledné hodnoty zobrazené v grafu.

Zobrazení celkové částky v nadpisu vizuálu

U každého nadpisu u vizuálu máme ve formátovacím panelu k dispozici textové pole, do kterého můžeme vložit libovolný text. U některých vizuálů je nově k dispozici také tlačítko "fx", pomocí kterého můžeme nastavit název vizuálu dynamicky na základě hodnoty pole.

Jako pole určené pro nastavení názvu můžeme vybrat jakýkoliv sloupec nebo měřítko, které vrací hodnotu ve formátu STRING. V případě použití sloupce pro nastavení nadpisu musíme ještě určit, zda v aktuálním kontextu chceme vybrat první nebo poslední hodnotu pro případ, kdy by ve vybraném sloupci bylo k dispozici v aktuálním kontextu více hodnot.

Daleko praktičtější tak ve většině případů bude vytvoření dynamického nadpisu pomocí měřítka, kde budeme mít plnou kontrolu nad zobrazenými hodnotami. Jak už bylo uvedeno výše, při tvorbě měřítka, které je určené pro zobrazení hodnot v nadpisech nebo podnadpisech musíme myslet na to, že měřítko musí vracet hodnotu ve formátu STRING. 

Pro zobrazení celkových prodejů v nadpisu tak můžeme použít nepřímo měřítko [Prodeje], ale před jeho zobrazením musíme číselnou hodnotu měřítka převést na textový řetězec pomocí funkce FORMAT(). Měřítko určené pro zobrazení celkové hodnoty prodejů v nadpisu tak může vypadat například následovně.

Měřítko:

Nadpis = "Prodeje: " & FORMAT([Prodeje], "Currency", "cs-CZ")

Měřítko [Nadpis] bude vracet sumu za prodané produkty v aktuálním kontextu vyhodnocení, převedenou na STRING ve formátu měna. Protože je měřítko určené pro zobrazení v nadpisu, je před samotnou částku vložen text s informací, že se jedná o hodnotu prodejů.

Nyní, když máme připravené měřítko pro nadpis, zbývá toto měřítko přiřadit do příslušného pole ve vizuálu. Tlačítko pro nastavení nadpisu na základě podmíněného formátu se nachází ve formátovacím panelu pod nastavením Název, vedle pole určeného pro vložení textu.

Dynamické názvy vizuálů v Power BI 4

Po kliknutí na tlačítko "fx" se zobrazí dialogové okno, kde stačí vybrat dříve vytvořené měřítko [Nadpis], určené pro dynamické nastavení názvu vizuálu.

Dynamické názvy vizuálů v Power BI 5

Po výběru měřítka určeného pro nastavení nadpisu a potvrzení kliknutím na tlačítko "OK" bude nadpis vizuálu tvořit hodnota měřítka [Prodeje], která se bude dynamicky měnit v případě změny filtrů nastavených v průřezech nebo jiných vizuálech, které ovlivňují hodnoty v grafu. Pokud vybereme v průřezu s roky pouze rok 2018, nadpis bude zobrazovat hodnotu prodejů pouze za rok 2018, a tato hodnota odpovídá součtu jednotlivých dílčích hodnot zobrazených v grafu na ose X.

Dynamické názvy vizuálů v Power BI 6

Pokud v průřezu s roky vybereme ještě rok 2019, a v průřezu s kategoriemi produktů vybereme kategorie "Clothing" a "Bikes", celý graf se přepočítá, včetně nadpisu.

Dynamické názvy vizuálů v Power BI 7

Nevýhodou takto vytvořeného reportu je, že v případě vícenásobného výběru položek v průřezech nad grafem může uživatel ztratit přehled, které konkrétní hodnoty jsou v průřezech vybrané a v jakém kontextu jsou hodnoty v grafu vyhodnoceny.

Zobrazení vnějších filtrů v podnadpisu

K zobrazení vybraných položek v průřezech si vytvoříme další pomocné měřítko, ve kterém budeme zřetězovat do jednoho textové řetězce všechny vybrané hodnoty z obou průřezů. Toto měřítko si následně zobrazíme v podnadpisu, aby měli uživatelé reportu vždy přehled, za jaké období a pro jaké kategorie produktů jsou hodnoty v grafu spočítány.

Měřítko určené pro podnadpis může vypadat například následovně.

Měřítko:

Podnadpis =
"Roky: " &
IF
(
    ISFILTERED('Date'[Rok]),
    CONCATENATEX
    (
        VALUES('Date'[Rok]),
        'Date'[Rok],
        ", "
    ),
    "Všechny roky"
)
&
UNICHAR(10)
&
"Kategorie: " &
IF
(
    ISFILTERED('Product'[Category]),
    CONCATENATEX
    (
        VALUES('Product'[Category]),
        'Product'[Category],
        ", "
    ),
    "Všechny kategorie"
)

Logika výše zobrazeného výpočtu je podrobně popsána ve starším příspěvku z doby, kdy ještě nebyla k dispozici možnost vytvořit názvy vizuálů dynamicky, a k zobrazení aktivních filtrů bylo nutné používat samostatné vizuály.

Postup pro nastavení podnadpisu na základě hodnoty měřítka je stejný jako v případě nadpisu. V prvním kroku klikneme na tlačítko "fx" vedle textové pole určeného pro podnadpis.

Dynamické názvy vizuálů v Power BI 8

Následně v dialogovém okně vybereme dříve vytvořené měřítko s názvem [Podnadpis].

Dynamické názvy vizuálů v Power BI 9

Po potvrzení nastavení v dialogovém okně jsou nyní v podnadpisu zobrazeny vybrané hodnoty v průřezech nad grafem.

Dynamické názvy vizuálů v Power BI 10

Pokud v průřezech nad grafem změníme výběr, přepočítají se jak hodnoty zobrazené v grafu na ose X, tak hodnota v nadpisu a změní se také podnadpis, který obsahuje položky aktuálně vybrané v průřezech.

Dynamické názvy vizuálů v Power BI 11

Stejným způsobem můžeme v nadpisech a podnadpisech vizuálu zobrazovat jakékoliv jiné hodnoty, v souladu s požadavky uživatelů reportů. Vždy je pouze potřeba myslet na to, že měřítko určené pro nastavení dynamických názvů musí vracet jeden textový řetězec. Tento textový řetězec ale může obsahovat také různé značky, smajlíky nebo netisknutelné znaky, podobně jako v předchozím příkladu, kde jsou roky a kategorie odděleny v podnadpisu oddělovačem řádků pomocí funkce UNICHAR().

Další příklady můžete najít na stránce DAX příklady nebo na stránce Power BI. Všechny publikované návody ve formě videí jsou k dispozici na mém Youtube kanále.

Stáhnout soubor s řešením.
č. 80

Komentáře