Vad är Power Query & M Language: En detaljerad översikt
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Att skapa en LuckyTemplates semesterkalender är avgörande för många tidsintelligensberäkningar. I den här handledningen kommer jag att visa dig hur du beräknar specifika semesterdatum med hjälp av DAX-mått. Du kan se hela videon av denna handledning längst ner på den här bloggen.
Detta exempel kom från en avinitiativ som kallas Veckans problem, där vi varje månad tar ett verkligt DAX- eller Power Query-problem och bryter ner det i detalj.
Jag använde en teknik som heter Rubber Duck Debugging. Det används vanligtvis för felsökning, men jag tycker att det också är väldigt värdefullt för att komma fram till det ursprungliga ramverket som du ska använda för att lösa ett komplext problem som i LuckyTemplates.
Det är i princip bara att använda en gummianka eller en person som du pratar med och säga lösningen som du föreställer dig högt och utveckla en plan för hur du ska angripa problemet.
Bara handlingen att uttrycka sig som ofta hjälper dig att komma igenom problemet. I vissa fall i en felsökningssituation får det dig att inse vad du gör, om det är vettigt, och hjälper dig att hitta ett sätt att åtgärda det genom att åtgärda problemet.
Nedan är det verkliga DAX-problemet för just denna utmaning. Vi har ett bord här med 10 helgdagar med månad och dag. Vissa av dagarna är specifika dagar och några av dem är relativa. Vi måste komma på semesterdatumet och de firade på åtgärderna.
För att göra det måste vi analysera fältet Dag i två komponenter. Den första analysen är förekomsten (tredje, sista, första, andra) och den andra analysen är dagen (måndag, torsdag). Det här är två viktiga delar av information som vi behöver separera.
Innehållsförteckning
Beräknar specifika datum i LuckyTemplates semesterkalender
Normalt skulle jag göra detta i Power Query bara genom en uppdelning med avgränsare, men eftersom vi gör det med DAX, måste vi göra det på ett annat sätt. (Observera att vi inte får använda Power Query i den här utmaningen.)
Vi måste beräkna lägsta och högsta datum för det angivna året, månaden och dagsnamnet. I det här fallet kan vi till exempel säga för 2027, januari och den tredje måndagen. När vi väl har fått den lägsta dagen för en viss månad kan vi lägga till sju dagar för att komma till den andra måndagen, 14 dagar för att komma till den tredje måndagen och 21 dagar för att komma till den fjärde måndagen.
En annan teknik som jag vill dela med mig av i samband med denna utmaning är vad jag kallar Building in Parts när jag skapar ett mått. Jag tycker att detta är väldigt användbart i ett komplext mått där om du har många variabler har du många komponenter att bygga.
Det jag alltid gör är att jag har en resultatvariabel ( VAR-resultat ) i slutet och mitt sista uttalande som bara är Return Result . Detta gör det väldigt enkelt att gå tillbaka och testa de variabler jag har byggt. Jag kan gå igenom och spåra och lösa det i delar.
Den sista tekniken som jag vill dela med dig är vad jag kallar Searching for Unknown Functions. Till exempel, om jag inte vet vilken funktion jag ska använda för denna LuckyTemplates semesterkalenderutmaning, går jag till fliken Externa verktyg och går till SQLBI DAX Guide .
Den har en riktigt trevlig funktion här som heter Groups (på vänster sida), där funktionerna är grupperade efter typ. Och så, om jag funderar på att tolka en textsträng, till exempel, kan jag söka efter textfunktioner .
Den tillhandahåller alla textfunktioner som DAX har. Detta är ett bra sätt att snabbt hittadu behöver för en åtgärd.
DAX-mått för LuckyTemplates semesterkalender
För måttet Holiday Date skapade jag den här serien av s , skördade datumen från skivaren, semestermånaden, månadsnumret och dagen från tabellen Datum.
Sedan har jag längden från den valda dagen med längden () funktion. I det här fallet returnerade det text, så jag var tvungen att slå in denför att ändra den texten till ett numeriskt värde.
Och sedan använde jagfunktion för utrymmets position och omsluter det VALUE, men säger, sök efter utrymme inom den valda dagen, börja på position ett och returnera noll om jag inte hittar den strängen där.
CharsBeforeSpace (tecken före rymden) är bara SpacePosition . Antalet CharsAfterSpace (tecken efter mellanslag) är bara längden ( SelDayLen ) på strängen minus mellanrummets position. Från det kan vi göra FirstParse och SecondParse .
Vid denna tidpunkt har vi nu två variabler, en som representerar förekomsten och en som representerar dagen.
Och sedan har vi en grundläggande ( Calc1st ) där vi tar bort filtret från tabellen Datum. Sedan tillämpar vi filtren för det valda året från skivaren, månadsnamnet och sedan veckodagen från den andra analysen som vi gjorde.
På samma sätt gör vi samma sak för den senaste beräkningen ( VAR CalcLast ).
När vi har allt det går det till ett uttalande och den sista delen är RETURN-resultatet.
Till sist vill jag leda dig genom Celebrated On- måttet som en tilläggsbonus från utmaningen. Detta är bara en enkeldär jag tog semesterdatumet som vi räknade ut i föregående mått, gick till tabellen Datum och slog upp veckodagens namn. Och sedan gjorde jag bara ett SWITCH- uttalande där vi tog resultatet av DayLookup. Och till sist avslutar jag det med en RETURN DateAdjust .
Slutsats
Denna LuckyTemplates Holiday Calendar-utmaning är, som jag nämnde, ett verkligt problem. Lösningen som jag kom fram till är ganska komplex, men verkligen effektiv för att beräkna de specifika semesterdatumen.
Jag hoppas att du har lärt dig mycket av den här handledningen. Kolla in hela videohandledningen för en mer detaljerad genomgångsförklaring av DAX-åtgärderna.
Skål!
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.
Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.
Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!
Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.
Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.
Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.
Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.
Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.
Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.