Power BI - Zobrazení TopN nejprodávanějších produktů

Power BI - Zobrazení TopN nejprodávanějších produktů

Cílem příkladu v tomto příspěvku je vytvořit Power BI report, kde si uživatel bude moci sám pomocí parametru zvolit, kolik nejlepších produktů chce ve vizuálu zobrazovat. Pomocí číselného parametru v průřezu si tak uživatel může zafiltrovat pouze ty nejlepší produkty ve vybrané kategorii, ve zvoleném obchodě nebo nejúspěšnější produkty v každém roce. Pokud jako kategorie použijeme například roky, výsledek příkladu může vypadat následovně.

Power BI - Zobrazení TopN nejprodávanějších produktů

Ve vizuálu Matice jsou v řádcích roky a názvy produktů a v hodnotách suma prodejů. Přestože v každém roce bylo prodáváno velké množství produktů, ve vizuálu jsou pro každý rok jsou zobrazeny pouze tři produkty s největšími tržbami. Pokud by chtěl vidět uživatel více produktů, stačí změnit hodnotu v průřezu pod tabulkou.

Power BI - Zobrazení TopN nejprodávanějších produktů 2

V řádcích souhrnů s roky je suma prodejů pouze za produkty, které jsou zobrazené v tabulce pro daný rok. Stejně tak celková suma v řádku Total odpovídá sumě hodnot pouze těch produktů, které jsou zobrazené v tabulce, a ne celkovým prodejům všech produktů v databázi. 

Celé řešení se skládá ze čtyř jednoduchých kroků, které jsou popsané v samostatných částech v následující části příspěvku. Soubor s řešeným příkladem je k dispozici ke stažení níže pod tímto příspěvkem.

Vytvoření pořadí podle sumy prodejů

Prvním krokem je vytvoření měřítka, které bude určovat pořadí produktů podle sumy prodejů. Měřítko vracející sumu za prodané produkty má následující definici.

Měřítko:

Prodeje = SUM(Sales[Sales Amount])

Ve výchozím stavu jsou ve vizuálu Matice v řádcích roky a názvy produktů, a v hodnotách měřítko [Prodeje], které vrací sumu za prodané produkty v aktuálním kontextu vyhodnocení.

Power BI - Zobrazení TopN nejprodávanějších produktů 3

K vytvoření měřítka s pořadím podle prodejů použijeme funkci RANKX(). Samotné měřítko pak může vypadat následovně.

Měřítko:

Pořadí produktů =
RANKX
(
    ALLSELECTED('Product'[Product]),
    [Prodeje]
)

Prvním argumentem funkce RANKX() je tabulka s jedním sloupcem, ve kterém jsou názvy produktů zobrazené v řádcích vizuálu. Právě na základě těchto produktů chceme vytvořit pořadí v závislosti na sumě prodejů. Druhým argumentem funkce RANKX() je proto měřítko [Prodeje], které se vyhodnotí pro každý řádek tabulky v prvním argumentu, a na základě kterého funkce RANKX() vrátí pořadí aktuálního produktu zobrazeného ve vizuálu. Pokud takto vytvořené měřítko vložíme do připravené tabulky, výsledek vypadá následovně.

Power BI - Zobrazení TopN nejprodávanějších produktů 4

Častou chybou při použití funkce RANKX() je vynechání funkce ALLSELECTED(), případně funkce ALL() v prvním argumentu funkce RANKX(). Pokud bychom do prvního argumentu funkce RANKX() vložili pouze název tabulky bez funkce ALLSELECTED(), výsledkem měřítka by byla hodnota 1 v každém řádku, protože tabulka 'Product' by bez funkce ALLSELECTED() byla v každém řádku vyhodnocena v kontextu filtru daného produktu. Více informací o funkci RANKX() můžete najít v samostatném příspěvku.

Vytvoření parametru

Druhým krokem je vytvoření parametru, který bude sloužit jako přepínač pro počet zobrazených produktů. Na kartě "Modelování" v rozevíracím seznamu tlačítka "Nový parametr" vybereme možnost "Číselný rozsah".

Power BI - Zobrazení TopN nejprodávanějších produktů 5

