M est le puissant langage qui se cache derrière la scène de Power Query. Toute transformation que vous appliquez sera écrite en langage M. Pour beaucoup, M ressemble à un langage effrayant. Dans ce post, je voudrais expliquer un peu les bases de M. Sans mentionner aucune fonction. Je veux surtout vous expliquer comment la syntaxe du langage M est structurée. Une fois que vous connaissez la syntaxe, alors tout devient simple. M est un langage dont la syntaxe s’apprend facilement. En tant que développeur Power Query, je vous recommande fortement de passer du temps sur M, car il y a BEAUCOUP d’opérations que vous pouvez faire avec M, mais que vous ne pouvez pas faire simplement avec l’interface graphique. Si vous souhaitez en savoir plus sur Power BI, lisez le livre Power BI from Rookie to Rock Star.

M est le nom informel du langage de formule Power Query. Le nom formel est si long que personne ne l’utilise, tout le monde l’appelle M ! M est l’abréviation de Data Mashup, certains disent que c’est l’abréviation de Data Modeling. M est un langage fonctionnel, et il est important d’en connaître les fonctions. Cependant, chaque langage a une structure et une syntaxe qui est le niveau débutant de l’apprentissage de ce langage. Dans ce post, je vais expliquer la syntaxe de M. Avant d’apprendre M, je voudrais que vous lisiez cette phrase à haute voix;

M est beaucoup plus puissant que l’interface graphique de Power Query

Oui, vous avez bien lu ! L’interface graphique de Power Query évolue tous les mois. Chaque mois, de nouvelles fonctionnalités arrivent sur cette interface graphique. Mais le fait est que toutes ces fonctionnalités sont dans le langage depuis de nombreuses années ! si vous connaissiez le langage, vous pourriez facilement les utiliser, au lieu d’attendre une option d’interface graphique pour cela. Il y a des tas d’exemples pour cela. un très petit exemple est ici : vous pouvez étendre votre capacité de regroupement dans Power Query avec un changement très mineur dans le script M de celui-ci.

Syntaxe de M

La syntaxe de ce langage est simple. il a toujours deux blocs de programmation : Le bloc d’expression LET, et le bloc d’expression IN. Voici la syntaxe M la plus simple;

let x=1in x

let et in sont des mots réservés. avant même d’aller plus loin, la première et principale chose que vous devez savoir;

M (Power Query Formula Language) est sensible à la casse. Il y a une différence entre x et X.

Que sont ces deux blocs de programmation:

let : définition de toutes les variables

in : sortie ! Oui, in signifie en fait out ! juste nommé comme in. tout ce que vous mettez dans ce bloc sera la sortie de votre requête.

Donc, en gros, la requête ci-dessous signifie définir une variable nommée comme x, lui attribuer la valeur 1, et la montrer comme ensemble de résultats. donc la requête retournera 1.

pour exécuter cet exemple, vous devez ouvrir Power BI Desktop. Allez à Get Data, commencez avec New Blank Query.

puis dans l’onglet View, sélectionnez advanced Editor;

Veuillez vous assurer lorsque vous écrivez le script que vous mettez les mots réservés tels que let et en minuscules. également votre nom de variable doit être la même casse dans let et dans section.

Comme vous pouvez le voir, il n’est pas nécessaire de définir des types de données pour la variable. Elle sera automatiquement assignée lors de la première affectation.

Si vous spécifiez une valeur texte, alors la variable serait automatiquement un type de données texte.

Fin de ligne

Les lignes de codes en M continuent si vous ne mettez pas le caractère de fin de ligne.

Comme vous pouvez le voir dans l’exemple ci-dessus, la ligne continue, et x sera égal à x=1+1 . Si vous voulez mettre une fin pour une ligne, utilisez la virgule(,). exemple ici:

chaque ligne a besoin d’une virgule(,) pour se terminer. sauf la dernière ligne avant in.

Noms des variables

