Nejnovější rok, měsíc nebo datum v Power BI průřezu jako výchozí

Úvodní obrázek

V součásné době (2024) stále není možné nastavit dynamicky výchozí hodnotu v Power BI průřezu. Pokud například dnes při tvorbě reportu vybereme v průřezu aktuální rok, řekněme rok 2024, po aktualizaci dat v roce 2025 bude stále v průřezu vybrán rok 2024, i když v modelu již máme aktuálnější data. Uživatelé poté budou muset při každém otevření reportu vybírat v průřezu nový aktuální rok. V tomto příspěvku si ukážeme jednu z možností, jak toto omezení obejít.

Pracovat budeme s jednoduchým modelem který obsahuje pouze dvě tabulky, tabulku 'Prodeje' se záznamy o prodejích produktů a datumovou tabulku 'Kalendář'.

Nejnovější datum, měsíc nebo rok v Power BI průřezu jako výchozí

Představme si nyní že tvoříme report v roce 2024. Pro znázornění problému použijeme velmi jednoduchý report pouze se dvěma vizuály. Ve vizuálu průřez budou roky z kalendářní tabulky a ve vizuálu matice prodeje za produkty rozpadlé přes kategorie produktů.

Nejnovější datum, měsíc nebo rok v Power BI průřezu jako výchozí 2

Předpokládejme dále že uživatele zajímají primárně prodeje za aktuální rok. Proto je v průřezu vybrán nejnovější rok 2024 jako výchozí.

Pokud se ale přesuneme do roku 2025, tak po aktualizaci dat v modelu bude stejný report vypadat následovně.

Nejnovější datum, měsíc nebo rok v Power BI průřezu jako výchozí 3

V průřezu je i po aktualizaci dat stále vybrán původní rok 2024, tedy rok, který byl aktuální v době tvorby a nasazení reportu. Tento vybraný rok ale již nebude aktuální v roce 2025, a tak uživatelé reportu budou muset při každém otevření reportu změnit výběr.

Stejný problém bychom mohli pozorovat v reportu kde má být jako výchozí vybrán aktuální den, aktuální měsíc nebo aktuální čtvrtletí a podobně.

Řešení je pak pro všechny tyto případy velmi podobné. Pokud budeme stále pracovat s roky, tak pro aktuální rok zvolíme konstantu, kterou použijeme pro každý rok, který bude v modelu nejnovější. Tuto konstantu, řekněme třeba "Aktuální rok" pak použijeme pro výběr v průřezu. V roce 2024 tak bude tento rok nahrazen textem "Aktuální rok". V roce 2025, po aktualizaci dat, bude nahrazen konstantou "Aktuální rok" rok 2025, a tak dále.

Nahradit aktuální hodnotu konstantou můžeme buď přímo při aktualizaci dat, například v jazyku SQL nebo v Power Query. Na blogu o jazyku DAX si ale ukážeme řešení právě pomocí jazyka DAX a pomocí nového počítaného sloupce, který následně použijeme v průřezu namísto původního sloupce s roky.

Celá logika nového počítaného sloupce nebude nijak složitá. Nejdříve si pomocí funkce MAX() zjistíme který rok je v datumové tabulce nejnovější. Následně, pokud se aktuální rok v aktuálním řádku datumové tabulky bude rovnat nejnovějšímu roku, použijeme pro tento řádek konstantu "Aktuální rok". Pro všechny ostatní roky pak budeme zobrazovat originální hodnotu. Celý takto popsaný výpočet může vypadat například následovně.

Počítaný sloupec v tabulce 'Kalendář':

Rok do průřezu =
IF
(
    MAX('Kalendář'[Rok]) = 'Kalendář'[Rok],
    "Aktuální rok",
    FORMAT('Kalendář'[Rok], "0000")
)

Pokud nyní nový sloupec 'Kalendář'[Rok do průřezu] použijeme v průřezu namísto originálního sloupce s roky, v roce 2024 bude náš zjednodušený report vypadat následovně.

Nejnovější datum, měsíc nebo rok v Power BI průřezu jako výchozí 4

Po aktualizaci dat v roce 2025 bude text "Aktuální rok" zastupovat právě rok 2025, a to bez jakéhokoliv zásahu do reportu.

Nejnovější datum, měsíc nebo rok v Power BI průřezu jako výchozí 5

Ačkoliv je výše popsaný postup funkční a může být široce používán pro různé atributy z kalendářní tabulky, měli bychom být při jeho použití ostražití, zejména pokud pracujeme například s fiskálními roky nebo pokud nedochází v použitém modelu ke každodenní aktualizaci dat. 

Pokud například pracujeme s modelem, který je aktualizovaný na týdenní bázi, s prvním týdnu nového roku bychom zobrazovali pro hodnotu "Aktuální rok" data za předchozí rok, protože zkrátka ještě nejsou v modelu k dispozici data pro rok aktuální. To by pak mohlo být velmi matoucí pro uživatele reportu.

Popsané řešení proto není úplně neprůstřelné a nezbývá než doufat, že v brzké době bude existovat možnost, jak nastavit dynamicky výchozí výběr hodnoty přímo v Power BI průřezech.

Další praktické příklady můžete najít na stránce DAX příklady nebo na stránce Power BI. Video návody jsou pak dostupné na youtube pod tímto odkazem.

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

Komentáře