Hvad er Power Query & M Language: En detaljeret oversigt
Denne vejledning giver et overblik over Power Query Editor og M-sproget inde på LuckyTemplates-skrivebordet.
Oprettelse af en LuckyTemplates-feriekalender er afgørende for mange tidsintelligensberegninger. I denne vejledning vil jeg vise dig, hvordan du beregner specifikke feriedatoer ved hjælp af DAX-mål. Du kan se den fulde video af denne tutorial nederst på denne blog.
Dette eksempel kom fra en af deinitiativer kaldet Problem of the Week, hvor vi hver måned tager et DAX- eller Power Query-problem i den virkelige verden og nedbryder det i detaljer.
Jeg brugte en teknik kaldet Rubber Duck Debugging. Det bruges typisk til debugging, men jeg finder det også meget værdifuldt til at komme op med den indledende ramme, som du vil bruge til at løse et komplekst problem som i LuckyTemplates.
Det er i bund og grund bare at bruge en gummiand eller en person, som du taler med og siger den løsning, du forestiller dig højt, og udvikler en plan for, hvordan du vil angribe problemet.
Alene det at give udtryk, der ofte hjælper dig med at løse problemet. I nogle tilfælde i en fejlretningssituation får det dig til at indse, hvad du laver, om det giver mening, og hjælper med at finde en måde at løse det på ved at løse problemet.
Nedenfor er det virkelige DAX-problem for denne særlige udfordring. Vi har et bord her med 10 helligdage med måned og dag. Nogle af dagene er specifikke dage, og nogle af dem er relative. Vi er nødt til at finde på feriedatoen og de fejrede foranstaltninger.
For at gøre det skal vi parse feltet Dag i to komponenter. Den første parse er forekomsten (tredje, sidste, første, anden) og den anden parse er dagen (mandag, torsdag). Det er to vigtige oplysninger, som vi skal adskille.
Indholdsfortegnelse
Beregning af specifikke datoer i LuckyTemplates feriekalender
Normalt ville jeg gøre dette i Power Query blot gennem en opdeling efter afgrænsere, men da vi gør det med DAX, bliver vi nødt til at gøre det på en anden måde. (Bemærk, at vi ikke har tilladelse til at bruge Power Query i denne udfordring.)
Vi skal beregne minimums- og maksimumsdatoer for det angivne år, måned og dag. I dette tilfælde kan vi for eksempel sige for 2027, januar og den tredje mandag. Når vi har fået den minimumsdag for en given måned, kan vi tilføje syv dage til den for at komme til den anden mandag, 14 dage for at komme til den tredje mandag og 21 dage for at komme til den fjerde mandag.
En anden teknik, som jeg vil dele med dig i forbindelse med denne udfordring, er det, jeg kalder Building in Parts, når jeg laver en målestok. Jeg finder dette virkelig nyttigt i en kompleks målestok, hvor hvis du har mange variabler, har du mange komponenter at bygge.
Det, jeg altid gør, er, at jeg har en resultatvariabel ( VAR-resultat ) til sidst og mit sidste udsagn, der bare er Returner resultat . Dette gør det virkelig nemt at gå tilbage og teste de variabler, jeg har bygget. Jeg kan gå igennem og spore og løse det i dele.
Den sidste teknik, som jeg vil dele med dig, er det, jeg kalder Søgning efter ukendte funktioner. For eksempel, hvis jeg ikke ved, hvilken funktion jeg skal bruge til denne LuckyTemplates feriekalenderudfordring, går jeg til fanen Eksterne værktøjer og går til SQLBI DAX-vejledningen .
Den har en rigtig fin funktion her kaldet Groups (i venstre side), hvor funktionerne er grupperet efter type. Og så, hvis jeg tænker på at parse en tekststreng, for eksempel, kan jeg søge efter tekstfunktioner .
Det giver alle de tekstfunktioner, som DAX har. Dette er en fantastisk måde at hurtigt findedu har brug for en foranstaltning.
DAX-mål til LuckyTemplates-feriekalenderen
Til målet for feriedato oprettede jeg denne serie af s , der høstede datoerne fra udskæreren, feriemåneden, månedsnummeret og dagen fra datotabellen.
Så har jeg længden fra den valgte dag ved hjælp af længden () funktion. I dette tilfælde returnerede den tekst, så jeg var nødt til at pakke den indfor at ændre denne tekst til en numerisk værdi.
Og så brugte jegfunktion for pladsens position og indpakning af det VALUE, men siger, søg efter plads inden for den valgte dag, start ved position et og returner nul, hvis jeg ikke finder den streng derinde.
CharsBeforeSpace (tegn før mellemrum) er kun SpacePosition. Antallet af CharsAfterSpace (tegn efter mellemrum) er kun længden ( SelDayLen ) af strengen minus pladsen. Ud fra det kan vi lave FirstParse og SecondParse .
På dette tidspunkt har vi nu to variable, en repræsenterer forekomsten og en repræsenterer dagen.
Og så har vi en grundlæggende ( Calc1st ), hvor vi tager filteret fra Dates-tabellen. Derefter anvender vi filtrene for det valgte år fra sliceren, månedsnavnet og derefter ugedagen fra den anden analyse, som vi lavede.
På samme måde gør vi det samme ved den sidste beregning ( VAR CalcLast ).
Når vi har alt det, går det til en erklæring, og den sidste del er RETURN-resultatet.
Til sidst vil jeg guide dig gennem Celebrated On- målet som en ekstra bonus fra udfordringen. Dette er blot en simpelhvor jeg tog feriedatoen, som vi beregnede i forrige mål, gik til tabellen Datoer og slog ugedagens navn op. Og så lavede jeg lige en SWITCH- erklæring, hvor vi tog det resultat af DayLookup. Og til sidst afslutter jeg det med en RETURN DateAdjust .
Konklusion
Denne LuckyTemplates Holiday Calendar-udfordring er, som jeg nævnte, et problem i den virkelige verden. Løsningen, som jeg fandt på, er ret kompleks, men virkelig effektiv til at beregne de specifikke feriedatoer.
Jeg håber, du har lært meget af denne tutorial. Tjek den fulde videotutorial for en mere detaljeret gennemgangsforklaring af DAX-foranstaltningerne.
Skål!
Denne vejledning giver et overblik over Power Query Editor og M-sproget inde på LuckyTemplates-skrivebordet.
Lær, hvordan du opretter en sideinddelt rapport, tilføjer tekster og billeder og derefter eksporterer din rapport til forskellige dokumentformater.
Lær, hvordan du bruger SharePoint-automatiseringsfunktionen til at skabe arbejdsgange og hjælpe dig med at mikrostyre SharePoint-brugere, -biblioteker og -lister.
Udvid dine rapportudviklingsevner ved at deltage i en dataanalyseudfordring. Acceleratoren kan hjælpe dig med at blive LuckyTemplates-superbruger!
Lær, hvordan du beregner løbende totaler i LuckyTemplates ved hjælp af DAX. Løbende totaler giver dig mulighed for ikke at blive fanget af et individuelt resultat.
Forstå konceptet med variabler i DAX i LuckyTemplates og betydningen af variabler for, hvordan dine mål beregnes.
Lær mere om det brugerdefinerede visuelle kaldet LuckyTemplates Slope-diagrammet, som bruges til at vise stigning/fald for en enkelt eller flere metrics.
Opdag farvetemaerne i LuckyTemplates. Disse er afgørende for, at dine rapporter og visualiseringer kan se ud og fungere problemfrit.
Beregning af et gennemsnit i LuckyTemplates kan gøres på mange måder for at give dig præcise oplysninger til dine virksomhedsrapporter.
Lad os dykke ned i Standard LuckyTemplates-temaer og gennemgå nogle af de funktioner, der er indbygget i selve LuckyTemplates Desktop-applikationen.