Práce s iteračními funkcemi v jazyce DAX

Kdykoli pracuji se členy LuckyTemplates na fóru, viděl jsem určité zmatky s iteračními funkcemi v jazyce DAX. Uděláme tedy recenzi toho, co lze pomocí těchto funkcí dosáhnout a proč byste je měli používat. Celé video tohoto tutoriálu si můžete prohlédnout ve spodní části tohoto blogu.

Jak se více dostanete do vzorců DAX , budete tyto iterační funkce používat mnohem více, než si myslíte. Jsou mnohem univerzálnější než jednoduché agregační funkce jako SUM nebo AVERAGE .

Mám zde několik příkladů a chci se propracovat logikou v každém z těchto příkladů, abyste mohli velmi dobře porozumět tomu, co se vlastně děje, když je logika spuštěna prostřednictvím těchto vzorců.

Klíčovou věcí na iteračních funkcích je to, že něco iterují.

Obsah

Jednoduchá iterace pomocí SUMX

Práce s iteračními funkcemi v jazyce DAX

V tomto případě chci něco shrnout, ale chci iterovat každý jednotlivý řádek v této tabulce Prodej.

Práce s iteračními funkcemi v jazyce DAX

A pak na každém řádku chci spustit tuto specifickou logiku.

Práce s iteračními funkcemi v jazyce DAX

Pojďme rychle na naši velmi jednoduchou tabulku Prodej, kde chci spustit nějakou logiku na každém jednotlivém řádku. A pak chci vynásobit Množství cenou.

Práce s iteračními funkcemi v jazyce DAX

Cena v této tabulce neexistuje. A u tohoto konkrétního modelu je skutečně v tabulce Produkt.

Práce s iteračními funkcemi v jazyce DAX

Další věc, kterou musím udělat, je vrátit se ke své tabulce produktů a mohu to udělat pomocí RELATED . Když počítáme množství krát relevantní cena, děláme to pro každý jednotlivý řádek. To je přesně to, co se děje uvnitř tohoto vzorce.

Toto jsou klíčové pojmy, které je třeba si zapamatovat, když začneme dělat pokročilejší věci.

Alternativní přístup k prodeji pomocí SUMX

Práce s iteračními funkcemi v jazyce DAX

V tomto příkladu mámznovu iterujte tabulkou Prodej. Takže tuto logiku spustíme v každém jednotlivém řádku a vypočítáme množství krát cena v každém jednotlivém řádku a poté to agregujeme, jakmile bude provedena všechna iterace.

Práce s iteračními funkcemi v jazyce DAX

Zde uvidíte, že tento výsledek je přesně stejný jako výsledky v prvním příkladu (SUMX Tutorial 2) nebo Total Sales.

Můžete sem umístit celou řadu různých věcí – může to být míra a můžete se rozvětvovat pomocí funkce iterace. Abyste skutečně získali správné výpočty, nemusíte odkazovat na konkrétní sloupce.

Práce s iteračními funkcemi v jazyce DAX

Jak můžete vidět zde, vše, co jsem udělal, je umístit sem míru (Total Sales) a dostávám přesně stejný výsledek.

SUMX a logické funkce

Práce s iteračními funkcemi v jazyce DAX

Používám zde SUMX , ale je to také relevantní pro, MINX a MAXX . Všechno jsou to velmi podobné věci.

Další klíčová věc, kterou si u těchto iteračních funkcí zapamatujte, je, že spouštějí logiku na každém jednotlivém řádku a výsledek ukládá do paměti.

Jakmile jsou všechny tyto hodnoty uloženy do paměti, provede se celkový výpočet – jako SUM nebo AVERAGE .

Práce s iteračními funkcemi v jazyce DAX

Zpět k našemu příkladu, zde můžete vidět, že částka v tomto sloupci je o něco nižší než v předchozích sloupcích.

Práce s iteračními funkcemi v jazyce DAX

Pomocí funkce iterace SUMX chci iterovat každý jednotlivý řádek v tabulce Prodej. A v každém jednotlivém řádku chci vypočítat, zda je tento konkrétní prodej vyšší než 2 000 USD. Pokud ano, chci vypočítat celkový prodej pro tento řádek. Ale pokud byl celkový prodej nižší než 2000 $, chci vrátit nulu. Chci tedy spočítat pouze tržby s vyšší hodnotou.

