M är det kraftfulla språket bakom Power Query. Alla omvandlingar som du tillämpar kommer att skrivas på M-språket. För många ser M ut som ett skrämmande språk. I det här inlägget vill jag förklara lite av grunderna i M. Utan att nämna några funktioner. Jag vill främst förklara hur M-språkets syntax är uppbyggd. När du väl känner till syntaxen blir allting enkelt. M är ett språk som du enkelt kan lära dig dess syntax. Som utvecklare av Power Query rekommenderar jag dig starkt att ägna tid åt M, eftersom det finns MÅNGA operationer som du kan utföra med M, men som du kanske inte kan göra helt enkelt med det grafiska gränssnittet. Om du vill lära dig mer om Power BI kan du läsa Power BI-boken From Rookie to Rock Star.

M är det informella namnet på Power Query Formula Language. Det formella namnet är så långt att ingen använder det, alla kallar det M! M står för Data Mashup, vissa säger att det står för Data Modeling. M är ett funktionellt språk och det är viktigt att känna till funktionerna i det. Varje språk har dock en struktur och syntax som är nybörjarnivån för att lära sig språket. I det här inlägget kommer jag att förklara syntaxen i M. Innan du lär dig M vill jag att du läser den här meningen högt;

M är mycket kraftfullare än det grafiska gränssnittet i Power Query

Ja, du läste rätt! Det grafiska gränssnittet i Power Query ändras varje månad. Varje månad kommer nya funktioner till detta grafiska gränssnitt. Men faktum är att alla dessa funktioner har funnits i språket i många år! Om du kan språket kan du lätt använda dem, i stället för att vänta på ett grafiskt gränssnitt. Det finns massor av exempel på detta. ett mycket litet exempel är här: du kan utöka din grupperingsförmåga i Power Query med en mycket liten ändring i M-skriptet.

Syntax för M

Syntaxen för det här språket är enkel. det har alltid två programmeringsblock: LET-uttrycksblock och IN-uttrycksblock. Här är den enklaste syntaxen för M;

let x=1in x

Let och in är reserverade ord.Innan du går ett steg längre måste du först och främst veta;

M (Power Query Formula Language) är skiftlägeskänsligt. Det finns en skillnad mellan x och X.

Vad är dessa två programmeringsblock:

let: definition av alla variabler

in: output! Allt du lägger in i det här blocket blir resultatet av din fråga.

Så i princip innebär nedanstående fråga att du definierar en variabel som heter x, tilldelar den värdet 1 och visar den som resultatuppsättning. så frågan kommer att återge 1.

För att köra det här exemplet måste du öppna Power BI Desktop. Gå till Get Data, börja med New Blank Query.

Därefter väljer du Advanced Editor på fliken View;

Se till att du när du skriver skriptet lägger in reserverade ord som let och med små bokstäver. även variabelnamnet ska ha samma bokstavsbeteckning både i let och i section.

Som du ser finns det ingen anledning att definiera datatyper för variabeln. Den kommer att tilldelas automatiskt när den första tilldelningen sker.

Om du anger ett textvärde skulle variabeln automatiskt vara en datatyp för text.

Radens slut

Kodrader i M fortsätter om du inte sätter in ett tecken för radens slut.

Som du kan se i exemplet ovan fortsätter raden, och x kommer att vara lika med x=1+1 . Om du vill avsluta en rad använder du kommatecken(,). exempel här:

Alla rader behöver ett kommatecken(,) för att avslutas. utom den sista raden före in.

Variabelnamn

