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.


Tabulky proporcí a četností v Excelu

Tabulky proporcí a četností v Excelu

Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.

Najvýkonnejšie volanie funkcie v LuckyTemplates

Najvýkonnejšie volanie funkcie v LuckyTemplates

V tomto blogu preskúmajte množinu údajov LuckyTemplates, najvýkonnejšie volanie funkcií, ktoré vám prináša tisíce funkcií M a DAX na dosah ruky.

Techniky modelovania údajov na organizáciu opatrení DAX

Techniky modelovania údajov na organizáciu opatrení DAX

V dnešnom návode sa podelím o niekoľko techník modelovania údajov o tom, ako lepšie usporiadať vaše merania DAX pre efektívnejší pracovný tok.

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates je skvelý nástroj pre finančné výkazníctvo. Tu je návod, ako vytvoriť prispôsobené tabuľky pre váš finančný dashboard LuckyTemplates.

Osvedčené postupy toku jazyka Power Query

Osvedčené postupy toku jazyka Power Query

V tomto návode sa bude diskutovať o toku jazyka Power Query a o tom, ako môže pomôcť vytvoriť hladkú a efektívnu zostavu údajov.

LuckyTemplates vlastní ikony | Vizualizační technika PBI

LuckyTemplates vlastní ikony | Vizualizační technika PBI

Budu diskutovat o jedné z mých oblíbených technik kolem vlastních ikon LuckyTemplates, která používá vlastní ikony dynamickým způsobem ve vizuálech LuckyTemplates.