Někteří lidé navrhnou, že bych mohl logiku vložit do vypočítaného sloupce. Ale nechceme to udělat, protože existuje mnohem lepší způsob, jak tuto logiku spustit uvnitř jazyka DAX , než ji fyzicky umístit do sloupce.

Iterace přes tabulky

To je místo, kde jsou iterační funkce vážně úžasné. Nejen, že můžete iterovat fyzickou tabulkou, jako jsme to dělali dříve, ale můžete také iterovat nějakou jinou virtuální tabulkou, kterou zadáte jako parametr.

Práce s iteračními funkcemi v jazyce DAX

Budeme si myslet, že každý jednotlivý výsledek zde má specifický kontext. V tomto konkrétním případě máme kontext zákazníka.

Práce s iteračními funkcemi v jazyce DAX

V této souvislosti chci procházet každé jednotlivé místo a chci zjistit, zda konkrétní zákazník dosáhl tržeb nad 5 000 USD.

Pokud ano, chci vypočítat celkové prodeje. Ale pokud ne, chci, aby vrátil nulu.

Práce s iteračními funkcemi v jazyce DAX

V tomto konkrétním případě tedy vypočítávám místa s vysokou hodnotou, ve kterých tento zákazník nakupuje, a celkový prodej, který v těchto místech provádějí.

Práce s iteračními funkcemi v jazyce DAX

Cozde dělá, vytváří virtuální tabulku. Takže SUMX zde ani nepracuje nad ničím fyzickým. Ve skutečnosti funguje na něčem, co je zcela virtuální.

Jednoduchá iterace pomocí MINX

Práce s iteračními funkcemi v jazyce DAX

Je to podobné jako v předchozích příkladech, ale místo SUMX spustíme nějaký jiný typ agregace, jakmile projdeme každý jednotlivý řádek.

Práce s iteračními funkcemi v jazyce DAX

V tomto konkrétním případě sepisujeme každé jednotlivé místo pro každého zákazníka a pracujeme na celkovém prodeji pro každé z těchto míst.

Práce s iteračními funkcemi v jazyce DAX

Poté chceme vrátit minimální částku z místa, kde zakoupili.

Jednoduchá iterace pomocí MAXX

Práce s iteračními funkcemi v jazyce DAX

Také zde dělám podobnou věc, jen abych vám ukázal všestrannost iteračních funkcí. Procházím každou jednotlivou lokalitu a dívám se na jejich prodeje, ale pak vracím maximum z těchto prodejů, což je důvod, proč zde vidíme vyšší čísla.

Závěr

Klíčová věc, které jsem se chtěl v tomto článku dotknout, je rozsah možností, které máte uvnitř iterační funkce oproti jednoduchému součtu nebo průměru.

Jakmile se začnete vrtat do složitějších výpočtů, uvidíte, jak zásadní jsou tyto konkrétní funkce pro návrat hodnot na úrovni kontextu.

Existuje tolik všestrannosti a tolik způsobů, že můžete provádět tyto výpočty pomocí jednoduchého vzorce, pokud jen víte, jak manipulovat s parametry.

Pokud se vám líbily informace o těchto iteračních funkcích , můžete procházet tyto odkazy a získat další informace o tomto tématu:

Klíčové koncepty pro iteraci funkcí v LuckyTemplates

Iterace logiky prostřednictvím virtuálních tabulek – pokročilé koncepty jazyka DAX v LuckyTemplates

Užijte si práci přes tento.

Leave a Comment

Extrahovanie motívov a obrázkov LuckyTemplates z PBIX

Extrahovanie motívov a obrázkov LuckyTemplates z PBIX

Naučte se, jak rozebrat soubor PBIX a extrahovat motivy a obrázky LuckyTemplates z pozadí pro váš report!

Prehľad a vytvorenie domovskej stránky SharePointu

Prehľad a vytvorenie domovskej stránky SharePointu

Naučte sa, ako vytvoriť domovskú stránku SharePointu, ktorá sa predvolene načítava, keď používatelia zadajú adresu vašej webovej lokality.

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í.