Hva er Power Query & M Language: En detaljert oversikt
Denne opplæringen gir en oversikt over Power Query Editor og M-språket på LuckyTemplates-skrivebordet.
Mange tror at vi ikke kan utføre tilpasset sortering ved hjelp av DAX , men det er ikke sant. DAX kan absolutt garantere sortering, og det er faktisk ganske enkelt å gjøre. I dagens blogg skal jeg vise deg hvordan du enkelt kan gjøre akkurat det. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.
Innholdsfortegnelse
Vår datamodell
La oss starte med en enkel datamodell. Datatabellen vår har tre kampanjer, analysert ROI og kostnad.
Som du kan se i tabellen, har de de samme kostnadene, men avkastningen deres er forskjellig. Konseptet her er å vite hvilke kampanjer vi bør kjøre avhengig av deres ROI for et gitt budsjett.
LuckyTemplates tilpasset sortering: Bruk av While-løkken
La oss starte med et mål med en enkel while-løkke.
Vi setter budsjettet vårt til 20 000 og lagrer det i Budsjett-variabelen ved å bruke _Budget.
Og så bruker vi while-løkken ved å lage en tabellvariabel VAR_Table .
Vi bruker dasom går mot vår basistabell 4 og legger til en løpende totalkolonne ved å bruke "_RT" .
Deretter henter vi [Analyzed ROI] i vår nåværende rad lagret som VAR_ROI . Deretter tar vi budsjettet vårt . Fra den trekker vi fra, filtrer tabell 4 for den analyserte ROI som er større enn eller lik ROI som vi henter for vår nåværende rad, og ta [Cost] .
Disse linjene vil ta den høyeste avkastningen i den første raden, deretter den nest høyeste for den neste raden, og så videre. Så i hovedsak vil vi ha en kolonne som er en løpende total som teller ned til null i negative.
Så går vi ut av while-løkken. Vi lager FinalTable-variabelen vår med VAR_FinalTable , hvor vi ganske enkelt filtrerer tabellvariabelen vår for den løpende totalen som er større enn eller lik null. Vi bruker dette filteret fordi alt under null betyr at vi har blitt negative og at vi er utenfor budsjettet.
Da kan vi bruke for disse verdiene. Vi tar med kolonnene våre – Kampanjer, analysert avkastning og kostnad – og legger til .
Vi kan vise denne kortvisualen i utvalgsruten og se at vi har Instagram og SEM, som er våre to høyeste avkastninger.
La oss sjekke den opprinnelige tabellen vår for å sammenligne resultatene.
Vi kan se at PPC faktisk har en lavere ROI enn SEM og Instagram.
Men som du kanskje har lagt merke til, kom ikke resultatet vårt tilbake i riktig rekkefølge, med Instagrams 8.1 som vises først før SEMs 8.15.
Bruk av LuckyTemplates sorteringsrekkefølge
Men hva om vi vil at Instagram skal returneres først fordi det har den høyeste ROI og SEM som skal returneres som nummer to? I utgangspunktet ønsker vi å garantere sorteringsrekkefølge. Dette blir litt vanskelig, men det er ikke vanskelig å forstå hvordan man gjør det.
Slik skal funksjonen vår se ut, med den nederste delen som er den samme som while-løkken vi hadde tidligere.
Og for å garantere sorteringsrekkefølge må vi gjøre litt ekstra arbeid.
Igjen starter vi med vårt VAR_Budget som vi setter til 20000. Deretter lager vi vår Count-variabel ved å bruke VAR_Count I og bruker på tabell 4.
I neste linje vil vi bruke CONCATENATEX -funksjonen til å sette sammen kolonnene Kampanjer, Analysert ROI og Kostnad. Du kan bruke hva som helst som skilletegn så lenge det ikke er i dataene dine, så i dette tilfellet, la oss bare bruke stjerner.
Deretter bruker vi et rørtegn (|) i den neste parameteren etter kostnadskolonnen. Vi bruker også VAR_Ordered for å sortere etter den analyserte avkastningen i synkende rekkefølge, noe som betyr at den høyeste avkastningen vil være øverst.
Hvis vi ser på kommentarlinjen, står det at koden vil gi oss resultatet i formatet SEM*8.158*10000 | Instagram*8,1*10000 . Det vil også komme ut i rekkefølgen av høyeste ROI til laveste ROI.
LuckyTemplates Egendefinert sortering: Brukes for Loop
Dette eksemplet er interessant fordi vi får en , while-løkke, og alle slags kule funksjoner. Denne gangen bruker vi for-løkken .
Tabell 1
For dette eksemplet er Tabell1 vår for-løkke, og det vi gjør er ADDCOLUMNS tilsom går fra en til vår telling med en skrevet som (1,_Count,1).
I vår rad bruker vi dafordi vi bruker pipetegnet for å skille radene i tabellen. Ved å bruke PATHITEM griper vi deretter banen fra den Ordnede variabelen, som er strengen vår.
Vi bruker også Value , som er vår automatiske kolonne som er opprettet med GENERATESERIES , eller våre kalendere 1, 2, 3, 4, 5, til vi har brukt opp antallet rader vi har i tabellen vår. Deretter returnerer vi den tilbake som tekst .
Det vi har nå er en garantert sorteringsrekkefølge for bordet vårt, som går fra høyeste ROI til laveste. Så her er din DAX for å garantere sorteringsrekkefølge.
Tabell 2
Nå, for å få dette i et brukbart format, må vi gjøre tabell 2 der vi skal plukke ut de individuelle kolonnene fra strengen vår som vi har.
La oss bruke en annen ADDCOLUMNS for å legge til Tabell1, vår for-løkke. For Kampanjer oppretter du en kampanjekolonne og brukerå erstatte stjerner med rør. Deretter bruker vi PATHITEM på RowPath for å ta det første elementet og returnere det som TEKST.
I kolonnen Analysert ROI vil vi i utgangspunktet gjøre det samme. ERSTATT stjerne med rør. Ta så tak i det andre elementet i vår vei og returner det som TEKST. Vi gjør dette fordi PATHITEM av en eller annen grunn lar oss returnere som heltall eller tekst, men ikke desimaltall.
Det er litt rart, men vi kan løse det fordi alt vi trenger å gjøre er å legge til null, og DAX vil automatisk konvertere TEXT-strengen til en numerisk verdi.
Igjen, vi gjør det samme for kostnadskolonnen . Vi bruker SUBSTITUTE og PATHITEM for å hente det tredje elementet. Så, for å returnere et tall, legger vi til null igjen fordi det er et helt tall i dette tilfellet.
Resten av koden vår er while-løkken som vi diskuterte tidligere. Det vi får nå er vår garanterte sorteringsrekkefølge fra høyeste til laveste kampanje.
Vår SEM var vår høyest rangerte ROI for kampanjen vår, og Instagram er den andre.
Konklusjon
Ved å bruke mens og for looper, brukte vi heldigvis tilpasset sortering av LuckyTemplates i datamodellen vår basert på deres ROI-er – et bevis på at DAX definitivt kan garantere sorteringsrekkefølge.
Det er viktig å sikre at dataene dine er riktig sortert i DAX for å analysere og visualisere dem nøyaktig. Du kan bruke det du lærte i denne opplæringen for å sortere dataene dine på riktig måte for neste rapport.
Beste ønsker,
Greg Deckler
Denne opplæringen gir en oversikt over Power Query Editor og M-språket på LuckyTemplates-skrivebordet.
Lær hvordan du lager en paginert rapport, legger til tekster og bilder og deretter eksporterer rapporten til ulike dokumentformater.
Lær hvordan du bruker SharePoint-automatiseringsfunksjonen til å lage arbeidsflyter og hjelpe deg med å mikroadministrere SharePoint-brukere, -biblioteker og -lister.
Utvid rapportutviklingsferdighetene dine ved å bli med i en dataanalyseutfordring. Akseleratoren kan hjelpe deg å bli en LuckyTemplates-superbruker!
Lær hvordan du beregner løpende totaler i LuckyTemplates ved hjelp av DAX. Løpende totaler lar deg ikke bli fanget opp i et individuelt resultat.
Forstå konseptet med variabler i DAX i LuckyTemplates og implikasjonene av variabler for hvordan målene dine beregnes.
Lær mer om det tilpassede visuelle bildet kalt LuckyTemplates Slope-diagram, som brukes til å vise økning/reduksjon for en enkelt eller flere beregninger.
Oppdag fargetemaene i LuckyTemplates. Disse er avgjørende for at rapportene og visualiseringene dine skal se ut og fungere sømløst.
Å beregne et gjennomsnitt i LuckyTemplates kan gjøres på mange måter for å gi deg nøyaktig informasjon for bedriftsrapportene dine.
La oss fordype oss i Standard LuckyTemplates-tema, og gjennomgå noen av funksjonene som er innebygd i selve LuckyTemplates Desktop-applikasjonen.