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.
Å lage en LuckyTemplates-feriekalender er avgjørende for mange tidsintelligensberegninger. I denne opplæringen skal jeg vise deg hvordan du beregner spesifikke feriedatoer ved hjelp av DAX-mål. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.
Dette eksemplet kom fra en avinitiativ kalt Ukens problem, der vi hver måned tar et DAX- eller Power Query-problem i den virkelige verden og bryter det ned i detalj.
Jeg brukte en teknikk kalt Rubber Duck Debugging. Det brukes vanligvis til feilsøking, men jeg finner det også veldig verdifullt for å komme opp med det innledende rammeverket som du skal bruke for å løse et komplekst problem som i LuckyTemplates.
Det er i grunnen bare å bruke en gummiand eller en person du snakker med og si løsningen du ser for deg høyt og utvikle en plan for hvordan du skal angripe problemet.
Bare det å uttale seg som ofte hjelper deg å jobbe gjennom problemet. I noen tilfeller i en feilsøkingssituasjon får det deg til å innse hva du gjør, om det er fornuftig, og hjelper deg med å finne en måte å fikse det på ved å løse problemet.
Nedenfor er det virkelige DAX-problemet for denne spesielle utfordringen. Vi har et bord her med 10 helligdager med måned og dag. Noen av dagene er spesifikke dager og noen av dem er relative. Vi må komme opp med feriedatoen og Feiret på-tiltakene.
For å gjøre det, må vi analysere Dag-feltet i to komponenter. Den første analysen er forekomsten (tredje, siste, første, andre) og den andre analysen er dagen (mandag, torsdag). Dette er to viktige opplysninger som vi må skille fra hverandre.
Innholdsfortegnelse
Beregner spesifikke datoer i LuckyTemplates feriekalender
Vanligvis ville jeg gjort dette i Power Query bare gjennom en delt av skilletegn, men siden vi gjør det med DAX, må vi gjøre det på en annen måte. (Merk at vi ikke har lov til å bruke Power Query i denne utfordringen.)
Vi må beregne minimums- og maksimumsdatoene for det angitte året, måneden og dagsnavnet. I dette tilfellet kan vi for eksempel si for 2027, januar og tredje mandag. Når vi har fått den minste dagen for en gitt måned, kan vi legge til syv dager for å komme til den andre mandagen, 14 dager for å komme til den tredje mandagen og 21 dager for å komme til den fjerde mandagen.
En annen teknikk som jeg vil dele med dere knyttet til denne utfordringen er det jeg kaller Building in Parts når jeg lager et mål. Jeg finner dette veldig nyttig i et komplekst mål der hvis du har mange variabler, har du mange komponenter å bygge.
Det jeg alltid gjør er at jeg har en resultatvariabel ( VAR-resultat ) på slutten og det siste utsagnet mitt som bare er Return Result . Dette gjør det veldig enkelt å gå tilbake og teste variablene jeg har bygget. Jeg kan gå gjennom og spore og løse det i deler.
Den siste teknikken jeg vil dele med deg er det jeg kaller Søking etter ukjente funksjoner. Hvis jeg for eksempel ikke vet hvilken funksjon jeg skal bruke for denne LuckyTemplates feriekalenderutfordringen, går jeg til fanen Eksterne verktøy og går til SQLBI DAX-veiledningen .
Den har en veldig fin funksjon her kalt Groups (på venstre side), hvor funksjonene er gruppert etter type. Og så, hvis jeg tenker på å analysere en tekststreng, for eksempel, kan jeg søke etter tekstfunksjoner .
Den gir alle tekstfunksjonene som DAX har. Dette er en fin måte å raskt finnedu trenger for et mål.
DAX-mål for LuckyTemplates-feriekalenderen
For målet for feriedato opprettet jeg denne serien med s , og hentet datoene fra skjæremaskinen, feriemåneden, månedsnummeret og dagen fra datotabellen.
Deretter har jeg lengden fra den valgte dagen ved å bruke lengden () funksjon. I dette tilfellet returnerte den tekst, så jeg måtte pakke den innfor å endre teksten til en numerisk verdi.
Og så brukte jegfunksjon for posisjonen til mellomrommet og pakke det VALUE, men sier, søk etter plass innenfor den valgte dagen, start på posisjon én og returner null hvis jeg ikke finner den strengen der inne.
CharsBeforeSpace (tegn før space ) er bare SpacePosition. Antallet CharsAfterSpace (tegn etter mellomrom) er bare lengden ( SelDayLen ) på strengen minus posisjonen til mellomrommet. Fra det kan vi gjøre FirstParse og SecondParse .
På dette tidspunktet har vi nå to variabler, en som representerer forekomsten og en som representerer dagen.
Og så har vi en grunnleggende ( Calc1st ) hvor vi tar filteret fra Datoer-tabellen. Deretter bruker vi filtrene for det valgte året fra sliceren, månedsnavnet og deretter ukedagen fra den andre analysen vi gjorde.
Tilsvarende gjør vi det samme for den siste beregningen ( VAR CalcLast ).
Når vi har alt det, går det til en uttalelse, og den siste delen er RETURN-resultatet.
Til slutt vil jeg lede deg gjennom Celebrated On- målet som en tilleggsbonus fra utfordringen. Dette er bare en enkelhvor jeg tok feriedatoen som vi beregnet i forrige mål, gikk til Datoer-tabellen og slo opp ukedagens navn. Og så gjorde jeg bare en SWITCH- erklæring der vi tok resultatet av DayLookup. Og til slutt avslutter jeg det med en RETURN DateAdjust .
Konklusjon
Denne LuckyTemplates Holiday Calendar-utfordringen er, som jeg nevnte, et reell problem. Løsningen jeg kom opp med er ganske kompleks, men veldig effektiv når det gjelder å beregne de spesifikke feriedatoene.
Jeg håper du har lært mye av denne opplæringen. Sjekk ut hele videoopplæringen for en mer detaljert forklaring av DAX-tiltakene.
Jubel!
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.