Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

V dnešním tutoriálu poskytnu několik technik a tipů, jak se vypořádat s běžnými problémy způsobenými týdenní granularitou jazyka DAX ve výpočtech časové inteligence. Celé video tohoto tutoriálu si můžete prohlédnout ve spodní části tohoto blogu.

Nedávno jsem udělal tutoriál o získání hodnot předchozího týdne v LuckyTemplates. Od té doby mám několik otázek týkajících se časové inteligence a zejména týdenních hodnot DAX. To není překvapivé, protože týdny jsou ve sféře časové inteligence skutečně nejhůře vychovanou granularitou.

V případě měsíců máte vždy 12 měsíců v roce. V případě čtvrtin máte vždy čtyři čtvrtiny. Týdny jsou různé, protože týden má sedm dní a rok 52 týdnů – to je 364 dní. Takže tam máš ten den navíc. V přestupných letech máte dva dny navíc.

Takže to ve skutečnosti skončí v některých letech, na základě schématu číslování pro číslo týdne ISO, někdy 52 týdnů, někdy 53 týdnů. 53. týden je ten, který způsobí nejvíce problémů.

Obsah

Problémy časové inteligence týdenního výpočtu DAX

V tomto příkladu používám Total Spot Price. Se součty je snazší si to představit a mluvit o nich.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

V tomto případě chceme pro každý rok zobrazit řádek pro týden 53, ať už v daném roce byl týden 53 nebo ne. Takže můžete vidět, že v roce 2018 a 2019 neexistuje týden 53, ale v roce 2020 ano. Chceme to mít konzistentní, aby 53. řada byla v každém ročníku. Ale pak by metrika byla prázdná pro roky, ve kterých nebyl 53. rok.

Jedním z běžných způsobů, jak to děláme, je přejít na Zobrazit položky bez dat a ujistit se, že je to zapnuté. V tomto případě je zapnutá, ale nepomůže, protože to funguje, když máte fyzický řádek, ale k tomuto řádku nejsou přiřazena žádná data. V tomto případě nemáme ani řádek.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

Techniky jako používánínebo Odebrat filtry nebudou fungovat, protože není co odstraňovat. Filtr na tomto řádku prostě neexistuje. A tak je otázka, jak vložíme tento řádek do každého roku, ve kterém neexistuje? A pak se to skutečně stává problémem datového modelování.

Jedna z věcí, kterou můžeme potenciálně udělat, je přejít na schéma sněhových vloček, kde filtrujeme tabulku Data podle něčeho, co každý rok vynutí tento 53. týden. Funkce, která mě k tomu napadne, je.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

CROSSJOIN se používá ke spojení dvou polí, která mohou, ale nemusí mít vztah. Nemusí mít vztah na rozdíl od většiny respnebo jiné tabulkové funkce.

V tomto případě CROSSJOIN vezme dva sloupce a vytvoří každou kombinaci těchto dvou sloupců, ať už v sadě dat existuje nebo ne. To je přesně to, co chceme.

Musíme vytvořit tabulku ze sloupce. CROSSJOIN vezme dvě tabulky a pak VALUES na čísle týdne ISO a my je spojíme dohromady. To nám dá 53 týdnů každý rok.

A pak do tabulky přidáme třetí sloupec. Mohli bychom to udělat v Power Query, ale je snazší ukázat vám logiku v jazyce DAX. To, co zde děláme, je, že ve skutečnosti bereme a spojujeme rok se spojovníkem a pak číslem týdne, takže máme klíčové pole, které jej připojí k tabulce Data.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

Zde však musíme udělat trochu více práce, protože klíčové pole v tabulce Data funguje tak, že se jedná o čtyřmístnou pomlčku roku a poté dvoumístný týden. Takže v případech, kdy je číslo týdne ISO dvoumístné, můžeme provést jednoduché zřetězení. V případech, kdy je to jedna číslice, musíme vzít číslo roku a pak ho zřetězit spojovníkem, pak úvodní nulou a pak číslem týdne.

Jakmile to máme, můžeme vzít tuto tabulku v datovém modelu a najít sloupec Týden a rok. Pak se připojíme k těm, kteří jsou ve vztahu jeden k mnoha. Vždy jsem rád zapnul tuto možnost na Připnout související pole na začátek karty, takže když to zaškrtneme, hned to vidíme.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

Pokud se vrátíme k vizuálu, musíme změnit řádky. Místo čísla roku a týdne chceme použít číslo roku a týdne z tabulky CROSSJOIN. A teď máme ten 53. týden v roce 2018 s prázdnou a 53. týden v roce 2019 s prázdnou. V roce 2020 máme skutečné číslo, protože má 53. týden.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

