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.
I dag skal vi dykke dypt inn i RANKX, en skalar DAX-funksjon i LuckyTemplates som lar deg returnere rangeringen til et spesifikt tall i hver tabellrad som utgjør en del av en liste med tall. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.
Innholdsfortegnelse
Eksempelscenarier
Vi vil analysere noen av de viktigste scenariene, inkludert når det skal refereres til en hel tabell og feltnavn i .
Vi vil også undersøke hva som skjer når reduksjonene og når en sorteringsrekkefølge brukes over et felt. Til slutt vil vi se nærmere på den beste praksisen for å referere til et tabellnavn eller et feltnavn langs tabellen, og hvordan rangeringen evalueres på baksiden.
RANKX Scenario 1: Kunderangering
I vårt første scenario ønsker vi å beregne rangeringen av kundene våre og referere til hele kundenes tabell inne i RANKX-funksjonen. Til syvende og sist vil vi finne ut hvordan resultatene blir evaluert.
Så la oss begynne med å åpne LuckyTemplates og klikke på Total Sales options-knappen under Key Measures- fanen og deretter gå til New Measure . Skriv et mål for kunderangeringen (f.eks. "Kunderrangering =").
Du kan se resultatene ved å dra kunderangeringsmålet inn i tabellen.
Men er dette den beste tilnærmingen for hvert scenario? Hva om det er to personer med samme navn, men i forskjellige byer? Eller hva om vi har to steder med samme navn, men forskjellige territorier?
RANKX Scenario 2: Byrangering V1
La oss nå bruke samme tilnærming i det første scenariet. Denne gangen vil vi imidlertid bruke den over regiontabellen der vi har to byer med samme navn, men på to forskjellige steder.
Som du kan se på bildet ovenfor, inne i regionstabellen, har vi to byer med samme navn, men de er tilgjengelige under to forskjellige territorier. Så hva skjer når vi bruker de samme trinnene fra vårt forrige scenario?
Resultatene vil se omtrent slik ut:
Nå begynner vi å se et problem med rangeringsformelen vår. Siden RANKX-funksjonen itererer over et helt sett med tabeller, kan den ikke konsolidere resultatene for byene med samme navn, som er tilgjengelige under to forskjellige territorier. Dette resulterer til slutt i en feil.
For å løse dette problemet må du referere til feltnavnet inne i RANKX-funksjonen og tabellnavnet, akkurat som i bildet nedenfor.
Så hvordan fikset det feilen? Når vi refererer til et feltnavn inne i RANKX-funksjonen, vil det iterere det bare gjennom den kolonnen og ikke over hele tabellen.
Det vil fjerne duplikatene selv om de to byene er tilgjengelige i to forskjellige territorier, og dermed konsolidere dem som én enkelt by.
RANKX Scenario 3: Territoriumrangering
Så hva skjer når granularitetsnivået avtar?
I dette tilfellet vil du se feilen mens du beregner rangeringen på territorielt nivå. Årsaken er at når vi kun refererer til tabellnavnet og ignorerer kolonnenavnet igjen, itererer det det over en hel tabell, og klarer dermed ikke å konsolidere resultatene på territorielt nivå.
For å få de riktige resultatene på territoriellt nivå, må du referere til territoriefeltet i regiontabellen. Men når bør du referere til hele tabelltemaet og inkludere feltnavnet sammen med tabellen?
Når rangering brukes over det laveste granularitetsnivået, kan vi referere til tabellnavnet og ignorere feltnavnet.
Men når granularitetsnivået avtar, må vi referere til kolonnenavnet sammen med tabellnavnet. Foreløpig analyserer vi bare resultatene i en enkelt visualisering, det vil si en tabell.
Cities RankingV2: The Better Approach Using Slicer
La oss duplisere det andre scenariet der venstre side av visualobjektet kun vil referere til et tabellnavn mens høyre side refererer til kolonnenavnet inne i RANKX-funksjonen. Vi vil deretter sammenligne resultatene ved å bringe en slicer inn på den siden i form av territorier, som resulterer i bildet nedenfor.
Når vi gjør et valg i sliceren, vil du legge merke til at på venstre side av tabellen viser den ikke resultatet i seriell rekkefølge siden RANKX itererer over hele regionens tabell. På høyre side av tabellbildet vil du imidlertid se resultatene i seriell rekkefølge.
Årsaken er at RANKX bare itererer over en spesifikk tabellkolonne, slik at den kan filtrere ut resultatene i henhold til valget gjort i sliceren. Det er også en av de viktigste tingene å huske.
Hvis vi ønsker å se de samlede rangeringsresultatene, kan vi kun referere til tabellnavnet i .
Men hvis vi vil at resultatene våre skal være i seriell rekkefølge i henhold til valget som er gjort i sliceren, må vi også referere til et kolonnenavn inne i funksjonen.
RANKX Scenario 4: Produktrangering
Til slutt, la oss fortsette med vårt siste scenario. La oss undersøke hva som skjer når vi legger en produktordre over et bestemt felt og hvordan RANKX evaluerer rangeringen på baksiden.
I dette scenariet bruker vi produktnavn fra produkttabellen for å analysere hvilke som er våre .
Så akkurat som i det første scenariet, må du skrive et rangeringsmål for produktene dine (i dette tilfellet, bruk godt produktrangering). Hvis du tar med produktets rangeringsmål inn i det visuelle, vil du se et resultat akkurat som bildet nedenfor:
Du kan se at selv om vi har referert til produktnavnfeltet vårt i RANKX-funksjonen, evaluerer det ikke resultatene riktig. Så hvorfor skjer dette? For å svare på dette spørsmålet, må vi åpne.
RANKX Scenario 5: DAX Studio
Så la oss åpne DAX studio og se hvordan RANKX evaluerer rangeringsresultatene på baksiden.
På bildet nedenfor har jeg kopiert spørringen til tabellen visual via og limt den inn i DAX studio. Som du kan se i denne spørringen, er det også produktindeksen, et sorteringsfelt inne i produkttabellen.
Selv om vi i tabellvisualen vår bare tok med produktnavn, totalt salg og rangeringsmål, er dette feltet referert til som standard bakerst i rangeringsberegningen.
Så nå, la oss fikse vårt produktrangeringsmål ved å referere til sorteringsfeltet inne i RANKX-funksjonen og se resultatene for siste gang.
Som du kan se på bildet ovenfor, blir resultatene for produktnavnene nå korrekt evaluert. Derfor, når vi har et felt sortert etter et annet felt, må vi referere til begge feltene i RANKX-funksjonen basert på alle scenariene vi har diskutert i dag.
Konklusjon
Så det er noen av scenariene når du bruker RANKX-funksjonen i DAX-beregninger. Totalt sett er det mange flere måter du kan gjøre det på i en omfattende rekke funksjoner.
Det viktigste å huske er at du må forstå konteksten din RANKX-funksjonen plasseres i.
RANKX er eksepsjonelt allsidig til å beregne enhver rangeringstypeanalyse inne i LuckyTemplates. Den muliggjør også avansert innsikt som imponerer forbrukerne av rapportene og visualiseringene dine.
Beste ønsker,
Barske Anil Joshi
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.