M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg vil vise dig, hvordan du tilføjer en parameter i M-funktionen i din datotabelforespørgsel . Dette eksempel er baseret på et spørgsmål, der blev rejst på. Du kan se den fulde video af denne tutorial nederst på denne blog.

Spørgsmålet handlede om, hvordan man skifter nummereringen af ​​1. ugedag fra 0 til 1 . Bemærk, at dette ikke ændrer den faktiske start på ugedagen. I denne datotabel vil starten af ​​ugen altid være mandag. Det handler bare om at henvise til mandag som dag 1 i stedet for dag 0.

Denne proces er ikke nødvendigvis kompleks, men du har brug for en grundlæggende forståelse af, hvordan M sprog er opbygget. Hvis du er medlem af LuckyTemplates, kan du tjekke. Indledningen berører emnet.

Indholdsfortegnelse

M-funktionen og den udvidede datotabel

Lad mig starte med at gå ind i Power Query . Jeg har allerede kopieret datotabellen M-funktionen her.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg fik M-funktionen fra M Code Showcase-kategorien i LuckyTemplates-forumet . Koden er under emnet.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Hvis jeg åbner Advanced Editor , er dette koden.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Der er en masse M-kode derinde, som kan være distraherende.

Oprettelse af en testforespørgsel

Da der sker for meget i M-funktionen, vil jeg i stedet starte med en ny tom forespørgsel .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg vil navngive denne testforespørgsel .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Dernæst vil jeg åbne Advanced Editor .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Fordi jeg vil oprette en funktion, vil jeg tilføje et par parenteser og slette al standardkoden derinde.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

For at starte funktionen fra, vil jeg erklære en valgfri parameter .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Dernæst vil jeg tilføje en variabel. Jeg kalder denne variabel WDStartNum , da den vil stå for ugedagens startnummer. Jeg skal også angive dens type, så jeg skriver nummer .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg erklærer typen for at forhindre fejl. Hvis jeg bare forlader det som en hvilken som helst type, betyder det, at det kunne passere en tabel eller en datoværdi i stedet for blot at sende tal.

Næste trin er at tilføje let -klausulen og in -klausulen.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Under let-klausulen har jeg brug for et variabelnavn. Så jeg vil kalde denne variabel WDStart .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Nu skal jeg teste, om WDStartNum er bestået. Hvis det går igennem, vil det ikke være lig med null . Så jeg vil erklære, at hvis WDStartNum ikke er lig med null, vil jeg have en værdi, der returneres .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Med hensyn til in-klausulen ønsker jeg, at det samme trin skal vedtages. Så jeg vil bare sætte WDStart der, som er det, vi kaldte vores variabel tidligere under let-klausulen.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Når jeg trykker på Udført, oprettes funktionen. Så jeg vil prøve at sende en værdi gennem den funktion.

Jeg vil prøve at skrive bogstavet "a".

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Husk, at jeg tidligere har erklæret, at værdien skal være et tal. Fordi den genkender, at den værdi, jeg indtastede, ikke opfylder dette krav, tillader den mig ikke at indtaste den parameter.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Så jeg vil slette det og bare lade feltet stå tomt.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Når jeg klikker på Invoke, returnerer det en værdi på 0.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Går tilbage til min oprindelige forespørgsel, hedder det, at hvis værdien ikke er lig med null, skal WDStartNum returneres. Hvis det er lig med null, skal et 0 returneres.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Så 0 er korrekt.

Denne gang vil jeg prøve at sende en værdi ved at ændre tallet i TestQuery. Sandt nok returnerer den et "1", når jeg trykker på enter.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Lad mig nu prøve at passere 2020 i TestQuery. Når jeg trykker på Enter, vender den også tilbage i 2020.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg ønsker åbenbart ikke, at det her skal ske. Da jeg vil have en værdi, der repræsenterer starten på ugen, vil jeg have, at enten 0 eller 1 vises. Det betyder, at jeg skal lave endnu en test for at se, om det indtastede tal enten er et 0 eller et 1. Jeg kan bruge List.Contains- funktionen til dette.

Brug af List.Contains

Jeg oprettede en tom forespørgsel og indtastede List.Contains uden at bruge en parentes.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Når jeg trykker enter, kan jeg se dokumentationen om den funktion.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

