Period Over Period v Tableau | Mňamka #367
S porovnáním period over period se coby datoví detektivové potkáváme dnes a denně. V jednotlivých vizualizačních nástrojích je funkcionalita period over period řešená různými způsoby. Dnes se podíváme, jaké možnosti porovnání jednotlivých období nabízí Tableau. Po dobu práce s Tableau jsme narazili na několik přístupů, které si dnes představíme. Začneme jednoduchými řešeními na kliknutí, která jsou však méně ohebná, a zakončíme to řešením, které je velmi variabilní a umožňuje jedním filtrem vybrat předdefinovanou periodu, kterou chceme porovnat.
Quick Table Calculation
Jedná se o standardní řešení od Tableau. Najít lze celou řadu návodů - jeden z nich zde (Video od Penguin Consulting), další případně zde (Tableau Video).
Výhody
- Jednoduchá implementace
- Není výpočetně náročná
Nevýhody:
- První období nezobrazuje data, protože nemá s čím srovnávat
- Musím ve worksheetu zobrazit celé období
LOOKUP Funkce
Druhou možností je použít funkci LOOKUP(), která funguje pouze jako Table Calculation, tzn. provádí se pouze v rámci daného worksheetu (nikoli nad celým datasetem). Její funkce je v podstatě stejná, jako Quick Table Calculation. Stačí vydefinovat, "kam" se má funkce dívat. Detailní manuál najdete zde.
Výhody / nevýhody jsou stejné jako v případě Quick Table Calculation (ostatně Quick Table Calc je v podstatě pouze UI na tento druh funkcí). LOOKUP funkce se ale dá také použít na skrývání části vizualizace, kterou nechceme vidět.
Master / Slave Dataset
Další z možných technik je využít Master / Slave dataset, v Tableau nazývaný jako data blending.
Pojďme si tuto techniku vysvětlit na příkladu. Máme tabulku s transakcemi a chceme nastavit YoY porovnání. Tabulka obsahuje fakt price a order_date.
- Krok 1: V ETL (nebo v Tableau pomocí calculated fields) upravíme tabulku tak, že přidáme sloupec order_date_next_year, kde přičteme 1 rok k order_date.
- Krok 2: Následně v Tableau nad touto tabulkou definujeme 2 datasety (pro získání druhého datasetu stačí udělat kopii dané tabulky). Jeden dataset bude obsahovat sloupce price a order_date (transations_this_year), druhý bude obsahovat sloupce price (můžeme nastavit alias - přejmenovat - na price_last_year) a sloupec order_date_next_year, s aliasem (přejmenováno na order_date) (transactions_last_year).
- Krok 3: Následně použijeme blending, jehož součástí je transactions.order_date -> transactions_last_year.order_date.
- Krok 4: Nyní můžeme např. vytvořit metriku SUM([price]) / SUM([price_last_year]).
Výhoda
- YoY porovnávání probíhá na úrovni dat a nikoli vizualizace, takže lze filtrovat např. na jediný den a vše funguje ok.
Nevýhoda
- Výpočetně náročné díky použitému blendingu. Pokud je použito na dashboardu vícekrát, může být výkon dashboardu zásadně degradován.
Custom filter s předdefinovaným obdobím (WTD, MTD, YTD,...)
Výhodou tohoto řešení je variabilita období, které lze jedním filtrem vybrat.
Za základ jsou považovány tyto předdefinovaná srovnání, ale v podstatě je lze jakkoliv doplnit/rozšířit (např. o last 30 days, Month to date YoY,...):
- Week to date - data za tento týden do dneška vs. data za stejné období minulého týdne
- Month to date - data za tento měsíc do dneška vs. data za stejné období minulého měsíce
- Year to date - data za tento rok do dneška vs. data za stejné období minulého roku
- Moving annual total - data za minulých 12 měsíců vs. data za stejné období před tím
- Last month - data za minulý měsíc vs. data za stejný měsíc v minulém roce
Postup:
- Krok 1: Vytvořím parametr, který obsahuje období, která chci filtrovat, spolu s values (INT), která použiji v dalším calculated fieldu.

- Krok 2: Vytvořím jednotlivé calculated fields pro každý druh periody z kroku 1 (viz níže), kde definuji, jaké období s kterým porovnávám (analogicky upravím pro rozdíl dnů/týdnů/měsíců...).

- Krok 3: Vytvořím calculated field, který vybírá metriku na základě vybraného období.

- Krok 4: Požadované metriky, které mají porovnávat období upravím následovně: (Current Period = 2, Previous Period = 1).

- Krok 5: Vložím filtr a metriky do dashboardu and that's it! :)
Případný detail zde: The Ultimate Guide to Year-over-Year Comparisons in Tableau
Závěr
Je zřejmé, že přístupů k zobrazení period over period je v Tableau několik. Při rozhodování, který z nich použít je potřeba brát v úvahu potřebu variability řešení, jednoduchost implementace a v neposlední řadě také výslednou performance (rychlost načítání) dashboardu. Používáte v Tableau nějakou další techniku pro zobrazování period over period? Podělte se s námi.
Pokud máte nějaké otázky, připomínky či komentáře, budu rád, když mi napíšete.
Tomáš
MS Fabric: Pojďte si s námi vytvořit první pipeline - 2.část | Mňamka #541
Otevřeli jste poprvé MS Fabric a vůbec se nerorientujete? Už máte zadání a nevíte kam dřív? V tom případě jste tady správně, protože vás provedeme prvními krůčky, jak si dotáhnout do Fabricu první data, zpracovat je a nastavit celý proces v jednoduché pipeline. Ukažte ostatním, jak se to dělá! V tomto článku si představíme konkrétně kroky jako kopírování dat, dataflow, notebooky a zprovoznění pipeline.
MS Fabric: Pojďte si s námi vytvořit první pipeline - 1.část | Mňamka #540
Otevřeli jste poprvé MS Fabric a vůbec se nerorientujete? Už máte zadání a nevíte kam dřív? V tom případě jste tady správně, protože vás provedeme prvními krůčky, jak si dotáhnout do Fabricu první data, zpracovat je a nastavit celý proces v jednoduché pipeline. Ukažte ostatním, jak se to dělá! V tomto článku si představíme konkrétně kroky jako kopírování dat, dataflow, notebooky a zprovoznění pipeline.
Tooltipy, popisky a vysvětlivky: Jak provést uživatele reportem bez otázek? | Mňamka #539
Spokojený klient = spokojený vývojář. Jak ale poznáme, že je klient s naší prací spokojen? Napovědět nám může například to, že klade minimum otázek. Že se to ještě nestalo? Tak si pojďme představit, jakými způsoby nenásilně do Power BI zakomponujeme odpovědi na otázky, které z jeho strany přichází nejčastěji.