Následně se otevře dialogové okno, ve kterém postupně vyplníme název parametru, datový typ, počáteční a koncovou hodnotu a hodnotu přírůstku. Pokud zatrhneme možnost "Přidat průřez na tuto stránku", Power BI při vytvoření parametru rovnou vytvoří také průřez se sloupcem z nového parametru, který vloží na aktuální stránku.

Power BI - Zobrazení TopN nejprodávanějších produktů 6

Výsledkem parametru není nic jiného než nová tabulka, která obsahuje sloupec s číselnou řadou podle argumentů, které jsme zadali v dialogovém okně. V této tabulce je také automaticky vytvořené měřítko, které vrací aktuálně vybranou hodnotu v průřezu nově vytvořeného parametru.

Power BI - Zobrazení TopN nejprodávanějších produktů 7

Pokud jsme v dialogovém okně při vytváření nového parametru nechali vybranou možnost "Přidat průřez na tuto stránku", nový průřez s parametrem by nyní měl být umístěný někde v prostoru reportu. 

Power BI - Zobrazení TopN nejprodávanějších produktů 8

V této chvíli ještě nový průřez s parametrem nijak neovlivňuje zobrazené hodnoty v tabulce. Parametr nejdříve musíme zahrnout do výpočtů, které budou zobrazené produkty v použitém vizuálu ovlivňovat.

Vytvoření pomocného měřítka pro filtr vizuálu

V dalším kroku potřebujeme porovnat hodnotu parametru v průřezu, kterou vybere uživatel, s hodnotami měřítka [Pořadí produktů]. Zobrazovat pak budeme pouze ty produkty, jejichž pořadí podle měřítka [Pořadí produktů] bude menší nebo rovno hodnotě parametru v průřezu. Výpočet by mohl vypadat následovně.

Měřítko:

Zobrazit produkt =
IF
(
    [Prodeje] > 0,
    INT([Pořadí produktů] <= [Počet produktů Value])
)

Logický výraz INT([Pořadí produktů] <= [Počet produktů Value]) vrací hodnotu 1, pokud je pořadí produktu v daném kontextu menší nebo rovno hodnotě, kterou uživatel vybere v průřezu. Pokud je pořadí produktu vyšší než hodnota parametru vybraná uživatelem v průřezu, návratová hodnota bude 0.

Výpočet chceme provádět pouze pro produkty a roky, ve kterých došlo k prodejům. Proto ve funkci IF() před vyhodnocením hlavního výpočtu ověříme, zda je v daném kontextu hodnota měřítka [Prodeje] větší než 0.

Výsledek výpočtu je možné vidět na obrázku níže.

Power BI - Zobrazení TopN nejprodávanějších produktů 9

V průřezu je vybrána hodnota 3. Výsledek měřítka [Zobrazit produkt] je hodnota 1 pro produkty, které mají výsledek měřítka [Pořadí produktů] menší nebo rovno hodnotě 3. Hodnotu 0 pak mají produkty, které mají pořadí vyšší než 3. Nyní stačí přesunout měřítko [Zobrazit produkt] z vizuálu do filtru vizuálu v postranním panelu.

Vytvoření filtru zobrazovaných produktů

Před vytvořením filtru je nutné mít označený vizuál, pro který filtr vytváříme. Následně do volného pole vložíme měřítko [Zobrazit produkt], viz obrázek níže.

Power BI - Zobrazení TopN nejprodávanějších produktů 10

Protože měřítko [Zobrazit produkt] vrací hodnotu jedna pro produkty, které chceme zobrazit, nastavíme filtr na hodnotu 1, viz obrázek níže. Po nastavení filtru klikneme na tlačítko "Použít filtr.

Power BI - Zobrazení TopN nejprodávanějších produktů 11

Nyní můžeme z vizuálu tabulky odebrat přebytečné sloupce s měřítky [Pořadí produktů] a [Zobrazit produkt]. Výsledek pak může vypadat následovně.

Power BI - Zobrazení TopN nejprodávanějších produktů 12

Výsledkem je report, ve kterém si uživatel může na základě parametru zvolit, kolik chce vidět produktů v jednotlivých letech, v závislosti na sumě prodejů. 

Další příklady můžete najít na stránce DAX - Příklady nebo na stránce Power BI.

č. 3

Komentáře