M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Jag ska visa dig hur du lägger till en parameter i M-funktionen i din datumtabellfråga . Detta exempel är baserat på en fråga som ställdes på. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Frågan handlade om hur man växlar numreringen av den första veckodagen från 0 till 1 . Observera att detta inte ändrar den faktiska början av veckodagen. I denna datumtabell kommer veckans början alltid att vara måndag. Det handlar bara om att hänvisa till måndag som dag 1 istället för dag 0.

Denna process är inte nödvändigtvis komplex, men du behöver en grundläggande förståelse för hur M-språk är uppbyggt. Om du är medlem i LuckyTemplates kan du kolla in. Inledningen berör ämnet.

Innehållsförteckning

M-funktionen och den utökade datumtabellen

Låt mig börja med att gå in på Power Query . Jag har redan kopierat datumtabellen M-funktionen här.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Jag fick M-funktionen från kategorin M Code Showcase i LuckyTemplates-forumet . Koden finns under ämnet.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Om jag öppnar Advanced Editor är det här koden.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Det finns mycket M-kod där, vilket kan vara distraherande.

Skapa en testfråga

Eftersom det händer för mycket inom M-funktionen kommer jag att börja med en ny tom fråga istället.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Jag kommer att namnge denna testfråga .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Därefter ska jag öppna Advanced Editor .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Eftersom jag ska skapa en funktion kommer jag att lägga till ett par parenteser och ta bort all standardkod där.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

För att starta funktionen av kommer jag att deklarera en valfri parameter .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Därefter ska jag lägga till en variabel. Jag kallar denna variabel WDStartNum eftersom den kommer att stå för veckodagens startnummer. Jag måste också deklarera dess typ, så jag skriver in nummer .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Jag deklarerar typen för att förhindra fel. Om jag bara lämnar det som vilken typ som helst, betyder det att det kan passera en tabell eller ett datumvärde istället för att bara skicka siffror.

Nästa steg är att lägga till let- satsen och in -satsen.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Under let-satsen behöver jag ett variabelnamn. Så jag kommer att kalla denna variabel WDStart .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Nu måste jag testa om WDStartNum har godkänts. Om det går igenom kommer det inte att likställas med null . Så jag kommer att förklara att om WDStartNum inte är lika med null, vill jag att ett värde ska returneras .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

När det gäller in-klausulen vill jag att samma steg ska godkännas. Så jag lägger bara WDStart där, vilket är vad vi kallade vår variabel tidigare under let-satsen.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

När jag trycker på Klar kommer funktionen att skapas. Så jag ska försöka skicka ett värde genom den funktionen.

Jag ska försöka skriva in bokstaven "a".

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Kom ihåg att jag tidigare deklarerade att värdet måste vara ett tal. Eftersom den känner igen att värdet jag angav inte uppfyller detta krav, tillåter den mig inte att ange den parametern.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Så jag ska ta bort det och bara lämna utrymmet tomt.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

När jag klickar på Invoke returnerar det värdet 0.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

För att gå tillbaka till min ursprungliga fråga, står det att om värdet inte är lika med null, ska WDStartNum returneras. Om det är lika med null ska en 0 returneras.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Så att 0 stämmer.

Den här gången ska jag försöka skicka ett värde genom att ändra numret i TestQuery. Det är sant att det returnerar en "1" när jag trycker på enter.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Låt mig nu försöka klara 2020 i TestQuery. När jag trycker på enter kommer den också tillbaka 2020.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Uppenbarligen vill jag inte att det här ska hända. Eftersom jag vill ha ett värde som representerar veckans början vill jag att antingen 0 eller 1 ska dyka upp. Det betyder att jag måste skapa ett nytt test för att se om det angivna numret är antingen en 0 eller en 1. Jag kan använda funktionen List.Contains för detta.

Använder List.Contains

Jag skapade en tom fråga och skrev in List.Contains utan att använda en parentes.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

När jag trycker på enter kan jag se dokumentationen om den funktionen.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

