Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

V tomto příspěvku na blogu se podíváme na otázku, která byla položena na fóru LuckyTemplates, a k jejímu vyřešení použijeme techniku ​​LuckyTemplates v jazyce DAX. V případě, že chcete sledovat a stáhnout soubory, stačí navštívit fórum LuckyTemplates a přejít na . Celé video tohoto tutoriálu si můžete prohlédnout ve spodní části tohoto blogu.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Pro vysvětlení scénáře, který se chystáme pokrýt, máme jako příklad jednoduchou tabulku. V prvním sloupci máme Finanční úroveň 1 . Ve druhém sloupci máme datum, které se jmenuje Dokončeno. V posledním sloupci máme kombinaci finanční úrovně a dokončeného data, kterou pojmenujeme Výnosy .

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Pak máme slicer pro Datum a Jméno zákazníka .

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Co chceme udělat pro konkrétní časové období, je identifikovat tři nejlepší data, která nejsou nula. A pak v těchto třech prvních datech chceme identifikovat finanční úroveň.

V první verzi opatření jsem uvedl data, která jsou kratší než 29. 4. 2021, kdy máme nějaké příjmy.

A v těchto dnech chceme identifikovat finanční úrovně, které přinesly nějaké příjmy. Vysvětlím vám, jak toho výpočtu můžeme dosáhnout.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Obsah

Datové modelování

Než napíšeme skutečný DAX, pojďme se rychle podívat na datový model, který obsahuje více tabulek. Zajímají nás pouze tabulky Datum , Tabulka dat , Tabulka kategorií práce a Tabulka Zákazník .

Všimněte si, že tabulka Zákazník není ve skutečnosti důležitá, protože se používá pouze uvnitř průřezu.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Míra tržeb se vypočítává v tabulce Data. Kategorie Job obsahuje finanční úroveň, kterou máme na matici. Potom použijeme sloupec Datum z tabulky Datum v našem průřezu.

Verze 1

Zbavme se všeho z matrixu a začněme od nuly. Vytvořím nové opatření a nazvu ho V1, protože toto bude verze jedna. Podíváme se také na dvě další varianty.

Příprava kontextu filtru

První věc, kterou uděláme, je načíst všechny hodnoty finanční úrovně z kontextu filtru. Vytvoříme a pojmenujeme jej jako FinancialLevelInFilterContext .

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

K načtení hodnot z kontextu filtru použijeme v tabulce Job category, která obsahuje sloupec finanční úrovně. Poté musíme vytvořit další proměnnou a pojmenovat ji Result . Pak napište a zavřete jej také.

V prvním argumentu máme výběr přes datový výřez. V těchto datech chceme identifikovat data, která nemají 0 a mají alespoň nějaké příjmy.

Pokud chcete získat přístup ke všem datům, která jsou vybrána v daném průřezu, musíme použít tabulku přes datum.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

A protože máme finanční úroveň na matici, musíme se také ujistit, že tuto konkrétní hodnotu odstraňujeme z kontextu filtru. Můžeme použít kategorii nad Job a pak napsat finanční úroveň 1.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Nyní, když je náš kontext filtru připraven, můžeme napsat nejvnitřnější výpočet pro CALCULATE. Nejprve deklarujeme proměnnou, která bude kombinací sloupce finanční úrovně a data, jak jsme viděli v první tabulce.

Potom použijeme a použijeme tabulku Data ke shrnutí těchto dvou tabulek: Kategorie práce a tabulka Datum.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

To poskytne kombinaci finanční úrovně a sloupce data, který existuje v tabulce Data. Poté vytvoříme další proměnnou, kde uložíme hodnotu řádku výnosů pro první proměnnou, kterou jsme vytvořili.

