Chcete být Data-driven?

Tak buďte Data-informed & Data-inspired

Nástroje pro filtrování na základě seznamu hodnot v Power BI a porovnání jejich výkonosti

Jednou z možností pro filtrování v reportovacích nástrojích je filtrovat data na základě předem definovaného seznamu hodnot. Zjistěte více o filtrovacích nástrojích.

Jedním z častých požadavků na filtrování v reportovacích nástrojích je možnost filtrovat data na základě předem definovaného seznamu hodnot. V tomto článku se podíváme na možná řešení tohoto zadání pomocí custom vizuálů ‚Filter By List‘ a ‚Mass Filter‘.

Porovnáme parametry těchto vizuálů pomocí několika testů. Zajímat nás bude velikost samotné vizualizace, počet záznamů, které lze použít jako filtr, výkon, flexibilita a také možnosti nastavení. V závěru článku toto srovnání shrneme spolu s doporučením, za jakých okolností který custom vizuál použít.

Power BI obsahuje v základu několik způsobů filtrování dat. První najdeme v podobě panelu na pravé straně reportu, která slouží k filtrování vizuálu, stránky nebo celého reportu. Také můžeme použít vestavěný vizuál, který lze integrovat přímo do reportu – tzv. ‚slicer‘. Tyto filtry, resp. slicery, však neumožňují jednu často požadovanou operaci, a to filtrování na základě seznamu hodnot, který je uložen v jiném souboru (například v Excelu).

Představte si situaci, kdy potřebujete vybrat ve filtru více položek najednou. Pokud jde o menší množství, není problém vybrat je ručně. Pokud však jde o velké množství záznamů, ruční výběr je časově náročný a je jednoduché některou položku opomenout. Příkladem může být situace, kdy vás zajímají výsledky prodeje např. 30 definovaných produktů z portfolia produktů a tento seznam máte uložen v samostatném souboru, jako je Excel nebo Txt.

Existuje více řešení tohoto zadání, avšak obvykle zahrnují přepisování měr či úpravy tabulek napojených do modelu. Custom vizuály, které uvedeme, fungují flexibilně přímo v reportu bez nutnosti aktualizace a umějí využít externí seznam hodnot.

Tři tečky — Get more visuals

Vyber a přidej

Zmíněné custom vizuály jsou dostupné v Microsoft AppSource / Marketplace. Do tržiště vizuálů se dostaneme prostřednictvím webového odkazu (Business Apps – Microsoft AppSource) nebo kliknutím na 3 tečky a výběrem možnosti ‚Get More Visuals‘ v aplikaci Power BI Desktop.

Hledej v pravém horním rohu

Vizualizace můžeme hledat podle názvu, klikneme na ikonku a vybereme přidat (‚Add‘). Takto můžeme importovat také vizuály Filter by List a Mass Filter.

Filter By List

Jedná se o custom vizualizaci vyvinutou společností Devscope, která je poskytována zdarma.

Velikost

Samotný filtr má velikost 27,7 kB. V tabulce vidíte, jak se změnila velikost prázdného souboru PBIX po přidání vizuálu i po přidání testovacích dat. Zde je důležité poznamenat, že Power BI data nejen importuje, ale také komprimuje, takže jednoduchá součtová matematika nefunguje a zdrojová data přenesená do Power BI budou menší než původní zdroj.

Počet záznamů filtrovaní

Při použití Filter By list lze filtrovat až 30 000 záznamů. Pokud je zkopírováno a vyfiltrováno více záznamů, zobrazí se chybové hlášení, že tento limit byl překročen.

Chybové hlášení

Výkonnost

Dalším testem byl čas potřebný k vykreslení vizualizace pomocí měření v analyzátoru výkonu při filtrování 30 000 záznamů, což je maximální možné filtrování. Na obrázku níže můžete vidět získané výsledky.

Výsledky filtrování v analyzátoru výkonu

Při porovnání filtrování jedné hodnoty v nástroji Filtr by List a filtrování jedné hodnoty v integrovaném sliceru Power BI vychází Filter By List jako méně výkonný vizuální nástroj. Jako méně výkonný vychází i ve srovnání s vizuálem Mass Filter, na jehož výsledky se podíváme v druhé části článku.

Filtrovaní jednoho záznamu ve Filter by List vs. Power BI slicer

Možnosti filtrovaní

V následujícím testu jsme zkoumali flexibilitu, s jakou lze data ukládat a používat pro filtrování. Pokud jsou data uložena v Excelu v samostatných buňkách nebo v textovém souboru pod sebou, pak při kopírování bez použití čárky fungují bez  problémů. V opačném případě musí být jednotlivé hodnoty odděleny čárkou. Pokud je za filtrovanou hodnotou mezera a teprve za ní čárka, je tato hodnoty odděleny čárkou. Pokud je za filtrovanou hodnotou mezera a teprve za ní čárka, je tato mezera při filtrování ignorována.