List.Contains anger om listan innehåller ett värde.

Så det kräver en lista som första parameter, och sedan läggs ett värde till efter det. Om det värdet hittas i listan returneras det sant. Annars kommer det att returnera falskt.

Jag öppnar Advanced Editor igen så att jag kan göra nödvändiga ändringar i min fråga.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Istället för att testa om ett värde inte är lika med null, kommer jag att använda List.Contains .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Nu ska jag ge en lista över värden som ska tillämpas på den här funktionen.

Jag kommer att använda lockiga parenteser som en listinitierare. Inom de lockiga parenteserna sätter jag 0, 1. Jag lägger till ett kommatecken efter att ha stängt den parentesen.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

För den andra parametern kommer jag att använda WDStartNum. Sedan lägger jag till den avslutande parentesen.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Med detta på plats betyder det att en 0 eller 1 borde ge mig WDStartNumber. Om något annat än 0 eller 1 placeras, borde jag få resultatet 0.

Låt mig testa det genom att lägga till 2020 i TestQuery. Som förväntat returnerar detta en "0" (noll).

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Det beror på att värdet 2020 inte finns i listan.

Lägga till parametern i M-funktionen

Nu när jag är säker på att koden fungerar kan jag äntligen lägga in den i den faktiska datumtabellen och M-funktionen. Jag öppnar Advanced Editor och sedan kopierar jag logiken .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Sedan går jag in i datumtabellsfrågan.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Jag öppnar den ursprungliga M-funktionen via Advanced Editor .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Sedan ska jag klistra in min kod där. Låt oss se till att det finns ett kommatecken i slutet av raden.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Därefter ska jag markera och kopiera mitt parameternamn .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Sedan ska jag lägga till den parametern här .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Observera att jag måste lägga till ett kommatecken i slutet av den befintliga raden först, sedan måste jag förklara den här parametern som valfri . Sedan kan jag placera WDStartNum och lägga till typen .

Jag har lagt till parametern och jag har också bäddat in logiken. Men jag måste också se till att jag får de förväntade resultaten. Så jag ska leta efter kodraden som täcker veckodagen.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Sedan ska jag lägga till + WDStart .

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Jag klickar på Klar för att stänga redigeraren. Sedan kommer jag att anropa frågan.

För startdatumet kommer jag att ange 1 januari 2020, sedan använder jag 31 december 2020 som slutdatum.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Jag kommer att använda "7" som startmånad för räkenskapsåret, sedan sätter jag "0" som WDStartNum.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Jag klickar på Invoke. Nu har jag datumtabellen.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Jag byter namn på den för att se till att den lätt kan identifieras.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Nu ska jag kolla resultatet.

Det här är min DayOfWeek- kolumn.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Det visar att måndagen har återvänt som 0.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

För att gå tillbaka till frågan i forumet, jag måste ändra numret på veckans början till 1 istället för 0. Så jag ändrar det bara i måttet.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

När jag trycker på enter blir måndagen nu dag 1 istället för dag 0.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Om man tittar på sifferintervallet går det nu från 1 till 7 istället för 0 till 6.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Vad händer om jag skickar ett nollvärde?

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren

Då vänder DayOfWeek för måndag bara tillbaka till 0.

M-funktion för datumtabell – hur man lägger till en parameter i frågeredigeraren




Slutsats

Så här kan du lägga till en extra parameter direkt i M-funktionen på din datumtabellfråga. Processen är inte alls komplicerad, som jag nämnde tidigare. Så länge du har en källa för M-koden är det enkelt nog därifrån.

Återigen, du kan alltid kolla in kursen Advanced Data Transformations & Modeling iOnline om du inte har någon bakgrund om hur M-koder fungerar.

Med vänliga hälsningar,

Melissa

***** Lär du dig Lucky Templates? *****







Skapa en datumtabell i LuckyTemplates

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.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

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.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

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.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

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.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

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.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

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.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för 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.