List.Contains angiver, om listen indeholder en værdi.

Så det kræver en liste som den første parameter, og så tilføjes en værdi efter det. Hvis denne værdi findes på listen, returnerer den sand. Ellers vil det returnere falsk.

Jeg åbner Advanced Editor igen, så jeg kan foretage de nødvendige ændringer på min forespørgsel.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

I stedet for at teste om en værdi ikke er lig med null, vil jeg bruge List.Contains .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Nu vil jeg give en liste over værdier, der skal anvendes på denne funktion.

Jeg vil bruge krøllede parenteser som en listeinitialiserer. Inden for de krøllede parenteser sætter jeg 0, 1. Jeg tilføjer et komma efter at have lukket den parentes.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Til den anden parameter vil jeg bruge WDStartNum. Så tilføjer jeg den afsluttende parentes.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Med dette på plads betyder det, at et 0 eller 1 skal give mig WDStartNumber. Hvis noget andet end 0 eller 1 placeres, skulle jeg få resultatet 0.

Lad mig teste det ved at sætte 2020 i TestQuery. Som forventet returnerer dette et "0" (nul).

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Det er fordi værdien 2020 ikke er på listen.

Tilføjelse af parameteren til M-funktionen

Nu hvor jeg er sikker på, at koden virker, kan jeg endelig sætte den i den faktiske datotabel og M-funktion. Jeg åbner Advanced Editor , så kopierer jeg logikken .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Så går jeg ind i datotabelforespørgslen.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg åbner den originale M-funktion gennem Advanced Editor .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Så vil jeg indsætte min kode der. Lad os sørge for, at der er et komma i slutningen af ​​linjen.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Dernæst vil jeg fremhæve og kopiere mit parameternavn .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Så vil jeg tilføje den parameter her .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Bemærk, at jeg først skal tilføje et komma til slutningen af ​​den eksisterende linje, så skal jeg erklære denne parameter for at være valgfri . Så kan jeg placere WDStartNum og tilføje typen .

Jeg har tilføjet parameteren, og jeg har også indlejret logikken. Men jeg skal også sørge for, at jeg får de forventede resultater. Så jeg vil lede efter den kodelinje, der dækker ugedagen.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Så vil jeg tilføje + WDStart .

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg klikker på Udført for at lukke editoren. Så vil jeg påberåbe mig forespørgslen.

Til startdatoen sætter jeg 1. januar 2020, og derefter bruger jeg 31. december 2020 som slutdato.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg bruger "7" som startmåneden for regnskabsåret, og derefter sætter jeg "0" som WDStartNum.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg klikker på Invoke. Nu har jeg datotabellen.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Jeg omdøber den for at sikre, at den let kan identificeres.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Nu vil jeg tjekke resultaterne.

Dette er min DayOfWeek klumme.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Det viser, at mandag er vendt tilbage som 0.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Går tilbage til spørgsmålet i forummet, så skal jeg ændre tallet for ugestart til 1 i stedet for 0. Så det ændrer jeg bare i målingen.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Når jeg trykker enter, bliver mandag dag 1 i stedet for dag 0.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Ser man på talområdet, løber det nu fra 1 til 7 i stedet for 0 til 6.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Hvad sker der, hvis jeg sender en nulværdi?

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren

Så vender DayOfWeek for mandag bare tilbage til 0.

M-funktion for datotabel – Sådan tilføjes en parameter i forespørgselseditoren




Konklusion

Sådan kan du tilføje en ekstra parameter lige ind i M-funktionen på din datotabelforespørgsel. Processen er slet ikke kompleks, som jeg nævnte tidligere. Så længe du har en kilde til M-koden, er det nemt nok derfra.

Igen kan du altid tjekke kurset Advanced Data Transformations & Modeling iOnline, hvis du ikke har nogen baggrund for, hvordan M-koder fungerer.

Alt det bedste,

Melissa

***** Lærer du Lucky Templates? *****







LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Lær, hvordan du adskiller en PBIX-fil for at udtrække LuckyTemplates-temaer og -billeder fra baggrunden og bruge den til at oprette din rapport!

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det