Název této proměnné bude FinancialLevelAndDatesWithRevenue . Kód této proměnné bude stejný jako kód předchozí proměnné. Poté vytvoříme virtuální sloupec, který bude Revenue iniciovat kontextový přechod. Pro každý řádek této proměnné jsme tedy přiřadili výnos.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Tato tabulka obsahuje výnos, který má také nulu. Potřebujeme odfiltrovat tyto řádky s nulou. K tomu můžeme vytvořit další proměnnou a pojmenovat ji jako RemoveZeroes .

Použijeme na předchozí proměnnou, pak se ujistěte, že příjem nebude roven nule. Může být větší než nula nebo menší než nula, ale nemělo by být striktně rovno nule.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

A pak načteme datum z proměnné RemoveZeroes . K tomu můžeme vytvořit další proměnnou a pojmenovat ji KeepOnlyDates .

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Mohu použít k odstranění duplicitních dat, která jsou vrácena .

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Dále identifikujeme první tři data v sestupném pořadí. Použijeme jinou proměnnou a pojmenujeme ji Last3Dates , poté použijeme .

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Potom ve sloupci data použijeme data za poslední tři data a poté použijeme oddělovač.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Přetáhněte naši nově vytvořenou míru do matice. Výsledek, který dostáváme, je 31. 3. 2021, 7. 4. 2021 a 2. 4. 2021. To znamená, že naše opatření funguje.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Vraťme se do editoru a zbavme se části RETURN CONCATENATEX. Abychom získali tato tři poslední data, můžeme zkontrolovat, které řádky z proměnné RemoveZeroes jsou ve skutečnosti součástí těchto posledních tří dat.

A k tomu vytvoříme další proměnnou DatesInLast3Dates a použijeme funkci FILTER na RemoveZeroes . Tím se vrátí tabulka, která se skládá z kategorie práce a data.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Sečteme sloupec příjmů, který jsme v této tabulce vytvořili. Vraťme SUMX přes DatesInLast3Dates a poté shrneme sloupec příjmů.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Tímto výpočtem získáme pouze jednu hodnotu pro každý řádek, protože jsme z kontextu filtru odstranili kategorii Job.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Proměnnou, kterou jsme vytvořili na začátku, použijeme ke kontrole, zda je v kontextu filtru dostupný každý řádek proměnné DatesInLast3Dates . Můžeme napsat další proměnnou a pojmenovat ji IsInFilterContext .

Tím se vyfiltrují data v proměnné DatesInLast3Dates . Poté vrátím SUMX přes kontext IsInFilter a shrnu sloupec příjmů.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Jakmile stiskneme Enter , můžete vidět, že dostaneme stejný výsledek, jaký jsme měli na začátku.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Ověření výsledku výpočtu jazyka DAX LuckyTemplates

Abychom si ověřili, že skutečně dostáváme správný výsledek, můžeme vytvořit novou tabulku CALCULATE, která nám pomůže při ladění, identifikaci a ověření, že kód, který jsme dosud napsali, skutečně vrací správný výsledek.

Vytvořme kopii kódu, který jsme dosud napsali. Jednoduše zkopíruji část, která je zvýrazněna níže, vrátím se k vytvoření nové tabulky a vložím zvýrazněný kód. Nebudeme se obtěžovat pojmenováním této tabulky, protože nás to nezajímá.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

A můžeme jednoduše napsat RETURN DatesInLast3Dates . Pokud kliknu na Potvrdit , dostaneme tabulku, ale víme, že ve skutečnosti ještě nevrací správný výsledek, protože ve skutečnosti potřebujeme napodobit chování sliceru.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Tento kód můžeme zabalit do CALCULATETABLE a vše odsadit. V poslední části napíšu, že datum by mělo být větší nebo rovno 2021-03-15 a že jméno zákazníka by se mělo rovnat DHL Supply Chain .

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Tabulka, kterou jsme vytvořili uvnitř této míry, prakticky vrací správný výsledek. Můžeme použít CALCULATETABLE k ověření virtuální tabulky, kterou vytváříte ve svém výpočtu.

Další výpočty jazyka DAX LuckyTemplates