Variabelns namn kan vara ett enda ord, som Source. Om du har några tecken, t.ex. ett mellanslag, måste du sätta namnet inom dubbla citationstecken (”) och sätta en hashtag i början av det (#). Något som liknar:

#"This is a variable name"

Variabelns namn kan innehålla specialtecken, här är ett exempel:

Specialtecken

Variabelns namn kan ha specialtecken, som du kan se nedan har variabeln alla typer av tecken i sig och fungerar fortfarande bra.

Escape character

Double quote (”) är ett escape-tecken som du kan använda för att definiera variabler med namn som innehåller ett annat dubbelt citationstecken. Här är ett exempel:

Det första dubbla citationstecknet (markerat) ovan måste vara före det andra dubbla citationstecknet (som är en del av variabelnamnet).

Steg för steg-kodning

Power Query är en steg för steg-transformation. Varje omvandling sker vanligtvis i ett steg. När du skriver koden kan du också märka att på höger sida ser du att varje variabel bildar ett steg.

I skärmdumpen ovan kan du se att varje variabel bestäms som ett steg. Om variabeln har ett mellanslag i namnet visas den med mellanslag i listan över tillämpade steg.

Den sista variabeln anges alltid i avsnittet in.

Litteraler

Det finns olika sätt att definiera varje literal i Power Query. Om du till exempel vill definiera en datumvariabel gör du så här:

För att definiera alla andra typer av bokstäver, är det här referenstabellen du ska använda:

* för funktion och typ; jag kommer att skriva ett annat inlägg senare för att förklara hur dessa typer fungerar.

Funktionskall

M är ett funktionellt språk, och för att göra nästan allting måste du anropa en funktion för det. funktioner kan enkelt anropas med funktionens namn och med angivande av parametrar för den.

Skärmdump ovan använder Date.Year-funktionen som hämtar årtalsdelen av ett datum. Funktionsnamn börjar alltid med stora bokstäver: Date.Year()

Som i alla programmeringsspråk kan du lägga in kommentarer i din kod. Det kan vara i två former;

Enkla kommentarer på en rad med dubbla snedstreck (//)

Multi-linjers kommentarer mellan snedstreck och börjar (/* comments */)

Ett exempel från verkligheten

Nu när du känner till några grunder ska vi titta på en befintlig fråga i avancerat redigeringsläge och förstå den.

I skärmdumpen ovan kan du se alla grunder som nämnts hittills:

  1. let och i block
  2. variabelnamn som matchar de steg som tillämpas i frågan
  3. några variabelnamn med hashtag och dubbla citattecken: #”var name”
  4. Tecknen för radslut: kommatecken
  5. Anropar många funktioner

Det finns fortfarande många delar av den här frågan som du kanske inte förstår, särskilt när du använder funktioner. du måste lära dig vad funktionerna gör för att förstå koden helt och hållet. Jag har skrivit ett blogginlägg som förklarar hur man använder nyckelordet #shared för att få dokumentation om alla funktioner i Power Query.

I nästa inlägg kommer jag att förklara ytterligare nivåer av strukturer i M.

Trainer, Konsult, mentor
Reza Rad är Microsoft Regional Director, författare, utbildare, talare och konsult. Han har en kandidatexamen i datateknik och har mer än 20 års erfarenhet av dataanalys, BI, databaser, programmering och utveckling, främst inom Microsoft-teknik. Han har varit Microsoft Data Platform MVP i nio år i rad (från 2011 till nu) för sitt engagemang i Microsoft BI. Reza är en aktiv bloggare och medgrundare av RADACAD. Reza är också medgrundare och medarrangör av Difinity-konferensen i Nya Zeeland.
Hans artiklar om olika aspekter av teknik, särskilt om MS BI, finns på hans blogg: https://radacad.com/blog.
Han har skrivit några böcker om MS SQL BI och håller på att skriva några andra. Han har också varit en aktiv medlem i tekniska forum på nätet, t.ex. MSDN och Experts-Exchange, och har varit moderator för MSDN SQL Server-forum, och han är MCP, MCSE och MCITP i BI. Han är ledare för den nyzeeländska användargruppen för Business Intelligence. Han är också författare till den mycket populära boken Power BI from Rookie to Rock Star, som är gratis och innehåller mer än 1 700 sidor innehåll, och Power BI Pro Architecture, som publiceras av Apress.
Han är en internationell talare i Microsoft Ignite, Microsoft Business Applications Summit, Data Insight Summit, PASS Summit, SQL Saturday och SQL-användargrupper. Han är dessutom Microsoft Certified Trainer.
Rezas passion är att hjälpa dig att hitta den bästa datalösningen, han är en dataentusiast.

Lämna ett svar

Din e-postadress kommer inte publiceras.