Skapa en datumtabell i LuckyTemplates
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
Jag ska visa dig hur du omvandlar en M-kod för en datumtabell till en tabellfråga. Du kan se hela videon av denna handledning längst ner på den här bloggen.
Jag skulle betrakta svårighetsgraden för denna handledning som mellanliggande eftersom om du har någon erfarenhet av M-koder, skulle det vara lätt för dig att följa med. Om du inte har någon relaterad erfarenhet föreslår jag att du tittar på M-koder först för att göra det lättare för dig att förstå begreppen som presenteras här.
Innehållsförteckning
Anropad funktionsfråga och datumtabellfråga
Det här äroch den anropade funktionsfrågan.
Om du tittar på rutan Tillämpade steg till höger finns det bara ett steg. Det visar källan för den frågan.
Så om du vill utveckla M-koden för den här datumtabellen måste du växla mellan funktionen och tabellfrågan för att se eventuella ändringar du tillämpar.
Det betyder att det är mer komplicerat att hantera fel som orsakas av någon av dina ändringar. Det kommer att leda till ett fel i själva tabellfrågan, då måste du söka igenom kodrader för att åtgärda felet.
Nästa sida visar datumfrågan som returnerar en tabell istället för en funktion.
Om du tittar på de tillämpade stegen till höger ser du att det finns flera steg i listan den här gången.
Det betyder att när du utvecklar din datumtabell M-kod kommer du omedelbart att se resultatet av dina ändringar i den här tabellfrågan.
Ännu viktigare, närhelst din ändring resulterar i ett fel, kan du enkelt identifiera steget som orsakade felet. Detta gör det lättare att lösa problemet.
Använder M-koden
Datumtabellens M-kod kan hittas i LuckyTemplates Forum. Det är under ämnet Extended Data Table Power Queryi M Code Showcase.
M-koden är hela vägen upp i toppen. Jag markerar hela koden och kopierar den.
Sedan skapar jag en ny tom fråga.
Jag öppnar min Advanced Editor och klistrar in den koden.
Eftersom jag ser att inga fel har upptäckts klickar jag på Klar.
Låt mig döpa om detta och kalla det Dates.
Den här frågan returnerar en funktion, men det jag vill ha är en tabell.
För att göra de nödvändiga ändringarna går jag tillbaka till Advanced Editor.
Konvertera funktionen till en tabell
För att få detta att returnera en tabell istället för en funktion, skulle jag behöva göra några ändringar i M-koden i Advanced Editor.
När jag tittar på M-koden kan jag enkelt se minst två miljöer baserat på antalet let-satser.
Varje let-sats har sin egen in-klausul, som finns längst ner.
Du kanske tror att det skulle vara enklare att bara ta bort den här sista klausulen för att förvandla den till en tabell.
Men det tänker jag inte göra. Istället ska jag kommentera det genom att lägga till två snedstreck framför den sista i klausulen.
Jag kommer också att göra det för det första låtmeddelandet. Detta gör den inaktiv.
Under den inre let-satsen kommer jag att skapa en sektion för att deklarera mina parametrar eftersom jag fortfarande behöver skicka dessa parametrar till den här koden.
Jag ska markera var dessa variabler ska deklareras.
Nu ska jag kopiera den första variabeln från den yttre let-satsen och klistra in den i utrymmet.
I min datamängd går den historiska datan inte längre tillbaka än 2017. Så för att skicka värdet till variabeln StartDate kan jag använda det inneboende datumet. Jag sätter den 1 januari, sedan avslutar jag raden med ett kommatecken.
Jag ska sedan kopiera och klistra in nästa variabel, som är EndDate.
Jag vet att slutdatumet skulle kräva prognoser. Det är därför jag vill att detta Slutdatum alltid ska vara slutet av nästa år.
Jag har redan en variabel i min M-kod för CurrentDate, så jag ska referera till det.
Återigen kommer jag att använda det inneboende datumet. Jag extraherar Date.Year och använder CurrentDate som årsvärde +1. Jag vill också att datumet ska vara 31 december.
Återigen, jag avslutar den raden med ett kommatecken.
Nästa variabel är en valfri parameter som kallas FYStartMonth.
Så jag ska bara kopiera det namnet och klistra in det.
Lägg märke till att en röd understrykning dök upp under FYStartMonth under variabeln jag precis klistrade in.
Detta beror på att deras namn matchar. Det var inga problem när de var i separata miljöer. Men variabelnamn inom en enda miljö måste vara unika. Det betyder att jag måste ändra namnet på den nya variabeln jag precis klistrade in.
Istället för att kalla det FYStartMonth kommer jag att kalla det FYStartMonthNum.
Jag kommer inte att tilldela ett värde för denna variabel, så jag sätter bara null.
Eftersom jag ändrade namnet på variabeln måste jag också ändra namnet varhelst denna parameter refererades.
Om jag går tillbaka till variabeln, stänger jag den raden genom att lägga till ett kommatecken i slutet.
Nästa parameter är den valfria semesterlistan. Jag kommer att kopiera och klistra in det också, och kommer också att förklara det som null.
Samma sak gäller för WDStartNum. Jag kopierar och klistrar in den och förklarar den som null.
För att markera var datumtabellskoden börjar ska jag lägga till ytterligare en kommentar här.
När jag trycker på Klar ser du att frågan nu returnerar rätt typ.
Jag har nu en tabell istället för en funktion.
Inuti rutan Tillämpade steg kan jag också se alla steg som utgör frågan.
Om jag vill göra några ändringar i datumtabellen är det enkelt att använda menyfliksområdet för att ändra eller lägga till steg. För varje ändring som jag gör kommer jag också att se resultatet i frågan direkt.
Förvandlar tabellfrågan tillbaka till en funktion
Låt oss säga att jag vill göra om datumtabellfrågan tillbaka till en funktion. Det är bara en fråga om att justera några saker i M-koden för att vända ändringarna jag gjorde tidigare.
Jag går tillbaka till Advanced Editor och tar bort snedstreck före den yttre let-satsen.
Därefter ska jag ta bort snedstreck före in-utlåtandena.
Sedan ska jag kommentera variabelblocket jag lade till tidigare. Så jag lägger till ett snedstreck och en asterisk här.
Sedan en asterisk och ett snedstreck efter variabelblocket.
Kommer du ihåg när jag ändrade den här kodraden tidigare på grund av FYStartMonthNum?
Jag ska kopiera den kodraden. Sedan lägger jag till en ny rad och klistrar in den.
Jag ska skära ut den första (det är där jag gjorde ändringarna av variabelnamnet tidigare).
Sedan på den andra hittar jag de redigerade variabelnamnen.
Och jag förvandlar dem tillbaka till FYStartMonth.
När jag trycker på Klar kommer tabellfrågan återigen att förvandlas till en funktion.
Slutsats
Än en gång har jag visat dig hur bekväma M-koder är, särskilt i fall som dessa där vi konverterade en funktion till en tabellfråga, och vice versa. Så länge du har tillgång till M-koden vi har i LuckyTemplates Forum, kan du använda den i scenarier som dessa i framtiden.
Du kan också bläddra igenom andra M-koder som du kan använda i andra situationer i M Code Showcase på. Det är en samarbetsgemenskap, så du kan läsa igenom kommentarerna för andra idéer från våra experter och medlemmar.
Med vänliga hälsningar,
Melissa
***** Lär du dig Lucky Templates? *****
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.
I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.
Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.
Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.
I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.
I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.
I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.
I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.
Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.