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.
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.
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 .
Pak máme slicer pro Datum a Jméno zákazníka .
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.
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.
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 .
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.
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.
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.
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.
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.
A pak načteme datum z proměnné RemoveZeroes . K tomu můžeme vytvořit další proměnnou a pojmenovat ji KeepOnlyDates .
Mohu použít k odstranění duplicitních dat, která jsou vrácena .
Dále identifikujeme první tři data v sestupném pořadí. Použijeme jinou proměnnou a pojmenujeme ji Last3Dates , poté použijeme .
Potom ve sloupci data použijeme data za poslední tři data a poté použijeme oddělovač.
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.
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.
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ů.
Tímto výpočtem získáme pouze jednu hodnotu pro každý řádek, protože jsme z kontextu filtru odstranili kategorii Job.
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ů.
Jakmile stiskneme Enter , můžete vidět, že dostaneme stejný výsledek, jaký jsme měli na začátku.
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á.
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.
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 .
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.
Jakmile to přinesu do matice, můžete vidět, že pro každou buňku vracíme stejnou celkovou hodnotu.
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.
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.
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.
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.
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.
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.
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.