Prodeje v předchozím roce jako KPI v Power BI a DAX

Prodeje v předchozím roce jako KPI v Power BI a DAX

Tento příspěvek obsahuje příklad vytvoření klíčového ukazatele výkonosti (KPI) v Power BI pomocí DAX výpočtu v měřítku. Cílová hodnota pro tento KPI indikátor bude vycházet z výkonnosti za stejné období v předchozím roce, kterou budeme chtít překonat alespoň o 20 %.

Kromě vytvoření vlastních DAX výpočtů si v tomto příspěvku ukážeme také postup, jak zobrazit KPI indikátor přímo v popiscích hodnot ve sloupcovém grafu, podobně jak je možné vidět na úvodním obrázku.

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

KPI indikátory můžeme v Power BI vytvořit více různými způsoby. K dispozici máme dokonce speciální KPI vizuály nebo KPI objekt. KPI objekt lze ale v době psaní tohoto příspěvku vytvořit v Power BI pouze pomocí externích nástrojů, jako je například Tabular Editor. V tomto příspěvku nebudeme používat ani KPI vizuály ani KPI objekt, ale vytvoříme si speciální měřítko, které bude hrát roli KPI indikátoru.

Pozn.: Objekt KPI není nic jiného než další měřítko nebo měřítka, která vrací číselné hodnoty vyjadřující aktuální stav nebo trend. Tyto číselné hodnoty jsou pak na pozadí převedeny na zvolené indikátory, například na různé šipky, semafory apod.

Důvodem, proč budeme tvořit KPI indikátor přímo v měřítku je jeho následné další použití. Výsledný indikátor totiž budeme chtít zobrazovat přímo v grafu nad jednotlivými sloupci, a to v popiscích hodnot, kde musí být výsledkem měřítka vždy textový řetězec. Tímto způsobem bychom nemohli použít objekt KPI, protože tento objekt vrací vždy číslo, i když je toto číslo následně při vykreslení reportů převedeno na zvolené symboly.

Celý příklad v tomto příspěvku je vytvořen ve cvičném Power BI souboru Power BI Adventure Works DW 2020.pbix. Soubor s řešením je k dispozici ke stažení níže pod tímto příspěvkem.

V první části příspěvku si vytvoříme všechna pomocná měřítka a také měřítko které bude hrát roli KPI indikátoru. Ve druhé části příspěvku si ukážeme malý trik, jak tento KPI indikátor zobrazovat přímo ve sloupcovém grafu nad jednotlivými sloupci.

Vytvoření KPI na základě hodnot v předchozím roce

Na obrázku níže je možné vidět výchozí report, do kterého si budeme postupně přidávat jednotlivé mezivýpočty.

Prodeje v předchozím roce jako KPI v Power BI a DAX 1

V průřezu na levé straně jsou roky a čtvrtletí z kalendářní tabulky. Ve vizuálu matice jsou v řádcích roky a měsíce, a v hodnotách měřítko [Prodeje], které má následující definici.

Měřítko:

Prodeje = SUM(Sales[Sales Amount])

Měřítko [Prodeje] vrací hodnotu prodejů v aktuálním kontextu vyhodnocení, v použitém vizuálu matice v aktuálním měsíci nebo roce. Tyto hodnoty pak budeme porovnávat s hodnotami prodejů za stejné období v předcházejícím roce.

Měřítko:

Prodeje PY =
CALCULATE
(
    [Prodeje],
    DATEADD('Date'[Date], -1, YEAR)
)

Nové měřítko [Prodeje PY] si můžeme vložit do vizuálu matice a zobrazit si výsledek.

Prodeje v předchozím roce jako KPI v Power BI a DAX 2

Měřítko [Prodeje PY] vrací podle očekávání hodnotu prodejů za stejné období v předchozím roce. Pokud se podíváme například na měsíc červenec 2018, tak v tomto měsíci vrací měřítko [Prodeje PY] prodeje za měsíc červenec 2017, a tak dále.

Jednoduchým odečtením hodnoty měřítka [Prodeje] od hodnoty měřítka [Prodeje PY] pak můžeme získat rozdíl mezi prodeji v aktuálním roce v porovnání s prodeji v předchozím roce v absolutních hodnotách.

Měřítko:

Prodeje YOY = [Prodeje] - [Prodeje PY]

Nové měřítko si opět zobrazíme ve vizuálu matice.

Prodeje v předchozím roce jako KPI v Power BI a DAX 3