Le nom des variables peut être tout d’un mot, comme Source. ou il peut avoir des espaces en lui. dans le cas où vous avez certains caractères tels que l’espace, alors vous devez mettre le nom à l’intérieur de guillemets doubles (« ) et mettre un hashtag au début de celui-ci(#). quelque chose de similaire à:

#"This is a variable name"

Le nom de la variable peut contenir des caractères spéciaux, voici un exemple:

Caractères spéciaux

Le nom de la variable peut avoir un caractère spécial, comme vous pouvez le voir ci-dessous la variable a tous les types de caractères en elle et fonctionne toujours bien.

Caractère d’échappement

Le guillemet double (« ) est un caractère d’échappement. vous pouvez l’utiliser pour définir des variables avec des noms qui ont un autre guillemet double dedans. voici un exemple:

Le premier guillemet double (surligné) ci-dessus est nécessaire pour être avant le second guillemet double (qui fait partie du nom de la variable).

Codage pas à pas

Power Query est une transformation pas à pas. Chaque transformation se fait généralement en une étape. Pendant que vous écrivez le code, vous pouvez également remarquer que dans la partie droite, vous verrez que chaque variable forme une étape.

Dans la capture d’écran ci-dessus, vous pouvez voir que chaque variable est déterminée comme une étape. et si la variable a un espace dans le nom, il l’affichera avec des espaces dans la liste des étapes appliquées.

La dernière variable est toujours spécifiée dans la section in.

Littéraux

Il existe différentes façons de définir chaque littéral dans Power Query. Par exemple, si vous voulez définir une variable de date, voici comment le faire;

pour définir tous les autres types de littéraux, voici la table de référence à utiliser:

* pour la fonction et le type ; j’écrirai un autre post plus tard pour expliquer comment ces types fonctionnent.

Appel de fonction

M est un langage fonctionnel, et pour faire presque tout vous avez besoin d’appeler une fonction pour cela. les fonctions peuvent être facilement appelées avec le nom de la fonction et en spécifiant des paramètres pour elle.

screenshot ci-dessus utilise la fonction Date.Year qui récupère la partie année d’une date. Les noms des fonctions commencent toujours par des lettres majuscules : Date.Year()

Comme tout langage de programmation, vous pouvez mettre des commentaires dans votre code. Il peut être sous deux formes;

Commentaire sur une seule ligne avec une double barre oblique (//)

Commentaire sur plusieurs lignes entre la barre oblique et les débuts (/* commentaires */)

Un exemple concret

Maintenant que vous connaissez quelques bases, regardons une requête existante en mode éditeur avancé et comprenons-la.

Dans la capture d’écran ci-dessus, vous pouvez voir toutes les bases mentionnées jusqu’à présent :

  1. let et dans le bloc
  2. noms de variables correspondant aux étapes appliquées dans la requête
  3. certains noms de variables avec hashtag et guillemet double : # »var nom »
  4. caractères de fin de ligne : virgule
  5. appelant de nombreuses fonctions

Il y a encore beaucoup de parties de cette requête que vous pourriez ne pas comprendre. spécialement quand on utilise des fonctions. vous devez apprendre ce que font les fonctions afin de comprendre pleinement le code. J’ai écrit un billet de blog, qui explique comment utiliser le mot-clé #shared pour obtenir la documentation de toutes les fonctions dans Power Query.

Dans les prochains billets, j’expliquerai d’autres niveaux de structures dans M.

Formateur, Consultant, Mentor
Reza Rad est un directeur régional de Microsoft, un auteur, un formateur, un conférencier et un consultant. Il est titulaire d’un BSc en ingénierie informatique ; il a plus de 20 ans d’expérience dans l’analyse des données, la BI, les bases de données, la programmation et le développement principalement sur les technologies Microsoft. Il est un Microsoft Data Platform MVP depuis neuf années consécutives (de 2011 à aujourd’hui) pour son dévouement à la BI de Microsoft. Reza est un blogueur actif et le cofondateur de RADACAD. Reza est également cofondateur et co-organisateur de la conférence Difinity en Nouvelle-Zélande.
Ses articles sur différents aspects des technologies, notamment sur MS BI, peuvent être trouvés sur son blog : https://radacad.com/blog.
Il a écrit quelques livres sur MS SQL BI et est également en train d’en écrire d’autres. Il a également été un membre actif sur les forums techniques en ligne tels que MSDN et Experts-Exchange, et a été un modérateur des forums MSDN SQL Server, et est un MCP, MCSE, et MCITP de BI. Il est le leader du groupe d’utilisateurs de Business Intelligence de Nouvelle-Zélande. Il est également l’auteur du livre très populaire Power BI from Rookie to Rock Star, qui est gratuit avec plus de 1700 pages de contenu et le Power BI Pro Architecture publié par Apress.
Il est un orateur international dans Microsoft Ignite, Microsoft Business Applications Summit, Data Insight Summit, PASS Summit, SQL Saturday et les groupes d’utilisateurs SQL. Et il est un formateur certifié Microsoft.
La passion de Reza est de vous aider à trouver la meilleure solution de données, il est un passionné de données.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.