Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

M-koden är hela vägen upp i toppen. Jag markerar hela koden och kopierar den.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Sedan skapar jag en ny tom fråga.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Jag öppnar min Advanced Editor och klistrar in den koden.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Eftersom jag ser att inga fel har upptäckts klickar jag på Klar.

Låt mig döpa om detta och kalla det Dates.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Den här frågan returnerar en funktion, men det jag vill ha är en tabell.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Varje let-sats har sin egen in-klausul, som finns längst ner.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Jag kommer också att göra det för det första låtmeddelandet. Detta gör den inaktiv.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Nu ska jag kopiera den första variabeln från den yttre let-satsen och klistra in den i utrymmet.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Jag ska sedan kopiera och klistra in nästa variabel, som är EndDate.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Å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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Så jag ska bara kopiera det namnet och klistra in det.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Lägg märke till att en röd understrykning dök upp under FYStartMonth under variabeln jag precis klistrade in.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Jag kommer inte att tilldela ett värde för denna variabel, så jag sätter bara null.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Eftersom jag ändrade namnet på variabeln måste jag också ändra namnet varhelst denna parameter refererades.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Om jag går tillbaka till variabeln, stänger jag den raden genom att lägga till ett kommatecken i slutet.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Samma sak gäller för WDStartNum. Jag kopierar och klistrar in den och förklarar den som null.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

För att markera var datumtabellskoden börjar ska jag lägga till ytterligare en kommentar här.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

När jag trycker på Klar ser du att frågan nu returnerar rätt typ.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Jag har nu en tabell istället för en funktion.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Inuti rutan Tillämpade steg kan jag också se alla steg som utgör frågan.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

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.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Därefter ska jag ta bort snedstreck före in-utlåtandena.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Sedan ska jag kommentera variabelblocket jag lade till tidigare. Så jag lägger till ett snedstreck och en asterisk här.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Sedan en asterisk och ett snedstreck efter variabelblocket.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Kommer du ihåg när jag ändrade den här kodraden tidigare på grund av FYStartMonthNum?

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Jag ska kopiera den kodraden. Sedan lägger jag till en ny rad och klistrar in den.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Jag ska skära ut den första (det är där jag gjorde ändringarna av variabelnamnet tidigare).

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Sedan på den andra hittar jag de redigerade variabelnamnen.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

Och jag förvandlar dem tillbaka till FYStartMonth.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates

När jag trycker på Klar kommer tabellfrågan återigen att förvandlas till en funktion.

Konvertera datumtabellfunktionen till en tabellfråga i LuckyTemplates




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? *****







Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.