Itererende funktioner i DAX-sprog – et detaljeret eksempel

Til dette blogindlæg vil jeg dykke ned i itererende funktioner inden for DAX-sproget i LuckyTemplates. Grunden til, at jeg vil bruge lidt tid på at vise, hvad du kan gøre inden for itererende funktioner, er fordi det er så vigtigt et koncept, at du skal lære meget godt. Du kan se den fulde video af denne tutorial nederst på denne blog.

Du har måske kun lige gennemført nogle simple SUM eller potentielt brugt AVERAGE-funktionen, men det er også vigtigt at forstå, hvordan man bruger itererende funktioner, der har et X i slutningen , såsom: SUMX, AVERAGEX eller COUNTX.

Årsagen er, at du kan blive langt mere avanceret inden for en itererende funktion, end du kan med en aggregeringsfunktion.

Indholdsfortegnelse

Hvad er en itererende funktion?

Hvis du stadig ikke er bekendt med, hvad en iterationsfunktion er, er det en funktion i DAX-formelsproget, der generelt har et X i enden. Du har også tabelfunktioner, der itererer gennem en tabel som FILTER eller VALUES, men i dette tilfælde skal vi udelukkende beskæftige os med SUMX.

Hvis du ser på vores formel for samlet salg, kan du, at dette er en itererende funktion på grund af SUMX. Iteration betyder at gentage hver enkelt række og lave en beregning. I dette tilfælde multiplicerer vi for hver enkelt række i salgstabellen mængden med den aktuelle pris. Vi går også tilbage til produkttabellen ved at bruge funktionen RELATED for at få den aktuelle pris.

Itererende funktioner i DAX-sprog – et detaljeret eksempel

Jeg vil gerne vise dig, hvordan du kan skrive virkelig komplekse itererende funktioner, som uddrager stor indsigt, som du måske ønsker at få i dine data. Til denne tutorial vil jeg beregne, hvor mange salg vi laver over en bestemt pris. I dette tilfælde vil vi vælge $2.000.

Jeg vil også gerne vide, hvad vores salg om måneden for produkter, der er over $2000, men hvor nogen køber mere end blot ét produkt. Vi vil også gerne se, hvor godt det er i forhold til vores samlede salg. Dette er den slags kompleksitet, der kan opnås ved kun at skrive én formel og ved at bruge en itererende funktion.

Udsalgspris større end $2000

Lad os oprette et mål og kalde det Salgspris > $2000 & mængde > 1 . Generelt skal du skrive et par forskellige kolonner eller et par forskellige foranstaltninger for at se svaret her, men jeg vil vise dig, hvordan du rent faktisk kan gøre det med kun én. Jeg har tænkt mig at starte med SUMX, og der står her, at vi skal ind i et bord, ikke?

Itererende funktioner i DAX-sprog – et detaljeret eksempel

Så vi vil tackle denne mængde > 1 udfordring ved at oprette en tabel, som ikke er hele salgstabellen, men en tabel, som allerede har filtreret alt fra, som kun har set én gang. Vi vil bruge FILTER her, da det er en bordfunktion, så du kan sætte enhver form for bord indeni. Så går vi med Salg og gentager hver enkelt række i Salgstabellen inden for dennefunktion og frafiltrer hver række med en mængde, der er større end én.

Itererende funktioner i DAX-sprog – et detaljeret eksempel

For hvert salg over 1 ønsker jeg også at skabe en ekstra logik. Jeg skal skrive et udtryksmønster og bruge SWITCH her. Vi vil sige, at hvis salget har en aktuel pris, der er større end eller lig med $2000, så vil jeg beregne det samlede salg. Hvis det ikke er det, så gider jeg slet ikke regne det ud. Til sidst vil jeg sætte 0 som et alternativt resultat.

Itererende funktioner i DAX-sprog – et detaljeret eksempel

Sådan skriver du nogle ret komplekse itererende formler på DAX-sproget. Nøglen er blot at forstå, hvilken slags tabeller du kan sætte ind der og at vide, hvad den faktiske iteration gør .

I dette tilfælde, for hver enkelt række i denne nedfiltreringstabel, vurderer jeg, hvad den aktuelle pris er, der er større end $2000. Hvis det er det, tæller vi salget af den række op, og hvis det ikke er, så er det kun 0.

Når jeg trækker dette mål ind i tabellen, vil du se, at resultaterne ligner det, vi opnåede i det første diagram; den eneste forskel er, at dette er på daglig basis.

Itererende funktioner i DAX-sprog – et detaljeret eksempel

Udsalgspris større end $500

Vi kan skabe yderligere indsigt her ved at genbruge det samme mønster. Hvis vi ville se på, hvad der var over $500, skal vi bare lave nogle små ændringer her, trykke på enter, og så trække dette også ind i tabellen.

Itererende funktioner i DAX-sprog – et detaljeret eksempel

Det er klart, at vi kan se en stor forskel, fordi der er flere produkter, vi tæller op. Dette skyldes, at vi ikke slipper af med så mange produkter til højere priser eller lavere priser, som vi tidligere var med $2000.

Itererende funktioner i DAX-sprog – et detaljeret eksempel

Visualisering af data 

Vi kan også ændre dette til en, men som du kan se ser diagrammet lidt travlt ud, så det er nok bedre at forblive i tabellen, eller vi kan gøre tidsrammen mere komprimeret som diagrammet til venstre.

Itererende funktioner i DAX-sprog – et detaljeret eksempel

Forhåbentlig kan du evaluere og forstå, hvor langt du kan gå med disse itererende funktioner i DAX-sproget. Du kan virkelig begynde at dykke ind i ethvert aspekt af dine data eller udtrække meget specifik indsigt. Måden at gøre det på er ved at bruge denne Row Context, som giver dig mulighed for rent faktisk at komme ind i disse itererende funktioner. Du kan se på en individuel række, sætte den i eller uden for din beregning og bruge iterationsfunktionerne såsom SUMX, AVERAGEX og COUNTX.

Itererende funktioner giver dig så meget mere fleksibilitet med hensyn til beregningerne, som du kan udføre på rækkeniveau i forhold til aggregeringer, som kun tillader dig at aggregere en hel kolonne. Nu inden for itererende funktioner skal du først indtaste en tabelreference og derefter et udtryk, men helt sikkert udvide dit sind med hensyn til, hvad en af ​​disse faktisk kan være.

Inden for iterationsfunktioner kan du faktisk indsætte en hvilken som helst tabel eller en hvilken som helst afledning af en tabel... også enhver virtuel tabel eller reference til tabel. Det giver langt mere fleksibilitet, end du normalt ville have, hvis du bare bruger en hel tabel som din transaktionstabel til at køre noget logik igennem.

Det udtryk (eller mål), du indtaster, kan også være meget avanceret. Du kan bruge avanceret IF-logik eller SWITCH-logik, eller dybest set alt, hvad du kan gøre på et rækkeniveau inde i en beregnet kolonne. Du kan faktisk sætte det i den udtryksdel af en itererende funktion.

Konklusion

Det vigtigste ved dette indlæg er, at itererende funktioner er utroligt vigtige at forstå og lære godt inde i LuckyTemplates.

Hvis du lærer dette godt, så bliver mulighederne for at køre interne beregninger i hukommelsen via mål virkelig, virkelig kraftfulde.

Tjek udhvis du lige er startet med DAX-sproget og LuckyTemplates. Masser at lære inden for dette gratis kursus. Du kan finde dette på.


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.