Zaměřit se můžeme opět na měsíc červenec 2018. V tomto měsíci vrací měřítko [Prodeje YOY] hodnotu 1 516 333,67. To znamená že prodeje v tomto měsíci byly o 1 516 333,67 vyšší než prodeje ve stejném měsíci v předchozím roce. Pokud je hodnota měřítka [Prodeje YOY] záporná, znamená to, že prodeje v aktuálním měsíci jsou menší než prodeje ve stejném měsíci v předchozím roce, což můžeme vidět například v měsíci listopad 2018.

V úvodu tohoto příspěvku jsme si řekli, že pomocí KPI indikátoru budeme chtít zjistit, zda jsou prodeje v aktuálním období alespoň o 20 % vyšší než prodeje za stejné období v předchozím roce. Porovnávat aktuální prodeje s prodeji v předchozím roce proto budeme také v relativních hodnotách.

Měřítko:

Prodeje YOY % = DIVIDE([Prodeje YOY], [Prodeje PY])

Výsledná hodnota měřítka [Prodeje YOY %] vyjadřuje procentuální růst nebo pokles prodejů v porovnání s prodeji v předchozím roce.

Prodeje v předchozím roce jako KPI v Power BI a DAX 4

Zaměříme-li se opět na měsíc červenec 2018, tak v tomto měsíci byly prodeje o 106,53 % vyšší než prodeje ve stejném měsíci v předchozím roce. V měsíci listopad 2018 pak vrací měřítko [Prodeje YOY %] zápornou hodnotu, konkrétně - 24,22 %. To znamená že prodeje v tomto měsíci jsou nižší než prodeje za stejný měsíc v předchozím roce. Na základě hodnot měřítka [Prodeje YOY %] již nyní můžeme vytvořit samotné KPI.

Cílová hodnota pro KPI indikátor bude 20 %. Pokud měřítko [Prodeje YOY %] bude v aktuálním období vracet hodnotu vyšší než 20 %, budeme o tomto období uvažovat jako o úspěšném, protože bylo dosaženo cíle. To si můžeme vyjádřit v samotném měřítku například šipkou nahoru. Pokud bude hodnota měřítka [Prodeje YOY %] pro určité období záporná, budeme o tomto období uvažovat jako o neúspěšném a tento stav budeme znázorňovat šipkou dolů. Třetí stav nastane, pokud bude hodnota měřítka [Prodeje YOY %] někde mezi nulou a dvaceti procenty včetně. V takovém to případě sice nebylo dosaženo dvacetiprocentního cíle, nicméně nejde ani o zápornou hodnotu a tak budeme tento stav vyjadřovat nějakým neutrálním znakem, například kolečkem.

Měřítko:

Popisek (KPI) =
VAR Cil = 0.2
VAR YOYProcentualne = [Prodeje YOY %]
VAR SipkaDolu = "▼ "
VAR Kolecko = "● "
VAR SipkaNahoru = "▲ "
VAR YOYProcentualneFormat = FORMAT([Prodeje YOY %], "Percent")
VAR Vypocet =
    SWITCH
    (
        TRUE(),
        YOYProcentualne > Cil, SipkaNahoru & YOYProcentualneFormat,
        YOYProcentualne < 0, SipkaDolu & YOYProcentualneFormat,
        Kolecko & YOYProcentualneFormat
    )
RETURN
    Vypocet

Nové měřítko si opět vložíme do vizuálu matice a zobrazíme si výsledky.

Prodeje v předchozím roce jako KPI v Power BI a DAX 5

Měřítko [Popisek (KPI)] budeme používat v popiscích hodnot v grafu. Popisek si ještě můžeme obarvit v závislosti na aktuálním stavu. Pokud bude cíl splněn, budeme popisek zobrazovat v zelené barvě. Pro záporné hodnoty použijeme barvu červenou a pro neutrální hodnoty barvu oranžovou. Měřítko, které použijeme pro nastavení barvy popisku pomocí podmíněného formátu, může vypadat například následovně.

Měřítko:

Barva popisku (KPI) =
VAR Cil = 0.2
VAR YOYProcentualne = [Prodeje YOY %]
VAR Vypocet =
    SWITCH
    (
        TRUE(),
        YOYProcentualne > Cil, "Green",
        YOYProcentualne < 0, "Red",
        "Orange"
    )
RETURN
    Vypocet

Stejně jako v předchozích případech i toto měřítko si můžeme vložit do vizuálu matice a ověřit si, že vrací požadované hodnoty.

Prodeje v předchozím roce jako KPI v Power BI a DAX 6

Jak můžeme vidět na obrázku výše, měřítko [Barva popisku (KPI)] vrací anglický název zelené barvy v řádcích vizuálu kde je měřítko [Prodeje YOY %] vyšší než 20 %. Pro záporné hodnoty vrací anglický název červené barvy a pro hodnoty mezi 0 a 20 % včetně vrací anglický název oranžové barvy.

