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.
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.
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.
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.
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.
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.
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.
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.
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.
Míra celkového prodeje je připojena k druhé tabulce a poté aplikována na první tabulku.
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í.
Zkopírujeme část TOPN a vytvoříme novou. Pamatujte, že dotazy DAX začínají EVALUATE.
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.
Vzhledem k tomu, že neexistuje žádný další kontext filtru, je to pouze vytažení prvních 5 dat z celé tabulky.
Sloupec @Prodej pouze přidává celkové prodeje v rámci správného kontextu filtru do tabulky TOPN.
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.
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.
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í.
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.
Máme také sloupcový graf ve spodní části, který se dynamicky upravuje, aby odrážel změny, které jsme provedli.
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 .
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.
Poté přejdeme do vizuálu, přejdeme na podmíněné formátování názvu a klikneme na fx .
Naformátujeme podle hodnoty pole a zvolíme tento dynamický titulek. Tím se změní výběr parametru what-if.
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é.
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.
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.
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ů.
Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.
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.
V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.
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.
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í.
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.
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.