Arbeide med itererende funksjoner i DAX

Jeg har sett en del forvirring med iterasjonsfunksjoner i DAX hver gang jeg jobber med LuckyTemplates-medlemmer i forumet. Så vi vil gjøre en gjennomgang av hva som kan oppnås med disse funksjonene og hvorfor du bør bruke dem. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

Etter hvert som du kommer mer inn i DAX- formler, vil du bruke disse iterasjonsfunksjonene mye mer enn du tror. De er mye mer allsidige enn enkle aggregeringsfunksjoner som SUM eller AVERAGE .

Jeg har noen eksempler her, og jeg ønsker å jobbe gjennom logikken i hvert av disse eksemplene slik at man kan få en veldig god forståelse av hva som faktisk skjer når logikk kjøres via disse formlene.

Det viktigste med å iterere funksjoner er at de itererer gjennom noe.

Innholdsfortegnelse

Enkel iterasjon ved hjelp av SUMX

Arbeide med itererende funksjoner i DAX

I dette tilfellet vil jeg oppsummere noe, men jeg vil iterere gjennom hver eneste rad i denne salgstabellen.

Arbeide med itererende funksjoner i DAX

Og så på hver eneste rad vil jeg kjøre denne spesifikke logikken her.

Arbeide med itererende funksjoner i DAX

La oss raskt hoppe til vår veldig enkle salgstabell, hvor jeg vil kjøre litt logikk på hver eneste rad. Og så vil jeg gange Mengde med Pris.

Arbeide med itererende funksjoner i DAX

Prisen finnes ikke i denne tabellen. Og for denne modellen er den faktisk i produkttabellen.

Arbeide med itererende funksjoner i DAX

Det neste jeg må gjøre er å komme tilbake til produktbordet mitt, og det kan jeg gjøre med RELATED . Når vi beregner antall ganger den aktuelle prisen, gjør vi dette for hver enkelt rad. Dette er nøyaktig hva som skjer inne i denne formelen.

Dette er nøkkelbegrepene å huske når vi begynner å gjøre mer avanserte ting.

En alternativ tilnærming til å få salg ved å bruke SUMX

Arbeide med itererende funksjoner i DAX

I dette eksemplet har jeggå gjennom salgstabellen igjen. Så vi kjører den logikken i hver enkelt rad og beregner kvantiteten ganger prisen på hver enkelt rad og aggregerer den så snart all iterasjonen er fullført.

Arbeide med itererende funksjoner i DAX

Du vil se her at dette resultatet er nøyaktig det samme som resultatene i det første eksemplet (SUMX Tutorial 2) eller Total Sales.

Du kan plassere en hel rekke forskjellige ting her – det kan være et mål og du kan forgrene deg med en itererende funksjon. Du trenger ikke å referere til spesifikke kolonner for å faktisk få beregningene riktig.

Arbeide med itererende funksjoner i DAX

Som du kan se her, er alt jeg har gjort å plassere et mål (Totalt salg) her og jeg får nøyaktig det samme resultatet.

SUMX og logiske funksjoner

Arbeide med itererende funksjoner i DAX

Jeg bruker SUMX her, men det er også relevant for, MINX og MAXX . De er alle veldig like ting.

En annen viktig ting å huske med disse itererende funksjonene er at de kjører logikk på hver eneste rad, og det lagrer resultatet i minnet.

Når alle disse verdiene er lagret i minnet, er den overordnede beregningen gjort – som en SUM eller et GJENNOMSNITT .

Arbeide med itererende funksjoner i DAX

Tilbake til vårt eksempel kan du se her at beløpet i denne kolonnen er litt mindre enn de foregående kolonnene.

Arbeide med itererende funksjoner i DAX

Med SUMX iterating-funksjonen ønsker jeg å iterere gjennom hver enkelt rad i Sales-tabellen. Og i hver eneste rad vil jeg beregne om det bestemte salget er større enn $2000. Hvis det er det, vil jeg beregne det totale salget for den raden. Men hvis totalsummen av salget var mindre enn $2000, vil jeg returnere null. Så jeg vil bare beregne salget med høyere verdi.

