Co jsou časové dimenze, proč jsou tak důležité a jak je dělat
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
-
Kurz Středně pokročilé Power BI, 2 dny
(07. 12. 2022, 26. 01. 2023, 21. 03. 2023, ...)
-
Kurz Power BI – expertní úroveň, 2 dny
(07. 02. 2023, 26. 04. 2023, 13. 06. 2023)
-
Kurz Power Query a Power Pivot – nové nástroje v Excelu, 1 den
(12. 12. 2022, 11. 01. 2023, 24. 02. 2023, ...)
Skoro v každém datovém modelu je velmi užitečné (nebo spíše nutné) používat časovou dimenzi. V tomto článku je popsáno, co to vůbec je, jak ji vytvořit a hlavně proč je důležitá.
V článku se věnuji práci s dimenzí pro datumy (jednotlivé dny), obdobná logika může platit i pro práci s časy (hodinami, minutami...).
Co to je časová dimenze
Nic víc než tabulka, která obsahuje jednotlivé datumy v období, které nás zajímá a pro které máme data. Každý přesně jednou.
Jak časovou dimenzi vytvořit
Cest je spousta a každá může mít svoje výhody, většinou ale stačí jít na vytvoření nové tabulky a zapsat:
- Calendar table = CALENDARAUTO()
Funkce CALENDARAUTO nemusí mít žádné argumenty a vytváří tabulku podle toho, jaké datumy jsou obsažené v našich datech - tak, aby obsáhla vše a ještě dokončila celé roky. S měnícími se daty se mění i datumová dimenze.
Tuto tabulku pak napojíme na datumové sloupce ostatních tabulek
relacemi, většinou 1N.
Proč časové dimenze vytvářet
Uživatelé, kteří s Power BI začínají, mívají tendence tyto dimenze nevytvářet, pokud chtějí v čase vyhodnocovat ukazatel, použijí jen jednu tabulku, ze které do vizuálu použijí jak datum, tak sledovanou hodnotu. A nějakým způsobem to funguje.
Co tedy získají tím, že vytvoří časovou dimenzi a připojí ji na tabulky?
Možnost vyhodnocovat v jednom vizuálu hodnoty z více tabulek
Máte-li v jedné tabulce náklady a ve druhé výnosy, můžete je propojit datumovou dimenzí, a pak vyhodnocovat v jednom vizuálu.
Takto vypadá spojení:
Takto vypadá vizuál:

Tabulek může být samozřejmě i víc.
Dá se samozřejmě namítnout, že tabulky se dají spojit i přímo i bez mezitabulky. Tam ale narážíme na to, že pokud se v obou tabulkách vyskytují duplicitní datumy (což je běžné), pak bychom museli dělat vazby NN, které jsou vždy problematické. Časová dimenze nám umožní pracovat s jednoduchými relacemi 1N.
Možnost počítat v DAXu z více tabulek najednou
Díky propojení datumovou relací můžeme v jednom vzorečku vzájemně propočítávat hodnoty z více tabulek. Např. v této
míře sledujeme rozdíl výnosů a nákladů:
- Profit = SUM(sales_list[Revenue])-SUM(cost_list[Cost])

Jednodušší zápis Time intelligence funkcí (TOTALMTD atd.)
Zapisujete-li funkce pro vyhodnocování v čase, je zápis kratší (a z různých důvodů méně problémový), pokud pracujete s časovou dimenzí. Funkce můžete zapsat např. takto:
- Revenue this month = TOTALMTD(sum(sales_list[Revenue]),'Time dimension'[Date])

Pokud byste pracovali bez časové dimenze, budete muset používat ještě funkce jako
ALL a stejně to v některých kontextech bude zlobit.
A dál
Pokud by vám výše uvedené důvody nestačily, mohlo by pro Vás být zajímavé to, že práce s časovou dimenzí je výhodnější z hlediska výkonnosti.
Také je jedna společná časová dimenze šikovná, když si chcete data seskupovat podle vlastních období - např. podle týdnů, podnikových dovolených atd. V tom případě stačí všechno řešit jen jednou na jednom místě.
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
-
Kurz Středně pokročilé Power BI, 2 dny
(07. 12. 2022, 26. 01. 2023, 21. 03. 2023, ...)
-
Kurz Power BI – expertní úroveň, 2 dny
(07. 02. 2023, 26. 04. 2023, 13. 06. 2023)
-
Kurz Power Query a Power Pivot – nové nástroje v Excelu, 1 den
(12. 12. 2022, 11. 01. 2023, 24. 02. 2023, ...)