Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Podívejme se znovu na problém diskutovaný v , který dynamicky porovnával prvních N pracovních dnů každého měsíce. Tento problém vznikl na základě dotazu člena LuckyTemplates na našem fóru, kde chtěl dynamicky prohlížet a porovnávat prvních 5, 10, 15 a 20 zúčtovatelných dnů (mimo víkendy a svátky) za daný měsíc s předchozí měsíc.

Namísto použití power query vymyslíme řešení pro kódovací jazyk DAX. Celé video tohoto tutoriálu si můžete prohlédnout ve spodní části tohoto blogu.

V prvním videu jsem přišel s řešením dotazu na napájení, jak tento problém vyřešit. Ale pak jeden z našich odborníků na LuckyTemplates, Antriksh Sharma, přišel s brilantně účinným opatřením, které také stojí za to se do něj ponořit hlouběji. Probereme některé techniky, které použil při vývoji míry, která vám poskytne další nástroje ve vaší sadě nástrojů DAX.

Pro mě a pro některé další odborníky, kteří se na to podívali, to určitě bylo. Srovnání srovnatelných obchodních dnů v jednotlivých měsících je obecně cenným vzorem, který lze použít v mnoha situacích.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Pojďme se ponořit do dotazu na napájení a podívat se, co zde Antriksh udělal. Máme měsíc a rok , celkový prodej a nakonec celkový prodej za N pracovních dnů , které jsme vybrali pomocí dotazu na výkon na základě parametru what-if, který jsme vyvinuli.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Antriksh zvolil velmi odlišný přístup, kde použil šokující krátké opatření k vyřešení celého tohoto problému. První věc, kterou jsem si všiml, bylo použití příkazu.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Toto je funkce DAX, kterou nepoužívám příliš často, ale pro tento typ problémů se perfektně hodí. Pokud se podíváme na SQL BI DAX Guide, říká se tam, že funkce GENERATE je tabulková funkce, která jako svůj vstup používá dvě různé tabulky, a poté provede ekvivalent příkazu SQL CROSS APPLY.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Takže vezme základní tabulku (Tabulka1) a iteruje na ní, a pak vezme druhý tabulkový výraz a vyhodnotí ho pro každý řádek v první tabulce a pak se vrátí do tabulky jako výstup.

Vezmeme Antrikshovu míru a hodíme ji do tabulky. Vidíme, že přináší přesně stejné výsledky jako řešení dotazu na napájení, které jsme provedli minule. Takže to je dobře a ověřuje to obě opatření docela dobře.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Rozeberme toto opatření. První zde použitý filtr je Dates[IsBusinessDay] = TRUE. Tím se odstraní všechna data mimo víkend a svátky na základě pole v rozšířené tabulce datumů IsBusinessDay.

Mnohem více o tom mluvíme v , kde jsme také prošli, jak to uvázat na náš sváteční stůl.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Zajímavá část toho skutečně přichází ve dvou tabulkových vstupech. První tabulka je pouze jednosloupcová tabulka pole Měsíc a rok v tabulce Datum.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Ale na druhém vstupu do tabulky se dějí zajímavé věci. Antriksh použil a a poté použil náš dynamický parametr jako počet řádků v TOPN.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Míra celkového prodeje je připojena k druhé tabulce a poté aplikována na první tabulku.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Obsah

Pochopení komplexního opatření pomocí kódovacího jazyka DAX

Jedním z nejjednodušších způsobů, jak zjistit, co dělá takové složité měření, je přejít do Tabular Editoru . Můžeme se na tento výraz podívat a zjistit, co tento výraz TOPN dělá jako první.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Zkopírujeme část TOPN a vytvoříme novou. Pamatujte, že dotazy DAX začínají EVALUATE.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Když vložíme část TOPN, uvidíme, že se stahuje prvních 5 dat z tabulky prodejní objednávky. V TOPN je tabulka, která se skládá z hodnot všech dat objednávek v prodejní tabulce.

Tato funkce TOPN přebírá hodnotu parametru what-if (což je v tomto případě 5) a aplikuje ji na pole data prodejní objednávky. Potom vytáhne prvních 5 dat v kontextu filtru ve vzestupném pořadí na základě tohoto pole.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Vzhledem k tomu, že neexistuje žádný další kontext filtru, je to pouze vytažení prvních 5 dat z celé tabulky.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Sloupec @Prodej pouze přidává celkové prodeje v rámci správného kontextu filtru do tabulky TOPN.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Zatím tu máme první tabulku Měsíc & Rok, druhá tabulka TOPN prvních N se datuje z prodejní tabulky a s tím spojené celkové tržby.

Použití tabulky GENERATE v kódovacím jazyce DAX

Pojďme se podívat na to, co tato tabulka GENERATE dělá. Vrátíme se zpět do Tabular Editoru a vytvoříme nový dotaz DAX.

Začneme jako vždy s EVALUATE, vložte část kódu GENERATE a klikněte na 5.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Vidíme, že pro každý řádek první tabulky se iteruje a spojuje se s 5 řádky z tabulky TOPN vyhodnocenými v kontextu s funkcí @Sales.

Trvalo prvních 5 pracovních dní v dubnu, prvních 5 pracovních dní v květnu, prvních 5 pracovních dní v červnu a tak dále, dokud se nedostane na konec prvního stolu.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

To je přesně to, co potřebujeme, a nyní se stává relativně jednoduchou záležitostí tyto hodnoty sečíst. Máme výsledek (což je proměnná tabulky výsledků GENERATE) a pak musíme sečíst funkci @Sales.

V kontextu nyní sčítáme prvních 5 pracovních dnů v dubnu, prvních 5 pracovních dnů v květnu a tak dále, dokud se nedostaneme na naši celkovou částku 23 737 430 $, v takovém případě nemá žádný kontext měsíce a roku k provozu. .

To shrnuje celý sloupec @Sales a dostane přesně stejný součet, jaký jsme měli v našem řešení dotazů na napájení.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Můžete vidět, že pokud změníme slicer na 10, získáme dynamicky stejné výsledky s kódovacím jazykem DAX jako v power query.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Máme také sloupcový graf ve spodní části, který se dynamicky upravuje, aby odrážel změny, které jsme provedli.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Dynamicky upravit název měření

Je tu další trik, který jsem vám chtěl ukázat. Můžete vytvořit dynamickou úpravu svého parametru what-if a dynamicky ji spojit do názvu taktu.

Pokud například změníme výřez nahoře na 15, dynamicky se změní název míry dole na Celkové prodeje za prvních 15 pracovních dnů každého měsíce .

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Existuje snadný způsob, jak to provést v jazyce DAX pomocí . Vezmeme v podstatě jen tři provázky. První je Total Sales for First a pak to zřetězíme s hodnotou, kterou získáme z parametru what-if, a pak to jen spojíme se zbytkem názvu.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Poté přejdeme do vizuálu, přejdeme na podmíněné formátování názvu a klikneme na fx .

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Naformátujeme podle hodnoty pole a zvolíme tento dynamický titulek. Tím se změní výběr parametru what-if.

Prvních N pracovních dnů znovu navštíveno – řešení kódovacího jazyka DAX

Závěr

To, co nyní máme, je kompletní řešení využívající kódovací jazyk DAX. Diskutovali jsme o skutečně kreativním a efektivním způsobu, jak toho dosáhnout pomocí funkce GENERATE. Chci poděkovat Antrikshovi za to, že se s námi podělil o své skvělé znalosti jazyka DAX. Při procházení jeho řešením DAX jsem se hodně naučil a doufám, že vy také.


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.