Noen vil foreslå at jeg bare kan legge logikken i en beregnet kolonne. Men vi ønsker ikke å gjøre det fordi det er en mye bedre måte å kjøre denne logikken inne i DAX i stedet for å plassere den fysisk i en kolonne.

Iterering gjennom tabeller

Det er her iterasjonsfunksjoner er virkelig fantastiske. Ikke bare kan du iterere gjennom en fysisk tabell som vi gjorde før, men du kan også iterere gjennom en annen virtuell tabell som du legger inn som en parameter.

Arbeide med itererende funksjoner i DAX

Vi kommer til å tenke at hvert eneste resultat her har en spesifikk kontekst. I dette spesielle tilfellet har vi kundekonteksten.

Arbeide med itererende funksjoner i DAX

I denne sammenhengen ønsker jeg å iterere gjennom hvert enkelt sted og vil se om en bestemt kunde har nådd salg over $5000.

Hvis det gjør det, vil jeg beregne det totale salget. Men hvis den ikke gjør det, vil jeg at den skal returnere null.

Arbeide med itererende funksjoner i DAX

Så i dette spesielle tilfellet beregner jeg de verdifulle stedene som denne kunden kjøper på og det totale salget de gjør på disse stedene.

Arbeide med itererende funksjoner i DAX

Hvagjør her er det å lage en virtuell tabell. Så SUMX jobber ikke engang med noe fysisk her. Den jobber faktisk over noe som er helt virtuelt.

Enkel iterasjon ved hjelp av MINX

Arbeide med itererende funksjoner i DAX

Dette ligner på de tidligere eksemplene, men i stedet for SUMX , kommer vi til å kjøre en annen type aggregering når vi itererer gjennom hver enkelt rad.

Arbeide med itererende funksjoner i DAX

I dette spesielle tilfellet skriver vi gjennom hvert enkelt sted for hver kunde og regner ut det totale salget for hvert av disse stedene.

Arbeide med itererende funksjoner i DAX

Da ønsker vi å returnere minimumsbeløpet for stedet der de kjøpte.

Enkel iterasjon med MAXX

Arbeide med itererende funksjoner i DAX

Jeg gjør også en lignende ting her bare for å vise deg allsidigheten til iterasjonsfunksjoner. Jeg går gjennom hvert enkelt sted og ser på salget deres, men returnerer deretter maksimalt av disse lokasjonssalgene, og det er grunnen til at vi ser høyere tall her.

Konklusjon

Det viktigste jeg ønsket å berøre i denne artikkelen er utvalget av alternativer du har inne i en iterasjonsfunksjon kontra en enkel sum eller et gjennomsnitt.

Når du begynner å grave i mer komplekse beregninger, vil du se hvor viktige disse funksjonene er for å returnere verdier på kontekstnivå.

Det er så mye allsidighet og så mange måter at du kan kjøre disse beregningene ved å bruke en enkel formel hvis du bare vet hvordan du manipulerer parametrene.

Hvis du likte å lære om disse iterasjonsfunksjonene , kan du bla gjennom disse koblingene for å få mer informasjon om dette emnet:

Nøkkelkonsepter for gjentakelse av funksjoner i LuckyTemplates

Itererende logikk gjennom virtuelle tabeller – Avanserte DAX-konsepter i LuckyTemplates

Nyt å jobbe gjennom denne.


DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.

Opprette en datotabell i LuckyTemplates

Opprette en datotabell i LuckyTemplates

Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.

Vanlige SQL-funksjoner: en oversikt

Vanlige SQL-funksjoner: en oversikt

Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.

LuckyTemplates Template Creation: Guide og tips

LuckyTemplates Template Creation: Guide og tips

I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.

LuckyTemplates-rangering og tilpasset gruppering

LuckyTemplates-rangering og tilpasset gruppering

I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.