Tady bychom se mohli zastavit, až na to, že jsme nyní opustili model Star Schema. Kdykoli se vzdálíte od hvězdného schématu v LuckyTemplates, posunete se mimo oblast toho, co je obecně považováno za nejlepší postup.

A tak pro Snowflake Schema to není velké porušení. Jsou případy, kdy to určitě budete chtít použít, ale pokud se tomu můžete vyhnout, zkuste to. Snižuje duplicitu, ale ne nutně velikost. Umožňuje vám používat měření s přímým počtem, ale existují problémy s výkonem a potenciální problémy s použitelností a rozhodně se zvyšuje složitost jazyka DAX. Brání vám ve vytváření hierarchií napříč tabulkami a pravděpodobně nejproblematičtější je, že to může opravdu zkazit vaši schopnost synchronizovat řezy napříč různými poli.

Takže i když to problém vyřeší, dělá to způsobem, který není skvělý. Uvidíme, jestli to dokážeme lépe než tohle. Pojďme na další datový model. V tomto modelu jsem vzal přesně stejná data, data a okamžitou cenu, ale tentokrát jsem odstranil tabulku CROSSJOIN. Stále existuje, ale není připojen.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

Ale když se podíváme na DAX, uvidíme, že je to přesně stejný DAX, který vytvořil tuto tabulku v druhém přehledu. Takže místo toho, abychom to spojili ve fyzickém vztahu a pak porušili hvězdné schéma a převedli to na schéma sněhové vločky, můžeme udržovat schéma hvězd a použít pouze virtuální vztah.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

K tomu použijeme funkci tzv. Vytváří tento vztah mezi tabulkami, ale dělá to virtuálně. Děláme to pomocí, protože budeme měnit kontext. V tomto případě se kontext bude týkat vztahu. Takže máme naši celkovou spotovou cenu a pak máme TREATAS. Musíme ten sloupec změnit na tabulku.

A pak máme pole Rok a týden, což je klíč, který jsme vytvořili. Máme to připojené virtuálním způsobem k Týdnu a roku v tabulce Data. Takže teď máme tabulku Crossjoint, která filtruje tabulku Data stejným způsobem, jako když jsme měli fyzický vztah, ale bez porušení hvězdného schématu.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates

Nyní můžeme vzít a vložit tuto celkovou spotovou cenu TREATAS do matice a to, co vidíme, jsou přesně stejné součty. Tímto způsobem jsme to udělali, aniž bychom narušili náš datový model a způsobili jakékoli nevýhody, o kterých jsme hovořili ve vztahu ke schématu sněhové vločky.

Týdenní výpočty DAX – Problémy s inteligencí času LuckyTemplates




Závěr

V tomto tutoriálu jsem vám ukázal několik způsobů, jak vyřešit problém týdenního výpočtu DAX v LuckyTemplates. Jedním z nich je použití CROSSJOIN, ale má to určité nevýhody. Druhým způsobem je použití TREATAS, vytvoření virtuálního vztahu a neporušení přístupu Star Schema.

To je jedna technika, která je docela užitečná pro řešení tohoto problému 53. týdne. Doufám, že vám to bylo užitečné. Chci znát váš názor na toto. Dejte mi vědět v komentářích níže.

Vše nejlepší,


Vytvoření tabulky data v LuckyTemplates

Vytvoření tabulky data v LuckyTemplates

Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.

LuckyTemplates Mobile Reporting Tipy a techniky

LuckyTemplates Mobile Reporting Tipy a techniky

Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.

Profesionální servisní analytické zprávy v LuckyTemplates

Profesionální servisní analytické zprávy v LuckyTemplates

V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.

Bežné funkcie SQL: Prehľad

Bežné funkcie SQL: Prehľad

Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.

Vytvoření šablony LuckyTemplates: Průvodce a tipy

Vytvoření šablony LuckyTemplates: Průvodce a tipy

V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.

Parametry pole a malé násobky v LuckyTemplates

Parametry pole a malé násobky v LuckyTemplates

V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.

LuckyTemplates Rank a vlastní seskupení

LuckyTemplates Rank a vlastní seskupení

V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

V tomto tutoriálu se budu zabývat konkrétní technikou, jak zobrazit kumulativní součet pouze do určitého data ve vašich vizuálech v LuckyTemplates.

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Naučte se vytvářet a přizpůsobovat Bullet grafy v LuckyTemplates, které se používají hlavně pro měření výkonu oproti cílovým nebo předchozím rokům.