Arbeta med itererande funktioner i DAX

Jag har sett en viss förvirring med itererande funktioner i DAX när jag arbetar med LuckyTemplates-medlemmar i forumet. Så vi kommer att göra en genomgång av vad som kan uppnås med dessa funktioner och varför du bör använda dem. Du kan se hela videon av denna handledning längst ner på den här bloggen.

När du lär dig mer om DAX- formler kommer du att använda dessa itererande funktioner mycket mer än du tror. De är mycket mer mångsidiga än enkla aggregeringsfunktioner som SUM eller AVERAGE .

Jag har några exempel här, och jag vill arbeta igenom logiken i vart och ett av dessa exempel så att du kan få en mycket bra förståelse för vad som faktiskt händer när logik körs via dessa formler.

Det viktigaste med att iterera funktioner är att de itererar genom något.

Innehållsförteckning

Enkel iteration med SUMX

Arbeta med itererande funktioner i DAX

I det här fallet vill jag sammanfatta något men vill iterera genom varje enskild rad i den här försäljningstabellen.

Arbeta med itererande funktioner i DAX

Och sedan på varje enskild rad vill jag köra den här specifika logiken här.

Arbeta med itererande funktioner i DAX

Låt oss snabbt hoppa till vår mycket enkla försäljningstabell, där jag vill köra lite logik på varje enskild rad. Och sedan vill jag multiplicera Kvantitet med Pris.

Arbeta med itererande funktioner i DAX

Priset finns inte i den här tabellen. Och för just den här modellen finns den faktiskt i produkttabellen.

Arbeta med itererande funktioner i DAX

Nästa sak jag behöver göra är att nå tillbaka till mitt produktbord och det kan jag göra med RELATED . När vi beräknar kvantitet gånger relevant pris, gör vi detta för varje enskild rad. Detta är exakt vad som händer inuti denna formel.

Det här är nyckelbegreppen att komma ihåg när vi börjar göra mer avancerade saker.

Ett alternativt tillvägagångssätt för att få försäljning med SUMX

Arbeta med itererande funktioner i DAX

I det här exemplet har jaggå igenom tabellen Försäljning igen. Så vi kör den logiken i varje enskild rad och beräknar kvantiteten gånger priset på varje enskild rad och aggregerar det sedan när all iterering är klar.

Arbeta med itererande funktioner i DAX

Du kommer att se här att detta resultat är exakt detsamma som resultaten i det första exemplet (SUMX Tutorial 2) eller den totala försäljningen.

Du kan placera en mängd olika saker här – det kan vara ett mått och du kan förgrena dig med en itererande funktion. Du behöver inte referera till specifika kolumner för att faktiskt få beräkningarna korrekt.

Arbeta med itererande funktioner i DAX

Som du kan se här, allt jag har gjort är att placera ett mått (Total Sales) här och jag får exakt samma resultat.

SUMX och logiska funktioner

Arbeta med itererande funktioner i DAX

Jag använder SUMX här, men det är också relevant för, MINX och MAXX . De är alla väldigt lika saker.

En annan viktig sak att komma ihåg med dessa itererande funktioner är att de kör logik på varje enskild rad, och det sparar resultatet i minnet.

När alla dessa värden har sparats i minnet görs den övergripande beräkningen – som en SUMMA eller ett MEDEL .

Arbeta med itererande funktioner i DAX

Tillbaka till vårt exempel kan du här se att beloppet i denna kolumn är något mindre än de tidigare kolumnerna.

Arbeta med itererande funktioner i DAX

Med SUMX iterating-funktionen vill jag iterera genom varje enskild rad i försäljningstabellen. Och på varje enskild rad vill jag beräkna om den specifika försäljningen är större än 2 000 $. Om så är fallet vill jag beräkna den totala försäljningen för den raden. Men om summan av försäljningen var mindre än $2000, då vill jag returnera noll. Så jag vill bara beräkna försäljningen med högre värde.

Vissa människor kommer att föreslå att jag bara kan lägga logiken i en beräknad kolumn. Men vi vill inte göra det eftersom det finns ett mycket bättre sätt att köra den här logiken inuti DAX istället för att placera den fysiskt i en kolumn.

Itererande genom tabeller

Det är här itererande funktioner är helt fantastiska. Du kan inte bara iterera genom en fysisk tabell som vi gjorde tidigare, utan du kan också iterera genom någon annan virtuell tabell som du matar in som en parameter.

Arbeta med itererande funktioner i DAX

Vi kommer att tro att varje enskilt resultat här har ett specifikt sammanhang. I just det här fallet har vi kundkontexten.

Arbeta med itererande funktioner i DAX

I detta sammanhang vill jag iterera genom varje enskild plats och vill se om en viss kund har nått försäljning över 5 000 USD.

Om det gör det vill jag räkna ut den totala försäljningen. Men om det inte gör det vill jag att det ska ge noll.

Arbeta med itererande funktioner i DAX

Så i det här specifika fallet beräknar jag de värdefulla platserna som den här kunden köper på och den totala försäljningen som de gör på dessa platser.

Arbeta med itererande funktioner i DAX

Vadgör här är att det skapar en virtuell tabell. Så SUMX jobbar inte ens med något fysiskt här. Det arbetar faktiskt över något som är helt virtuellt.

Enkel iteration med MINX

Arbeta med itererande funktioner i DAX

Detta liknar de tidigare exemplen men istället för SUMX kommer vi att köra någon annan typ av aggregering när vi itererar igenom varje enskild rad.

Arbeta med itererande funktioner i DAX

I det här fallet skriver vi igenom varje enskild plats för varje kund och räknar ut den totala försäljningen för var och en av dessa platser.

Arbeta med itererande funktioner i DAX

Sedan vill vi returnera minimibeloppet för den plats där de köpte.

Enkel iteration med MAXX

Arbeta med itererande funktioner i DAX

Jag gör också en liknande sak här bara för att visa dig mångsidigheten med itererande funktioner. Jag går igenom varje enskild plats och tittar på deras försäljning men returnerar sedan maximalt av dessa platsförsäljningar, vilket är anledningen till att vi ser högre siffror här.

Slutsats

Det viktigaste som jag ville beröra i den här artikeln är utbudet av alternativ som du har inuti en itererande funktion kontra en enkel summa eller ett genomsnitt.

När du börjar gräva i mer komplexa beräkningar kommer du att se hur viktiga dessa funktioner är för att returnera värden på kontextnivå.

Det finns så mycket mångsidighet och så många sätt att du kan köra dessa beräkningar med en enkel formel om du bara vet hur man manipulerar parametrarna.

Om du gillade att lära dig om dessa itererande funktioner kan du bläddra igenom dessa länkar för att få mer information om detta ämne:

Nyckelbegrepp för iterering av funktioner i LuckyTemplates

Itererande logik genom virtuella tabeller – Avancerade DAX-koncept i LuckyTemplates

Njut av att arbeta igenom den här.


Skapa en datumtabell i LuckyTemplates

Skapa en datumtabell i LuckyTemplates

Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.