Nyní, když víme, že náš výpočet funguje, a rozumíme tomu, co se ve skutečnosti děje v zákulisí, můžeme se podívat na jiné metody pro výpočet stejného problému. Nejprve si vytvořte duplikát míry, kterou jsme již vytvořili.

Verze 2

Tentokrát nebudeme spoléhat na funkce VALUES a FILTER, takže se jich zbavíme. Odebereme návratový výsledek a také poslední proměnnou, kterou jsme vytvořili v CALCULATE. Poté převedeme CALCULATE na CALCULATETABLE.

A místo vracení skalární hodnoty tentokrát vrátíme DatesInLast3Dates . To vrátí stejný CALCULATETABLE, který jsme vytvořili dříve. Použijeme funkci CALCULATE a v prvním argumentu vypočítáme míru příjmů a vložíme CALCULATETABLE jako kontext filtru.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Jakmile to přinesu do matice, můžete vidět, že pro každou buňku vracíme stejnou celkovou hodnotu.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Použití funkce KEEPFILTERS

V tuto chvíli víme, že výpočet v zákulisí funguje správně, ale jak můžeme s jistotou vědět, že pro každou buňku uvádíme hodnotu pouze pro tuto finanční úroveň?

S pomocí CALCULATETABLE jsme vytvořili tabulku, která obsahuje finanční úroveň, sloupec data a sloupec příjmů. Můžeme použít funkci klíčového filtru k vytvoření průniku mezi kontextem filtru, který existuje mimo CALCULATETABLE, a tím, který je vytvářen pomocí CALCULATETABLE.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Jakmile klikneme na Potvrdit, můžeme vidět, že hlásíme správnou hodnotu pro každou buňku a že verze 1 i verze 2 vracejí správnou hodnotu.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Jak to tedy funguje? Tabulka CALCULATE vrátí úroveň údržby , poté pronájem , externí servis a náhradní díly . Vytvoří průsečík mezi údržbou a tímto stolem.

Půjčovna vytvoří počáteční kontext filtru, pak CALCULATETABLE vrátí všechny hodnoty kategorie Job. Pak dojde k průniku mezi Rentalem a tabulkou vrácenou CALCULATETABLE. Vrátíme pouze tabulky nebo řádky pro tuto část pronájmu.

A nakonec, když vložíme SUMMARIZE do kontextu filtru, funkce CALCULATE bude počítat výnos pouze za pronájem. Stejný proces probíhá pro každý řádek.

Verze 3

Podívejme se na jiný způsob výpočtu stejného výpočtu pomocí jazyka DAX LuckyTemplates. Vytvoříme kopii taktu verze 2 a vytvoříme další takt. Tuto verzi pojmenujeme Verze 3.

Myšlenka tohoto výpočtu spočívá v tom, že jelikož počítáme výnosy pomocí funkce CALCULATE, nemusíme používat část ADDCOLUMNS, protože duplikujeme stejnou věc uvnitř i vně CALCULATE. Místo toho můžeme jednoduše napsat, že výnos by se neměl rovnat 0.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Jakmile kliknu na Potvrdit, musíme se ujistit, že kód funguje, takže přetáhněte míru dovnitř matice.

Můžete vidět, že kód ve skutečnosti vrací stejnou hodnotu pro každou buňku.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Pokud se pokusím změnit kontext filtru změnou data v průřezu Datum a výběrem několika hodnot z Název zákazníka, můžete vidět, že všechny tři míry ve skutečnosti vracejí stejnou hodnotu pro každý řádek.

Výukový program LuckyTemplates jazyka DAX On Reverse TOPN

Závěr

V tomto tutoriálu jsme se naučili, jak používat složitou logiku procházení zpět v čase od koncového data k identifikaci tří nejvýznamnějších dat. Na základě této techniky LuckyTemplates v jazyce DAX jsme byli schopni vypočítat výnosy a zobrazit pouze ty hodnoty, které existují v kontextu filtru. To je v tomto tutoriálu prozatím vše.


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.