Tento příspěvek obsahuje příklady s použitím měřítka jako filtru vizuálů. Tato funkcionalita není v Power BI reportech příliš často používána, nicméně skrývá v sobě velký potenciál. Filtrování vizuálů pomocí měřítek může zahrnovat širokou škálu filtrovacích podmínek, od velmi jednoduchých po extrémně komplexní, díky čemuž můžeme ovlivňovat, které hodnoty uvidíme v řádcích nebo na osách vizuálů.
K tomuto tématu je k dispozici také video.
Všechny příklady v tomto příspěvku jsou vytvořeny ve cvičném Power BI souboru Adventure Works DW 2020.pbix, který je volně dostupný ke stažení na internetu. Soubor s řešením je dostupný ke stažení níže pod tímto příspěvkem.
V použitém Power BI souboru je navíc přidané měřítko [Prodeje], které má následující definici.
Měřítko:
V příkladech budeme pracovat se státy a zákazníky. Na stránku reportu si tak na začátek můžeme vložit vizuál Matice, kde do řádků vložíme státy a zákazníky z tabulky 'Customer', a do hodnot měřítko [Prodeje].
Nyní máme vše připraveno a můžeme začít s prvním příkladem.Jednoduchý filtr vizuálu pomocí měřítka
Začít můžeme velmi jednoduchým příkladem, ve kterém nastavíme filtr pomocí měřítka staticky na předem pevně danou hodnotu. Představme si například situaci, ve které bychom chtěli ve vizuálu vidět pouze ty zákazníky, kteří utratili za nákup produktů částku větší než je 8 390,00.
V prvním kroku si označíme vizuál, který chceme filtrovat. Do volného pole v postranním panelu filtrů následně vložíme měřítko [Prodeje], pomocí kterého budeme vizuál filtrovat.
Po přidání měřítka se vytvoří nové okno s možností nastavení filtru. Jako filtrovací pravidlo v tomto nově vytvořeném okně vybereme v možnost "je větší než", a dále zadáme hodnotu pro filtr, a to částku 8 390,00. Po vytvoření podmínky je ještě nutné potvrdit filtr kliknutím na tlačítko "Použít filtr".Výsledkem bude vizuál Matice zafiltrovaný pouze na ty zákazníky, kteří utratili za nákupy částku větší než 8 390,00.Zákazníci, kteří pro které vrací měřítko [Prodeje] hodnotu menší než je hodnota zadaná ve filtru se vůbec nezobrazují. Také částky v mezisoučtech řádků a v řádku souhrnů obsahují hodnoty odpovídající pouze prodejům zobrazených zákazníků, tedy zákazníků, kteří splňují podmínku filtru.
Měřítko, které chceme použít pro filtr vizuálů, nemusí být v samotném vizuálu vůbec zobrazeno. Pokud tedy z vizuálu Matice odebereme měřítko [Prodeje], řádky vizuálu budou stále filtrovány na základě filtru nastaveného v postranním panelu.
Nyní, i když není měřítko [Prodeje] přímo součástí vizuálu na obrázku výše, je toto měřítko stále použité jako filtr. Ve vizuálu se proto stále zobrazují pouze ti zákazníci, kteří utratili za nákupy produktů alespoň 8 390,00.
Takto vytvořený vizuál není z analytického pohledu sám o sobě příliš zajímavý. Z pohledu tvorby reportů je ale tato vlastnost velmi důležitá. Díky této vlastnosti si můžeme vytvořit měřítko, které bude určené pouze pro nastavení filtru, ale nemusí zobrazovat žádné validní hodnoty, které by měli význam pro uživatele reportů. Takové "filtrovací" měřítko si vytvoříme v následujícím příkladu.Nejdříve si ale ještě můžeme ukázat, jak případně filtr vizuálu pomocí měřítka zrušit nebo odstranit.
Pokud bychom chtěli filtr vizuálu nastavený v postranním panelu zrušit, stačí v nastavení filtru kliknout na tlačítko "Vymazat filtry" nebo úplně odebrat měřítko z panelu filtrů.
Kliknutím na ikonu s gumou vymažeme nastavené podmínky pro filtr. Kliknutím na ikonu křížku odstraníme úplně měřítko z panelu filtrů, a nastavený filtr bude z vizuálu také odebrán.Nyní po odstranění filtru jsou ve vizuálu zobrazeni opět všichni zákazníci. Tento jednoduchý příklad slouží pouze jako úvod do filtrování vizuálů pomocí měřítek. V následující části příspěvku je popsán příklad, ve kterém budeme tvořit speciální měřítko pouze za účelem filtrování vizuálu. Toto měřítko bude obsahovat celou logiku filtru, včetně možnosti ovlivnění výsledku filtru pomocí číselného parametru přímo v reportu.Příklad použití měřítka pro filtr hodnot v řádcích vizuálu
V předcházejícím příkladu jsme si ukazovali, jak nastavit filtr pomocí měřítka, kde byla hranice filtru pevně daná na základě předem stanovené hodnoty. Problémem takto vytvořeného filtru je, že v jednom státě mohou takto definovanou podmínku splňovat stovky zákazníků, a jiném státě žádný, protože zkrátka žádný zákazník z daného státu nenakoupil zboží za částku nastavenou ve filtru. Pomocí měřítka si však můžeme vytvořit i jiný, více dynamický filtr, který bude v každém státě zobrazovat stejný počet nejlepších zákazníků.
Představme si například situaci, kdy bychom ve vizuálu chtěli zobrazovat pouze určitý počet těch nejlepších zákazníků v každém státě. Počet zobrazených zákazníků se však může měnit v závislosti na volbě, kterou uživatel provede v průřezu. Kritériem pro hodnocení zákazníků může být opět měřítko [Prodeje], tedy suma, kterou zákazníci utratili za nákupy produktů. Takto popsaný report může vypadat například následovně.
Na obrázku výše je v průřezu vybrána hodnota 3. Ve vizuálu jsou pak zobrazení v každém státě pouze tři nejlepší zákazníci z pohledu sumy utracené za nákupy produktů. Pokud v průřezu vybereme například číslo 5, zobrazí se pro každý stát pět nejlepších zákazníků.Celé řešení takto vytvořeného filtru se skládá ze čtyř na sebe navazujících kroků. Prvním krokem bude vytvoření pořadí jednotlivých zákazníků podle sumy utracené za nákupy produktů. V druhém kroku si vytvoříme číselný parametr, kterým bude možné ovlivňovat počet zobrazených zákazníků ve vizuálu. Následně si vytvoříme měřítko, které bude obsahovat jednoduchou podmínku, a to porovnání, zda je pořadové číslo zákazníka menší nebo rovno hodnotě vybrané v číselném parametru. Na základě takto vytvořeného měřítka následně nastavíme filtr v postranním filtrovacím panelu tak, aby se zobrazovali ve vizuálu pouze ti zákazníci, kteří budou splňovat podmínku definovanou ve filtrovacím měřítku.Celé řešení by bylo možné vytvořit jednoduše v jednom měřítku, nicméně z důvodů lepší vizualizace mezivýpočtů půjdeme krok po kroku. Začít můžeme vytvořením pořadí jednotlivých zákazníků v každém státě.
1. Pořadí zákazníků podle prodejů
Začneme opět od vizuálu Matice, ve kterém jsou v řádcích státy a zákazníci z tabulky 'Customer', a v hodnotách měřítko [Prodeje].
Měřítko, které bude vracet pořadové číslo každého zákazníka v rámci státu, ze kterého pochází, bude vypadat následovně.Měřítko:
Nové měřítko si můžeme vložit do připraveného vizuálu a podívat se na jeho výsledek.
Měřítko [Pořadí] vrací číslo jedna pro nejlepšího zákazníka v daném státě, číslo dvě pro zákazníka na druhém místě v pořadí, a tak dále. Dalším krokem v tomto příkladu bude vytvoření číselného parametru, pomocí kterého bude později možné vybrat, kolik nejlepších zákazníku chceme ve vizuálu pro každý stát zobrazit.2. Vytvoření číselného parametru
Vytvořit číselný parametr můžeme kliknutím na kartu "Modelování", kde vybereme možnost "Nový parametr" a "Číselný rozsah".
Následně se otevře dialogové okno, kde můžeme parametr nadefinovat. Parametr si můžeme pojmenovat "Počet zákazníků", a nadefinovat jednotlivé hodnoty následujícím způsobem.Pokud necháme zatržené políčko "Přidat průřez na tuto stránku", vytvoří se spolu s parametrem automaticky také průřez, ve kterém můžeme vybrat hodnotu parametru pomocí posuvníku nebo zadáním hodnoty do pole hodnot.Součástí nového parametru je také automaticky vytvořené měřítko [Hodnota parametru Počet zákazníků], které bude vracet aktuálně vybranou hodnotu v průřezu.Toto měřítko si můžeme přidat do vizuálu Matice a ověřit si, že vrací aktuálně vybranou hodnotu v průřezu.Dalším krokem bude vytvoření měřítka, které následně použijeme jako filtr vizuálu.3. Vytvoření měřítka pro filtr
Měřítko určené pro filtr vizuálu bude obsahovat podmínku, které bude vracet pravdu v případě, že hodnota měřítka [Pořadí] je menší nebo rovna hodnotě měřítka [Hodnota parametru Počet zákazníků]. Vizuál pak budeme filtrovat pouze na ty řádky, ve kterých bude tato podmínka splněna.
Měřítko:
Podmínka v měřítku [Zobrazit zákazníka] je vložena do funkce INT(), která převede výslednou hodnotu TRUE na číslo 1 v případě splnění podmínky, a hodnotu FALSE na číslo 0 v případě nesplnění podmínky. Nové měřítko [Zobrazit zákazníka] si můžeme vložit do našeho vizuálu a zobrazit si výsledek.
Jak je možné vidět na obrázku výše, měřítko [Zobrazit zákazníka] vrací hodnotu 1 pro řádky, které splňují podmínku a které budeme chtít zobrazovat ve vizuálu. Zákazníci, pro které vrací měřítko [Zobrazit zákazníka] hodnotu 0 budeme odfiltrovávat. Dalším krokem bude přesunutí měřítka [Zobrazit zákazníka] do postranního panelu filtrů a nastavit filtr.4. Nastavení filtru pomocí měřítka v Panelu filtrů
Protože máme veškerou filtrovací logiku vytvořenou přímo v měřítku, stačí nyní přidat měřítko [Zobrazit zákazníka] do postranního panelu filtrů, a nastavit filtr pouze na ty řádky vizuálu, pro které měřítko [Zobrazit zákazníka] vrací hodnotu 1.
Následně můžeme všechna pomocná měřítka odstranit z vizuálu. Pokud v průřezu pod vizuálem vybereme hodnotu 3, zobrazí se tři nejlepší zákazníci v každém státě.Pokud změníme hodnotu parametru třeba na číslo 5, výsledkem bude pět nejlepších zákazníků v každém státě.Podobným způsobem bychom mohli filtrovat třeba nejlepší produkty, nejlepší obchody, nejlepší měsíce s prodeji, a tak dále. Další příklady můžete najít na stránce DAX příklady nebo na stránce Power BI.Filtrování vizuálů pomocí měřítek je také doporučovaná technika pro synchronizaci průřezů v reportech, jak je popsáno v samostatném příspěvku pod tímto odkazem.
Komentáře
Okomentovat