Zobrazení KPI indikátoru ve sloupcovém grafu

Abychom si mohli zobrazit měřítko [Popisek (KPI)] přímo nad jednotlivými sloupci v grafu, podobně jak bylo možné vidět na úvodním obrázku, musíme si pomoci malým trikem. 

Začněme ale postupně. Do vizuálu Spojnicový a skupinový sloupcový graf si vložíme na osu X roky a měsíce a do hodnot měřítko [Prodeje PY] a měřítko [Prodeje]. Důvod pro použití vizuálu Spojnicový a skupinový sloupcový graf bude zřejmý s následujícího postupu.

Pokud v průřezu vybereme pouze čtvrtletí Q1 a Q2 roku 2019, výchozí report může vypadat například následovně.

Prodeje v předchozím roce jako KPI v Power BI a DAX 7

Abychom si mohli zobrazit KPI indikátor přímo nad jednotlivými sloupci v grafu, vytvoříme si pomocnné měřítko, které bude vracet hodnotu toho měřítka, které v daném měsíci vrací vyšší částku. Tuto vyšší hodnotu následně vynásobíme konstantou 1,1. Pomocné měřítko následně použijeme pro vykreslení linie v grafu (proto graf typu Spojnicový a skupinový sloupcový graf) a na této linii si následně zograzíme samotný KPI indikátor. Měřítko pro linii v grafu bude mít následující definici.

Měřítko:

Pomocná linie do grafu = MAX([Prodeje], [Prodeje PY]) * 1.1

Nové měřítko vložíme do pole "osa Y čáry".

Prodeje v předchozím roce jako KPI v Power BI a DAX 8

Samotný graf by nyní mohl vypadat následovně.

Prodeje v předchozím roce jako KPI v Power BI a DAX 9

Na této pomocné čáře nyní zobrazíme hodnoty měřítka [Popisek (KPI)]. Ve formátovacím panelu v sekci "Popisky dat" vybereme v rozevíracím seznamu nazvaném "Datové řady" měřítko [Pomocná linie do grafu].

Prodeje v předchozím roce jako KPI v Power BI a DAX 10

U tohoto měřítka zapneme "Vlastní popisek" a do volného pole vložíme dříve vytvořené měřítko [Popisek (KPI)].

Prodeje v předchozím roce jako KPI v Power BI a DAX 11

Popisek s KPI indikátorem by se již nyní měl zobrazovat na pomocné linii v grafu.

Prodeje v předchozím roce jako KPI v Power BI a DAX 12

Nyní se stačí zbavit samotné čáry a to tak, že jednoduše v nastavení této linie zadáme tloušťku čáry (Šířka tahu) na 0.

Prodeje v předchozím roce jako KPI v Power BI a DAX 13

Pokud dále nastavíme barvu popisků na základě hodnoty měřítka [Barva popisku (KPI)], výsledný vizuál by mohl vypadat například následovně.

Pozn.: Postup jak nastavit podmíněný formát na základě hodnoty měřítka je popsán v samostatném příspěvku pod tímto odkazem.

Prodeje v předchozím roce jako KPI v Power BI a DAX 14

Jak je možné vidět na obrázku výše, pokud jsou prodeje v aktuálním měsíci alespoň o 20 % vyšší než prodeje za stejné období v předchozím roce, KPI indikátor je zobrazen zelenou barvou a šipkou nahoru. Pokud jsou prodeje v aktuálním měsíci menší než prodeje za stejné období v předchozím roce, KPI indikátor je červený a obsahuje šipku dolů. V měsíci květen 2019 pak byly prodeje o 16, 86 % vyšší v porovnání s předchozím rokem. To znamená že v tomto období sice nebyl splněný 20 % růst, nicméně nejedná se ani o pokles prodejů v porovnání s předchozím rokem a proto je KPI indikátor zobrazen neutrální oranžovou barvou a kolečkem.

Shrnutí
KPI indikátory můžeme v Power BI vytvořit mnoha různými způsoby a současně samotné cíle nebo kritéria pro definici KPI indikátorů mohou být také velmi různorodé. Příklad vytvoření KPI indikátoru popsaný v tomto příspěvku je proto pouze jeden z mnoha možných postupů, jak vytvořit KPI v Power BI, ať už z pohledu způsobu vytvoření reportu, tak z pohledu samotné definice KPI indikátoru.

Další příklady můžete najít na stránce DAX příklady nebo na stránce Power BI. Všechna videa o jazyku DAX a Power BI jsou dostupné na Youtubovém kanále pod tímto odkazem.

Komentáře