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.
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
I dette tilfellet vil jeg oppsummere noe, men jeg vil iterere gjennom hver eneste rad i denne salgstabellen.
Og så på hver eneste rad vil jeg kjøre denne spesifikke logikken her.
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.
Prisen finnes ikke i denne tabellen. Og for denne modellen er den faktisk i produkttabellen.
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
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.
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.
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
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 .
Tilbake til vårt eksempel kan du se her at beløpet i denne kolonnen er litt mindre enn de foregående kolonnene.
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.
Vi kommer til å tenke at hvert eneste resultat her har en spesifikk kontekst. I dette spesielle tilfellet har vi kundekonteksten.
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.
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.
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
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.
I dette spesielle tilfellet skriver vi gjennom hvert enkelt sted for hver kunde og regner ut det totale salget for hvert av disse stedene.
Da ønsker vi å returnere minimumsbeløpet for stedet der de kjøpte.
Enkel iterasjon med MAXX
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.
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.
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å.
Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.
I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.
Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.
Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.
I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.
I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.
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.
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.