Hur man använder en itererande funktion i LuckyTemplates

Denna handledning kommer att lära dig om olikaoch hur du effektivt använder dem i dina beräkningar.

Jag diskuterar ofta hur beräknade kolumner inte krävs när man gör vissa beräkningar. Detta beror på iteratorer.

Iteratorer eller itererande funktioner kan hjälpa dig att göra en beräkning utan att fysiskt lägga in resultaten i tabellen.

Denna teknik kan hjälpa dig att spara på det minne som behövs för att ladda din. I nästa avsnitt kommer jag att visa dig hur du optimerar dina beräkningar med iteratorer.

Innehållsförteckning

Beräkna total försäljning med hjälp av en iteratorfunktion

För att komma igång skapar du ett nytt mått för totala kostnader . Se till att välja den måttgrupp där du vill att detta nya mått ska landa.

Tryck på Shift och Enter för att flytta ner en rad innan du sätter in den första itereringsfunktionen, som är .

I formelfältet i LuckyTemplates kan du redan se exakt vad du behöver lägga efter funktionen som föreslagits av IntelliSense. För SUMX måste du lägga till en tabell efter den.

SUMX - formeln kommer att köra logiken på varje enskild rad i den givna tabellen. Det är därför iteratorer associeras med radkontext . Inom måttet kan iteratorer förvandla formeln till en radkontext.

Du måste referera till försäljningstabellen efter SUMX - funktionen. För att beräkna de totala kostnaderna måste du multiplicera orderkvantitet med total enhetskostnad .

Vi behöver inte referera till den nya kolumnen som skapades alls. De totala kostnaderna är ett mått och jag kan ta med det i min tabell för att utvärdera våra totala kostnader.

Dra nu måttet inuti tabellen för att se resultaten. Se till att du valde ett initialt sammanhang från filtret Stad .

Vi kan ändra det ursprungliga sammanhanget för vår beräkning genom att klicka på de olika regionerna som vi vill titta på.

De totala kostnaderna fungerar på liknande sätt när det gäller det initiala sammanhanget. Det initiala sammanhanget tillämpas på försäljningstabellen, men inom vart och ett av dessa individuella resultat beräknar vi orderkvantiteten multiplicerat med den totala enhetskostnaden.

Bakom kulisserna i vår datamodell har vi aktiverat vårt filter och vi har kontext som kommer in från vår regionstabell och en annan kontext som kommer in från vår datumtabell. Dessa flyter ner till vår försäljningstabell, som filtreras av itereringsfunktionen SUMX.

Eftersom SUMX- funktionen utvärderar varje enskild rad i försäljningstabellen virtuellt , finns det inget behov av en fysisk kolumn för resultaten.

Efter det initiala sammanhanget får SUMX produkten av orderkvantitet och total enhetskostnad för varje enskild rad. Slutligen utvärderar den alla beräknade resultat från alla rader.

Om du märkte skapades den ursprungliga kolumnen Kostnader genom en beräknad kolumn. Som jag har sagt, det är onödigt eftersom iteratorer redan kan göra sitt arbete. Du kan ta bort den eftersom den kan ta upp onödigt minne i din modell.

Itererande formler kör utvärderingar på varje enskild rad, medan aggregerande formler inte gör det.

Detta är ett enkelt exempel, men du kan vara mer avancerad här och skriva IF-satser och SWITCH-satser. Dessutom behöver du inte skapa en fysisk tabell; du kan använda en virtuell istället.

Mycket av denna information behandlas på djupet i, men detta är bara för att visa dig början av itereringsfunktioner och hur du börjar använda dem när det är lämpligt.

Om du känner att du behöver skapa en beräknad kolumn i din faktatabell kan jag nästan garantera att en itererande funktion kommer att göra jobbet åt dig.

Använda andra DAX Iterator-funktioner

Nu ska jag visa dig ett annat exempel på hur iteratorer kan göra underverk i din beräkning. Den här gången ska vi räkna ut den genomsnittliga kostnaden.

Kopiera bara formeln för totala kostnader och klistra in den i ett nytt mått. Du behöver bara ändra namnet till Genomsnittliga kostnader och sedan användaistället för SUMX .

Den nya formeln kör en liknande logik eftersom den utvärderar varje enskild rad i tabellen Försäljning . Dessutom behöver du fortfarande få produkten av orderkvantitet och total enhetskostnad . Den enda skillnaden här är istället för summan, formeln beräknar medelvärdet.

Om du nu tar med måttet Genomsnittliga kostnader till tabellen kan du se hur det står sig jämfört med måttet Totala kostnader .

Det är otroligt hur du kan köra en liknande logik bara genom att ändra itereringsfunktionen.

Ytterligare dataoptimeringstekniker 

För att optimera din tabell kan du ta bort överflödig information som kolumnen Totala intäkter .

Eftersom du enkelt kan uppnå de genomsnittliga kostnaderna behöver du inte kolumnen Totala intäkter i tabellen längre. Så länge du har kolumnerna Enhetspris och Total enhetskostnad är allt bra.

Nu kan du istället skapa ett nytt mått för Total Sales (Iteration) genom att använda SUMX -funktionen. Du behöver bara referera till försäljningstabellen och sedan få produkten av orderkvantitet och enhetspris .

Därefter kan du jämföra resultaten i kolumnerna Total försäljning och Total försäljning (Iteration) . De har båda samma resultat, eller hur?

När det gäller prestanda är det inte så stor skillnad mellan att använda beräknade kolumner och iteratorer. Men när det kommer till datamodellen kan en iteratorfunktion bli av med en hel kolumn och spara hundratals rader med data.

Dessutom kan du ta bort redundanta kolumner eftersom iteratorer kan beräkna de nödvändiga resultaten virtuellt. Denna praxis kommer att göra ditt bord mycket tunnare och din modell mycket snabbare. Se till att du tillämpar denna optimeringsteknik i dina egna beräkningar.

Slutsats

Sammanfattningsvis utvärderar en itererande funktion varje enskild rad medan aggregatorer inte gör det.

Bokstaven X i slutet av funktionen gör det lättare att identifiera iteratorer. Exempel inkluderar SUMX , AVERAGEX ,,funktioner och mer.

Att använda itereringsfunktioner kommer inte att skapa ytterligare fysiska tabeller . Detta kan hjälpa dig att spara minne i LuckyTemplates.

Exemplen för SUMX och AVERAGEX som jag har täckt är enkla scenarier. Senare kommer vi att gå in på mer avancerade genom att lägga till IF-satser och SWITCH-satser .

Med vänliga hälsningar!




*****







Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.