Arbejde med itererende funktioner i DAX

Jeg har set en del forvirring med iterationsfunktioner i DAX, hver gang jeg arbejder med LuckyTemplates-medlemmer i forummet. Så vi vil lave en gennemgang af, hvad der kan opnås ved at bruge disse funktioner, og hvorfor du bør bruge dem. Du kan se den fulde video af denne tutorial nederst på denne blog.

Efterhånden som du kommer mere ind i DAX- formler, vil du bruge disse itererende funktioner meget mere, end du tror. De er meget mere alsidige end simple aggregeringsfunktioner som SUM eller AVERAGE .

Jeg har nogle eksempler her, og jeg vil gennemarbejde logikken i hvert af disse eksempler, så man kan få en rigtig god forståelse af, hvad der egentlig sker, når logikken køres via disse formler.

Det vigtigste ved iteration af funktioner er, at de itererer gennem noget.

Indholdsfortegnelse

Simpel iteration ved hjælp af SUMX

Arbejde med itererende funktioner i DAX

I dette tilfælde vil jeg opsummere noget, men jeg vil gerne gentage hver eneste række i denne salgstabel.

Arbejde med itererende funktioner i DAX

Og så på hver eneste række vil jeg køre denne specifikke logik her.

Arbejde med itererende funktioner i DAX

Lad os hurtigt springe til vores meget enkle salgstabel, hvor jeg vil køre noget logik på hver eneste række. Og så vil jeg gange Mængde med Pris.

Arbejde med itererende funktioner i DAX

Prisen findes ikke i denne tabel. Og for netop denne model er den faktisk i produkttabellen.

Arbejde med itererende funktioner i DAX

Den næste ting, jeg skal gøre, er at nå tilbage til mit produktbord, og det kan jeg gøre med RELATED . Når vi beregner mængde gange den relevante pris, gør vi dette for hver enkelt række. Det er præcis, hvad der sker inde i denne formel.

Disse er nøglebegreberne at huske, når vi begynder at gøre mere avancerede ting.

En alternativ tilgang til at få salg ved hjælp af SUMX

Arbejde med itererende funktioner i DAX

I dette eksempel har jeggentag gennem salgstabellen igen. Så vi kører den logik i hver enkelt række og beregner mængden gange prisen på hver enkelt række og aggregerer det så, når al iterationen er udført.

Arbejde med itererende funktioner i DAX

Du vil se her, at dette resultat er nøjagtigt det samme som resultaterne i det første eksempel (SUMX Tutorial 2) eller det samlede salg.

Du kan placere en lang række forskellige ting her - det kan være et mål, og du kan forgrene dig med en itererende funktion. Du behøver ikke at referere til specifikke kolonner for faktisk at få beregningerne korrekt.

Arbejde med itererende funktioner i DAX

Som du kan se her, er alt, hvad jeg har gjort, at placere et mål (Total Sales) her, og jeg får nøjagtig det samme resultat.

SUMX og logiske funktioner

Arbejde med itererende funktioner i DAX

Jeg bruger SUMX her, men det er også relevant for, MINX og MAXX . De er alle meget ens ting.

En anden vigtig ting at huske med disse itererende funktioner er, at de kører logik på hver eneste række, og det gemmer resultatet i hukommelsen.

Når alle disse værdier er gemt i hukommelsen, udføres den overordnede beregning - som en SUM eller et GENNEMSNIT .

Arbejde med itererende funktioner i DAX

Tilbage til vores eksempel kan du her se, at beløbet i denne kolonne er lidt mindre end de foregående kolonner.

Arbejde med itererende funktioner i DAX

Med SUMX iterating-funktionen ønsker jeg at iterere gennem hver eneste række i Sales-tabellen. Og i hver eneste række vil jeg beregne, om det pågældende salg er større end $2.000. Hvis det er, vil jeg beregne det samlede salg for den række. Men hvis det samlede salg var mindre end $2000, så vil jeg returnere nul. Så jeg vil kun beregne det højere værdisalg.

Nogle mennesker vil foreslå, at jeg bare kunne sætte logikken inde i en beregnet kolonne. Men vi ønsker ikke at gøre det, fordi der er en meget bedre måde at køre denne logik inde i DAX i stedet for at placere den fysisk i en kolonne.

Iteration gennem tabeller

Det er her, at itererende funktioner for alvor er fantastiske. Ikke kun kan du iterere gennem en fysisk tabel, som vi gjorde før, men du kan også iterere gennem en anden virtuel tabel, som du indtaster som en parameter.

Arbejde med itererende funktioner i DAX

Vi kommer til at tro, at hvert enkelt resultat her har en bestemt kontekst. I dette særlige tilfælde har vi kundekonteksten.

Arbejde med itererende funktioner i DAX

I denne sammenhæng vil jeg gentage hver enkelt lokation og vil se, om en bestemt kunde har nået salg over 5.000 $.

Hvis det gør, vil jeg beregne det samlede salg. Men hvis den ikke gør det, vil jeg have, at den returnerer nul.

Arbejde med itererende funktioner i DAX

Så i dette særlige tilfælde beregner jeg de højværdisteder, som denne kunde køber på, og det samlede salg, som de laver på disse steder.

Arbejde med itererende funktioner i DAX

Hvadgør her, er det at skabe en virtuel tabel. Så SUMX arbejder ikke engang på noget fysisk her. Det arbejder faktisk over noget, der er fuldstændig virtuelt.

Enkel iteration ved hjælp af MINX

Arbejde med itererende funktioner i DAX

Dette ligner de tidligere eksempler, men i stedet for SUMX vil vi køre en anden form for aggregering, når vi itererer gennem hver enkelt række.

Arbejde med itererende funktioner i DAX

I dette særlige tilfælde gennemgår vi hver enkelt lokation for hver kunde og regner ud det samlede salg for hver af disse lokationer.

Arbejde med itererende funktioner i DAX

Så ønsker vi at returnere minimumsbeløbet for det sted, hvor de har købt.

Enkel iteration ved hjælp af MAXX

Arbejde med itererende funktioner i DAX

Jeg gør også en lignende ting her bare for at vise dig alsidigheden af ​​itererende funktioner. Jeg gennemgår hver enkelt lokation og ser på deres salg, men returnerer derefter det maksimale af disse lokationssalg, hvilket er grunden til, at vi ser højere tal her.

Konklusion

Den vigtigste ting, som jeg ønskede at berøre i denne artikel, er rækken af ​​muligheder, som du har inde i en itererende funktion versus en simpel sum eller et gennemsnit.

Når du begynder at grave i mere komplekse beregninger, vil du se, hvor vigtige disse særlige funktioner er for at returnere værdier på kontekstniveau.

Der er så meget alsidighed og så mange måder, at du kan køre disse beregninger ved hjælp af en simpel formel, hvis du bare ved, hvordan du manipulerer parametrene.

Hvis du kunne lide at lære om disse itererende funktioner , kan du gennemse disse links for at få flere oplysninger om dette emne:

Nøglebegreber til iteration af funktioner i LuckyTemplates

Itererende logik gennem virtuelle tabeller – Avancerede DAX-koncepter i LuckyTemplates

Nyd at arbejde igennem denne.


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.