Porovnání hodnot v různých časových obdobích v Power BI

Úvodní obrázek

V tomto příspěvku si ukážeme postup, jak v Power BI vytvořit report s možností současně porovnávat hodnoty měřítek v různých časových obdobích. Uživatel reportu si bude moci sám zvolit dvě různá období, aktuální období a období pro porovnání. V jednom vizuálu následně uvidí dvě hodnoty pro stejný typ agregace, jednu za každé zvolené období. Výsledný report může vypadat například následovně.

Porovnání hodnot v různých časových obdobích v Power BI

Na obrázku výše můžeme vidět že v Průřezu na levé straně je vybrán měsíc květen 2019. Měřítko [Prodeje] pak vrací sumu za prodané produkty v tomto období. V Průřezu na pravé straně je vybráno období červenec 2018, a prodeje za toto období vrací měřítko [Prodeje (porovnání)]. Měřítko [Prodeje (rozdíl)] pak vrací rozdíl mezi prodeji ve dvou vybraných časových obdobích v absolutních hodnotách, a měřítko [Prodeje (rozdíl %)] vrací rozdíl vyjádřený v relativních hodnotách. V obou Průřezech pak můžeme vybrat jakákoliv období, třeba konkrétní dny, měsíce, čtvrtletí nebo roky. Vybrané časové intervaly mohou být souvislé nebo nesouvislé, stejně tak mohou obsahovat různý nebo stejný počet dnů. Vše záleží na požadavcích uživatele a na tom jaká období si zvolí pro porovnání.

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

Samotné řešení není nijak složité, nicméně vyžaduje jistou míru kreativity při tvorbě modelu a při definici měřítek určených pro porovnání, což si ukážeme v následující části příspěvku.

Příprava modelu

Pracovat budeme jako obvykle se cvičným Power BI souborem Adventure Works DW 2020.pbix. Soubor s řešením je dostupný ke stažení níže pod tímto příspěvkem.

V prvním kroku si vytvoříme report. Do vizuálu Průřez můžeme vložit jakékoliv atributy z kalendářní tabulky 'Date'. V našem příkladu můžeme použít například roky, měsíce a dny.  Dále do řádků vizuálu Matice vložíme kategorie produktů z tabulky 'Product' a do hodnot měřítko [Prodeje]. Výchozí report může vypadat například následovně.

Porovnání hodnot v různých časových obdobích v Power BI 2

Do druhého Průřezu, kde bude uživatel vybírat období pro porovnání, budeme potřebovat vložit atributy z jiné datumové tabulky než z tabulky 'Date'. Druhou datumovou tabulku si můžeme vytvořit přímo v Power BI, a to prostou kopií originální tabulky 'Date'.

Počítaná tabulka:

Date (pro porovnání) = 'Date'

Tabulku 'Date (pro porovnání)' připojíme k tabulce 'Sales' pomocí relace 1:M, ale tuto relaci ponecháme neaktivní.

Porovnání hodnot v různých časových obdobích v Power BI 3

Důvodem, proč je relace mezi tabulkou 'Date (pro porovnání)' a tabulkou 'Sales' neaktivní je že nechceme, aby filtry nastavené na sloupce z tabulky 'Date (pro porovnání)' ovlivňovali jakákoliv jiná měřítka, která nejsou určené pro porovnání.

Pokud tedy v reportu vytvoříme nový vizuál Průřez, do kterého nyní vložíme roky, měsíce a dny z tabulky 'Date (pro porovnání)', hodnoty vybrané v tomto průřezu nebudou nijak ovlivňovat výsledky dosud vytvořených měřítek.

Porovnání hodnot v různých časových obdobích v Power BI 4

Jak je možné vidět na obrázku výše, hodnoty měřítka [Prodeje] se přidáním Průřezu s atributy z tabulky 'Date (pro porovnání)' nijak nemění, a stále odpovídají prodejům za období vybrané v prvním průřezu (květen 2019). To je dáno právě tím že relace mezi tabulkou 'Date (pro porovnání)' a tabulkou 'Sales' je neaktivní.

Nyní zbývá vytvořit měřítko vracející hodnoty prodejů, které bude ignorovat filtry nastavené na sloupce z tabulky 'Date', a současně bude respektovat filtry nastavené na sloupce z tabulky 'Date (Pro porovnání)'. Odstranit filtry z tabulky 'Date' můžeme jednoduše pomocí funkce REMOVEFILTERS(). Pro aktivaci neaktivní relace pak použijeme funkci USERELATIONSHIP(), jak si ukážeme v následující části příspěvku.

Tvorba měřítek pro porovnání

Nyní, když máme připravený model, stačí postupně přidat měřítka která budou ignorovat filtry z tabulky 'Date' a respektovat filtry z tabulky 'Date (pro porovnání)'.

Měřítko:

Prodeje (porovnání) =
CALCULATE
(
    [Prodeje],
    REMOVEFILTERS('Date'),
    USERELATIONSHIP(Sales[Order Date], 'Date (pro porovnání)'[Date])
)

Pokud nové měřítko vložíme do vizuálu Matice, výsledek bude vypadat následovně.

Porovnání hodnot v různých časových obdobích v Power BI 5

Měřítko [Prodeje] stále vrací prodeje za měsíc květen 2019. Nové měřítko [Prodeje (porovnání)] nyní vrací prodeje za červenec 2018. Výběr období v Průřezu na levé straně tak ovlivňuje pouze měřítko [Prodeje], a výběr období v Průřezu na pravé straně ovlivňuje pouze měřítko [Prodeje (porovnání)]. V každém Průřezu nyní můžeme vybrat jakékoliv období. Pokud bychom dále chtěli vidět rozdíly mezi dvěma měřítky v absolutních hodnotách, můžeme přidat další jednoduché měřítko.

Měřítko:

Prodeje (rozdíl) = [Prodeje] - [Prodeje (porovnání)]

Porovnávat rozdíly pak můžeme také v relativních hodnotách.

Měřítko:

Prodeje (rozdíl %) = DIVIDE([Prodeje (rozdíl)], [Prodeje (porovnání)])

Pokud obě nová měřítka vložíme do vizuálu Matice, výsledek bude vypadat následovně.

Porovnání hodnot v různých časových obdobích v Power BI 6

Na obrázku výše můžeme například vidět, že prodeje v kategorii "Bikes" byly v květnu 2019 vyšší o 24,57 % oproti prodejům za měsíc červenec 2018. Naopak v kategorii "Components" byly prodeje v květnu 2019 nižší než v prodeje ve stejné kategorii v červenci 2018. Všechna měřítka zobrazená ve vizuálu Matice na obrázku výše pak můžeme v kontextu jakýchkoliv atributů v modelu, s tím že měřítko [Prodeje] bude vždy vyhodnoceno v kontextu filtrů nastavených na sloupce z tabulky 'Date', a měřítko [Prodeje (pro porovnání)] bude vždy reflektovat pouze filtry nastavené na sloupce z tabulky 'Date (pro porovnání)'.

Shrnutí

Power BI je analytický nástroj ve kterém hraje zásadní roli samotný model (model-based tool). Díky tomu můžeme kombinovat funkcionalitu vizuálů s variabilitou samotného modelu, a tvořit tak velmi originální řešení. Na příkladu zobrazeném v tomto příspěvku bylo možné vidět, že pouhým přidáním jedné tabulky do modelu může vzniknout originální report, ve kterém má uživatel možnost zobrazit si v jednom vizuálu hodnoty dvou stejných agregací za různá časová období.

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

Komentáře