Zobrazení filtrovaných položek ve vizuálu v Power BI

Úvodní obrázek

Pokud v reportu používáme průřezy s větším počtem položek, může nastat situace, kdy je z důvodu větší přehlednosti výhodné zobrazit výpis filtrovaných hodnot v samostatném vizuálu. Toho můžeme docílit vytvořením měřítka, ve kterém si do jednoho textového řetězce vložíme všechny filtrované hodnoty.

Příklad zobrazení filtrovaných položek ve vizuálu

Jednoduchý příklad si můžeme vytvořit v souboru Adventure Works DW 2020.pbix, který je volně dostupný ke stažení na internetu. Soubor s řešením si pak můžete stáhnout níže pod tímto článkem.

V Power BI souboru můžeme pro příklad použít v Průřezu státy z tabulky 'Customer'. Do vizuálu Tabulka pak vložíme města ze stejné tabulky, spolu se sumou prodejů s tabulky 'Sales'. Výchozí report může vypadat následovně.

Zobrazení filtrovaných položek ve vizuálu v Power BI

V průřezu jsou na levé straně reportu jsou vybrané pouze určité státy. Států je ale k dispozici více, než je zobrazeno v průřezu, který obsahuje také posuvník pro zobrazení dalších položek. Na první pohled tak není zřejmé, které všechny státy jsou v průřezu vybrané.

Zobrazit si státy vybrané v průřezu můžeme v jiném vizuálu, do kterého vložíme následující měřítko.

Měřítko:

Filtrované státy =
"Filtrované státy: " &
UNICHAR(10) &
IF
(
    ISFILTERED(Customer[State-Province]),
    CONCATENATEX
    (
        VALUES(Customer[State-Province]),
        Customer[State-Province],
        ", "
    ),
    "Všechny státy"
)

Funkce ISFILTERED() v prvním argumentu funkce IF() vrací TRUE v případě, že je pole uvedené v argumentu této funkce přímo filtrované. Iterační funkce CONCATENEX() následně projde všechny  státy dostupné v aktuálním kontextu vyhodnocení a spojí je jednoho textového řetězce. Pokud je položek více, jsou položky odděleny čárkou s mezerou. Pokud funkce ISFILTERED() vrátí hodnotu FALSE, funkce IF() vrátí hodnotu "Všechny státy". Takto vytvořené měřítko můžeme vložit do vizuálu Karta a zobrazit si, které státy jsou ve skutečnosti vybrané v průřezu.

Zobrazení filtrovaných položek ve vizuálu v Power BI 2

Jak je možné vidět na obrázku výše, v průřezu jsou vybrané také státy, které jsme dříve neviděli, protože jsou vybrané až pod zobrazenými státy v průřezu. Nedostatkem takto definovaného měřítka je, že nevrací názvy států v abecedním pořadí. Výpočet proto ještě můžeme doplnit o řazení podle názvu státu.

Měřítko:

Filtrované státy (Abecedně seřazené) =
"Filtrované státy: " &
UNICHAR(10) &
IF
(
    ISFILTERED(Customer[State-Province]),
    CONCATENATEX
    (
        VALUES(Customer[State-Province]),
        Customer[State-Province],
        ", ",
        Customer[State-Province],
        ASC
    ),
    "Všechny státy"
)

K nastavení správného řazení je použitý sloupec Customer[State] ve vzestupném pořadí, jak je možné vidět ve čtvrtém a pátém argumentu funkce CONCATENATEX(). Report pak vypadá opět o něco více přehledněji. 

Zobrazení filtrovaných položek ve vizuálu v Power BI 3

Pokud nevybereme v průřezu se státy žádnou položku, měřítko zobrazí alternativní výsledek.

Zobrazení filtrovaných položek ve vizuálu v Power BI 4

Pokud bychom do reportu vložili další průřez, například s kalendářními roky, mohli bychom rozšířit definici měřítka o položky filtrované také v tomto průřezu.

Zobrazení filtrovaných položek z více průřezů

Pro zobrazení filtrovaných hodnot z více průřezů pouze spojíme výsledky dvou podobných výpočtů do jednoho textového řetězce. Hodnoty z obou průřezů jsou odděleny oddělovačem řádků UNICHAR(10), aby se ve vizuálu položky z každého průřezu zobrazovaly na samostatném řádku.

Měřítko:

Filtrované státy a roky =
"Filtrované státy: " &
IF
(
    ISFILTERED(Customer[State-Province]),
    CONCATENATEX
    (
        VALUES(Customer[State-Province]),
        Customer[State-Province],
        ", ",
        Customer[State-Province],
        ASC
    ),
    "Všechny státy"
)
&
UNICHAR(10)
&
"Filtrované roky: " &
UNICHAR(10) &
IF
(
    ISFILTERED('Date'[Rok]),
    CONCATENATEX
    (
        VALUES('Date'[Rok]),
        'Date'[Rok],
        ", ",
        'Date'[Rok],
        ASC
    ),
    "Všechny roky"
)

Nové měřítko můžeme vložit do původního vizuálu Karta. Pokud do reportu přidáme další Průřez s roky, ve kterém vybereme pouze několik hodnot, výsledek může vypadat následovně.

Zobrazení filtrovaných položek ve vizuálu v Power BI 5

Na obrázku výše je možné vidět výsledek měřítka ve vizuálu Karta, který zobrazuje filtrované položky vybrané uživatelem reportu v obou průřezech.

Shrnutí

Na této jednoduché ukázce je možné vidět, že pomocí jazyka DAX můžeme rozšiřovat reporty o další informace, které nejsou běžně k dispozici v Power BI vizuálech. Další příklady výpočtů pomocí jazyka můžete najít na stránce DAX - Příklady

č. 11

Komentáře