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







Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

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.