Itererende funksjoner i DAX-språk – et detaljert eksempel

For dette blogginnlegget ønsker jeg å dykke ned i iterasjonsfunksjoner innenfor DAX-språket i LuckyTemplates. Grunnen til at jeg vil bruke litt tid på å vise hva du kan gjøre inne i iterasjonsfunksjoner er fordi det er et så viktig konsept at du må lære veldig godt. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

Du har kanskje nettopp fullført noen enkle SUMMER eller potensielt brukt AVERAGE-funksjonen, men det er også viktig å forstå hvordan du bruker iterasjonsfunksjoner som har en X på slutten , for eksempel: SUMX, AVERAGEX eller COUNTX.

Årsaken er at du kan bli langt mer avansert innenfor en itererende funksjon enn du kan med en aggregeringsfunksjon.

Innholdsfortegnelse

Hva er en itererende funksjon?

Hvis du fortsatt ikke er kjent med hva en iterasjonsfunksjon er, er det en funksjon i DAX-formelspråket som vanligvis har en X på slutten. Du har også tabellfunksjoner som itererer gjennom en tabell som FILTER eller VALUES, men i dette tilfellet skal vi kun forholde oss til SUMX.

Hvis du ser på formelen vår for totalt salg, kan du dette er en itererende funksjon på grunn av SUMX. Iterering betyr å iterere gjennom hver enkelt rad og gjøre en beregning. I dette tilfellet, for hver enkelt rad i salgstabellen, multipliserer vi antallet med gjeldende pris. Vi går også tilbake til produkttabellen ved å bruke RELATED-funksjonen for å få den gjeldende prisen.

Itererende funksjoner i DAX-språk – et detaljert eksempel

Jeg vil vise deg hvordan du kan skrive virkelig komplekse iterasjonsfunksjoner som trekker ut stor innsikt som du kanskje vil ha i dataene dine. For denne opplæringen ønsker jeg å beregne hvor mange salg vi gjør over en viss pris. I dette tilfellet skal vi velge $2000.

Jeg vil også vite hva vi selger per måned for produkter som er over $2000, men hvor noen kjøper mer enn bare ett produkt. Vi ønsker også å se hvor godt det er sammenlignet med vårt totale salg. Dette er den typen kompleksitet som kan oppnås ved å skrive bare én formel og ved å bruke en iterasjonsfunksjon.

Salgspris større enn $2000

La oss lage et mål og kalle det Salgspris > $2000 & Quantity > 1 . Vanligvis må du skrive noen forskjellige kolonner eller noen forskjellige tiltak for å se svaret her, men jeg skal vise deg hvordan du faktisk kan gjøre det med bare én. Jeg skal begynne med SUMX og det står at her må vi legge inn et bord, ikke sant?

Itererende funksjoner i DAX-språk – et detaljert eksempel

Så vi skal takle denne Quantity > 1 -utfordringen ved å lage en tabell som ikke er hele salgstabellen, men en tabell som allerede har filtrert ut alt som bare har sett én gang. Vi vil bruke FILTER her siden det er en bordfunksjon, slik at du kan sette alle slags bord inni. Deretter går vi med Salg og itererer gjennom hver eneste rad i Salg-tabellen i dennefunksjon og filtrer ut hver rad med en mengde som er større enn én.

Itererende funksjoner i DAX-språk – et detaljert eksempel

For hvert salg over 1 ønsker jeg også å lage en ekstra logikk. Jeg skal skrive et uttrykksmønster og bruke SWITCH her. Vi skal si at hvis salget har en gjeldende pris som er større enn eller lik $2000, så vil jeg beregne det totale salget. Hvis det ikke er det, så ønsker jeg ikke å beregne det i det hele tatt. Til slutt vil jeg sette 0 som et alternativt resultat.

Itererende funksjoner i DAX-språk – et detaljert eksempel

Dette er hvordan du skriver noen ganske komplekse iterasjonsformler på DAX-språket. Nøkkeldelen er bare å forstå hva slags tabeller du kan sette inn der og vite hva den faktiske iterasjonen gjør .

I dette tilfellet, for hver enkelt rad i denne nedfiltreringstabellen, vurderer jeg hva som er gjeldende pris som er større enn $2000. Hvis det er det, teller vi opp salgene for den raden, og hvis det ikke er det, er det bare 0.

Når jeg drar dette målet inn i tabellen, vil du se resultatene ligner på det vi oppnådde i det første diagrammet; den eneste forskjellen er at dette er på daglig basis.

Itererende funksjoner i DAX-språk – et detaljert eksempel

Salgspris større enn $500

Vi kan skape ytterligere innsikt her ved å gjenbruke det samme mønsteret. Hvis vi ville se på hva som var over $500, er alt vi trenger å gjøre å gjøre noen små endringer her, trykke enter, og så dra dette inn i tabellen også.

Itererende funksjoner i DAX-språk – et detaljert eksempel

Selvfølgelig kan vi se en stor forskjell fordi det er flere produkter vi teller opp. Dette er fordi vi ikke blir kvitt så mange produkter med høyere pris eller lavere pris som vi var tidligere med $2000.

Itererende funksjoner i DAX-språk – et detaljert eksempel

Visualisere dataene 

Vi kan også endre dette til en, men som du kan se ser diagrammet litt travelt ut, så det er sannsynligvis bedre å forbli i tabellen, eller vi kan gjøre tidsrammen mer komprimert som diagrammet til venstre.

Itererende funksjoner i DAX-språk – et detaljert eksempel

Forhåpentligvis kan du evaluere og forstå hvor langt du kan gå med disse iterasjonsfunksjonene i DAX-språket. Du kan virkelig begynne å dykke inn i alle aspekter av dataene dine eller trekke ut veldig spesifikk innsikt. Måten å gjøre det på er ved å bruke denne radkonteksten, som lar deg faktisk komme inn i disse iterasjonsfunksjonene. Du kan se på en individuell rad, legge den inn i eller utenfor beregningen din og bruke iterasjonsfunksjonene som SUMX, AVERAGEX og COUNTX.

Itererende funksjoner gir deg så mye mer fleksibilitet når det gjelder beregningene som du kan gjøre på radnivå kontra aggregeringer som bare lar deg aggregere en hel kolonne. Nå innen iterasjonsfunksjoner må du først legge inn en tabellreferanse og deretter et uttrykk, men absolutt utvide tankene dine med tanke på hva en av disse faktisk kan være.

Innenfor iterasjonsfunksjoner kan du faktisk legge inn i en hvilken som helst tabell eller en hvilken som helst derivat av en tabell ... også en hvilken som helst virtuell tabell eller referanse til tabell. Det gir langt mer fleksibilitet enn du vanligvis ville hatt hvis du bare bruker en hel tabell som transaksjonstabellen din for å kjøre litt logikk gjennom.

Uttrykket (eller målet) du legger inn kan også være veldig avansert. Du kan bruke avansert IF-logikk eller SWITCH-logikk, eller egentlig alt du kan gjøre på radnivå i en beregnet kolonne. Du kan faktisk sette det i den uttrykksdelen av en itererende funksjon.

Konklusjon

Det viktigste med dette innlegget er at iterasjonsfunksjoner er utrolig viktige å forstå og lære godt inne i LuckyTemplates.

Hvis du lærer dette godt, blir mulighetene for å kjøre interne beregninger i minnet via mål veldig, virkelig kraftige.

Sjekk uthvis du nettopp har startet med DAX-språket og LuckyTemplates. Mye å lære på dette gratis kurset. Du finner dette på.

Leave a Comment

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.