Formát dat použitých pro filtrování

Filter By List umožňuje filtrovat hodnoty textové, číselné, případně hodnoty obsahující různé znaky jako například tečka, lomítko nebo hvězdička (. / *). Limitem filtru je filtrování hodnot obsahujících čárku, například řetězec ‚příjmení, jméno‘. Taková struktura záznamu je filtrem vnímána jako dva záznamy, nikoli jako jeden. 

Vizuál filtru 

Pokud jde o formátování vizuálu, je možné upravit velikost vizuálu, barvu textu, umístění a text, který se zobrazí v prázdném vizuálu.

Možnosti formátování vizuálu

Mass Filter

Autorem tohoto filtru je Insiders.coop a stejně jako první vizuál je poskytován zdarma.

Velikost

Velikost filtru po stažení je 1,5 MB. V tabulce vidíte, jak se změnila velikost prázdného souboru PBIX po přidání vizuálu i po přidání testovacích dat.

Počet filtrovacích záznamů

Při použití Mass Filter lze filtrovat až 30 000 záznamů. Pokud je zkopírováno více než tento počet, zobrazí se chybové hlášení.

Chybové hlášení

Výkonnost

Mass Filter byl podroben stejnému testu jako Filter By List, aby se určil výkon, tj. čas potřebný k vykreslení vizualizací měřený v analyzátoru výkonu při filtrování 30 000 záznamů, což je maximální možné filtrování. Na obrázku níže můžete vidět získané výsledky.

Výsledky filtrování v Analyzátoru výkonu

Při porovnání filtrování jednotlivých hodnot v aplikaci Mass Filter a filtrování jednotlivých hodnot v integrovaném sliceru Power BI vychází Mass Filter jako méně výkonný vizuální nástroj. Ve srovnání s Filter By List je však výkonnější.

Filtrování jednoho záznamu v Mass Filter vs. Power BI slicer

Možnosti filtrování

V následujícím testu jsme zkoumali flexibilitu, s jakou lze data ukládat a používat pro filtrování pomocí vizuálu Mass Filter. Pokud jsou data uložena v Excelu v samostatných buňkách pod sebou, pak při kopírování fungují bez použití čárky. Totéž platí, pokud jsou v textovém souboru pod sebou. V opačném případě musí být jednotlivé hodnoty odděleny čárkou. Pokud je za filtrovanou hodnotou mezera a za ní pouze čárka, tato mezera se ignoruje.

Filter By List umožňuje filtrovat hodnoty textové, číselné, případně hodnoty obsahující různé znaky jako například ‚.‘, ‚/‘ nebo ‚*‘.  Limitem filtru je filtrování hodnot obsahujících čárku, například řetězec ‚příjmení, jméno‘. Taková struktura záznamu je filtrem vnímána jako dva záznamy, nikoli jako jeden, navzdory tomu, že v části ‚Tipy‘ filtru je uvedeno, že podobné filtrování by mělo fungovat, pokud je celý řetězec uzavřen v uvozovkách.

Vizuál filtru

Pokud jde o formátování vizuálu, jsou k dispozici stejné možnosti jako u Filter By List a navíc můžete změnit barvu pozadí vizuálu a zaoblit jeho rohy.

Možnosti formátování vizuálu

Rozšířená funkcionalita

Mass Filter obsahuje jednu funkci, která se v Filter By List nenachází, a to ‚Include / Exclude‘. Po zadání hodnot pro filtrování a zvolení možnosti Include se vyfiltrují hodnoty, které jsme nastavili ve filtru. Po přepnutí na Exclude budou vyfiltrovány všechny ostatní hodnoty kromě těch, které jsme zadali ve filtru.

Include/Exclude funkce ve vizuálu

Závěr

Na závěr shrňme výsledky testů a porovnejme oba filtry. Je mezi nimi několik rozdílů, které pro přehlednost shrnujeme v tabulce.

Vidíme, že pokud pro nás velikost souboru PBIX není hlavním omezením, pak nám Mass Filtr může poskytnout několik výhod nad rámec filtru podle seznamu, protože je výkonnější a flexibilnější, pokud jde o úpravy samotného vizuálu. Obsahuje také funkce Include/Exclude, které Filter by List nemá. Na druhou stranu, pokud jsme omezeni velikostí vizuálu, může pro nás být Filter by List způsobem, jak zajistit požadovanou funkčnost s minimálním zvětšením výsledného souboru.

Autor: Martina Riegerová, BI konzultantka

Mohlo by vás zajímat

Číst další

Chcete nás kontaktovat?

Drop files here or
Max. file size: 2 MB.