Power BI - Jak nastavit datum, měsíc nebo rok v průřezu vždy na nejnovější

Úvodní obrázek

Jednou z možností, jak nastavit filtr v Power BI průřezu vždy na aktuální datum, je vytvořit v datumové tabulce nový počítaný sloupec, ve kterém přiřadíme nejnovější hodnotě libovolnou konstantu, kterou následně použijeme pro nastavení filtru v průřezu.

(Aktualizováno 22. 4. 2023)

Tím se můžeme vyhnout situaci, kdy po aktualizaci dat v datovém modelu nebude zafiltrována nejnovější hodnota, ale poslední námi zvolená hodnota před uložením souboru. Uvažujme například následující situaci, kdy je report vytvořen s filtrem nastaveným na 23. října 2021.

Power BI - Jak nastavit datum, měsíc nebo rok v průřezu vždy na nejnovější

V původním stavu, kdy ve zdrojové tabulce po aktualizaci dat vznikne nový záznam, vypadá vizualizace následovně.

Power BI - Jak nastavit datum, měsíc nebo rok v průřezu vždy na nejnovější 2

Po aktualizaci dat již tedy není vybrán poslední dostupný den, ale den, který byl vybraný v době uložení reportu. V následující části je popsána jedna z možností, jak zachovat v průřezu zafiltrovanou nejnovější hodnotu i po aktualizaci dat a vzniku nových záznamů.

Nejnovější hodnota v průřezu i po aktualizaci dat

Jednou z možností, jak zachovat v průřezu výběr vždy nejnovějšího dostupného dne, může být vytvoření pomocného sloupce určeného pouze pro účely průřezu. Nový počítaný sloupec vytvoříme na základě dat ze sloupce obsahujícího jednotlivé datumy, které chceme použít v průřezu. Stejně tak se ale může jednat o měsíce, roky, kvartály, nebo kterékoliv jiné hodnoty, u kterých dokážeme pomocí DAX výrazu určit nejnovější hodnotu.

V samotném výpočtu si prvním kroku ověříme, zda se datum v aktuálním řádku rovná nejnovějšímu dostupnému datu ze stejného sloupce. Pokud ano, nahradíme tuto hodnotu vlastní konstantou. V níže uvedeném výpočtu jde o text "Aktuální den". Pro všechny ostatní hodnoty, které nejsou nejnovější, použijeme původní hodnotu, kterou pouze naformátujeme pomocí funkce FORMAT() na hodnotu ve formátu STRING. Převod původní hodnoty na hodnotu ve formátu STRING je nezbytný, protože všechny hodnoty v jednom sloupci musí být stejného datového typu, a námi zadaná konstanta "Aktuální den" je textový řetězec. Celý výpočet tak může vypadat následovně.

Počítaný sloupec:

Den do filtru =
IF
(
    'Prodeje'[Den] = MAX(Prodeje[Den]),
    "Aktuální den",
    FORMAT(Prodeje[Den], "DD/MM/YYYY")
)

Nový počítaný sloupec se stane součástí datumové tabulky a můžeme ho používat stejně jako kterýkoliv jiný sloupec ve výpočtech nebo ve vizuálech. Nyní tedy stačí v průřezu použít nově vytvořený sloupec, a následně vybrat zvolenou konstantu, která nahrazuje nejnovější dostupný den.

Power BI - Jak nastavit datum, měsíc nebo rok v průřezu vždy na nejnovější 3

Zvolená hodnota "Aktuální den" tak nyní zastupuje poslední dostupný den, kterým je 24. 10. 2021. Pokud po aktualizaci dat v datovém modelu vznikne nový záznam se dnem 25. 10. 2021, bude tento den opět nahrazen konstantou "Aktuální den".

Power BI - Jak nastavit datum, měsíc nebo rok v průřezu vždy na nejnovější 4

Tento postup má své výhody i nevýhody, nicméně jedná se o jednoduchý trik, kterým si může autor reportu usnadnit práci, zejména pokud uživatelé reportu po jeho otevření očekávají filtr nastavený vždy na nejnovější dostupnou hodnotu. 

Stejný postup může být použitý i pro jiné hodnoty z datumové tabulky, ať už se jedná o roky, měsíce nebo kvartály. Předpokladem pro použití této techniky je schopnost spolehlivě určit pomocí DAX výrazu nejnovější dostupnou hodnotu určenou pro filtr, a tuto hodnotu následně v pomocném počítaném sloupci nahradit námi zvolenou konstantou.

Další praktické příklady můžete najít na stránce DAX příklady nebo na stránce Power BI.

č. 4

Komentáře