Quand utiliser le langage M et quand utiliser le langage DAX?

Publié le 17 juillet 2019
par Sophie Marchand M.Sc., CPA, CGA, MVP
Recette magiques

Quand utiliser le langage M et quand utiliser le langage DAX?

Vous êtes plusieurs à me demander quand faut-il utiliser le langage M et quand faut-il utiliser le langage DAX, que ce soit dans Excel avec Power Query et Power Pivot ou dans Power BI. La question mérite qu’on s’y attarde et c’est exactement ce que je fais dans cet article.

 

Qu’est-ce que le langage M?

Le langage M (M pour Mashup) est une solution ETL (Extracting, Transforming, Loading) en mode libre-service, utilisée par Power Query (Excel et Power BI).

 

Le langage M est utilisé pour:

  • (E) automatiser le processus d’exportation de données de différentes sources et d’importation dans Excel ou Power BI
  • (T) transformer les données ainsi importées afin qu’elles puissent convenir aux besoins d’analyse
  • (L) charger ces données dans une ou des tables, qui seront éventuellement utilisées par un modèle de données

 

Le langage M est un langage de programmation structuré, étape par étape, où chaque étape va généralement lire dans la précédente (sauf exceptions).

 

Power Query: Code M

 

Qu’est-ce que le langage DAX?

Le langage DAX (Data Analysis Expression) est utilisé par Power Pivot dans Excel, Power BI Desktop et SSAS (SQL Sever Analysis Services) tabulaire. Il s’agit d’un langage inspiré en partie des fonctions Excel mais adapté à la réalité d’analyse de bases de données. Il utilise des fonctions, des filtres et des expressions et a expressément été créé pour répondre à des questions analytiques (engin analytique).

 

Mesure DAX écart coûts
 
 

Vous avez des sources de données volumineuses à rassembler et analyser dans Excel ? Apprenez à automatiser tout le processus d’importation, de transformation et de modélisation  des données avec nos formations sur Power Query et Power Pivot dans Excel.

 

Quand utiliser le langage M et quand utiliser le langage DAX?

Certaines tâches peuvent techniquement très bien se faire en langage M ou en langage DAX… Vous pouvez simplement penser, par exemple, aux fameuses colonnes calculées. Mais pourquoi cette dualité me direz-vous? Et bien, il s’agit d’une réalité propre à tous les langages et programmes informatiques. Vous pouvez très bien écrire un texte dans Excel et écrire un texte dans Word. Qu’utiliserez-vous quand viendra le temps d’écrire un texte? Et bien, ça dépend surtout de la finalité de votre texte. Si vous devez rédiger un CV, vous opterez probablement pour Word. Mais si vous devez rédiger un texte qui fait l’analyse de données dans Excel et que vous souhaitez qu’il se mette à jour en fonction des nouvelles valeurs de l’analyse, vous l’écrirez peut-être directement dans le fichier Excel de l’analyse, avec des fonctions liées aux valeurs de l’analyse.

Si vous y réfléchissez bien, c’est comme ça, pas mal dans tout. Avec quoi étendez-vous votre confiture sur vos rôties? Personnellement, j’utilise une cuillère et j’étends le tout avec le dos de ma cuillère. Mais à l’origine, la cuillère avait été inventée pour d’autres fins. C’est le couteau qui avait été inventé pour étendre. En effet, si je me fie au dictionnaire, une cuillère est un ustensile de table formé d’un manche et d’un cuilleron dont on se sert ordinairement pour manger le potage et d’autres aliments liquides ou de peu de consistance.

Si on revenait maintenant à nos moutons, quand vaut-il mieux opter pour le langage M et quand vaut-il mieux opter pour le langage DAX? Et bien, il y a des experts du langage M qui font à peu près tout en M et des experts du langage DAX qui font à peu près tout en DAX. Mais pour être davantage en ligne avec les meilleures pratiques d’affaires, demandez-vous toujours si votre tâche consiste à PRÉPARER LES DONNÉES pour l’analyse, dans lequel cas il vous faudrait opter pour le langage M, ou à CRÉER UNE EXPRESSION ANALYTIQUE, dans lequel cas il vous faudrait opter pour le langage DAX.

 

Langage M vs Langage DAX

 

Quelques exemples concrets

Voici quelques exemples où il peut être embêtant de choisir entre le langage M et le langage DAX.

 

Ajout d’une colonne qui fusionne 2 colonnes à l’aide d’un symbole « & »… M ou DAX?

À mon sens, il s’agit d’une préparation de données (étape conventionnelle de ETL) et elle devrait donc se faire dans Power Query.

 

Créer une valeur YTD… M ou DAX?

En M, on a besoin de beaucoup de code pour calculer un YTD et ça doit se calculer dans une colonne alors qu’en DAX ça se fera avec une mesure (et probablement une fonction de Time Intelligence), qui se recalculera aisément selon le contexte. Nul doute ici, il vaudrait mieux opter pour le DAX, à moins que la valeur YTD ne serve à qualifier un item en ligne dans une table de dimensions. Par exemple, dans une table de clients, je pourrais vouloir compiler les ventes YTD de la dernière année et attribuer ensuite à chaque client un rang ou une catégorie en lien avec cette valeur. Cette information deviendrait en soi une dimension d’analyse et pour cette raison, je la créerais en langage M.

 

Créer une table de dates… M ou DAX?

Voilà une situation embêtante!

À mon sens, créer une table de dates, ça tient de la préparation de données. Mais Microsoft nous a fourni de belles fonctions de tables en DAX, qui évitent du travail (fonctions CALENDAR et CALENDARAUTO). Par contre, que se passe-t-il ensuite si on veut fusionner cette table en DAX, par exemple, avec une table de dates fiscales? Ce serait beaucoup plus simple via Power Query (et donc en langage M)… De même, de plus en plus d’experts commencent à confirmer que les colonnes de dates créées en M sont mieux compressées que celles créées en DAX, ce qui offrirait une autre raison d’opter pour le M quand vient le temps de créer un calendrier dynamique.

 

Une question pour vous, chers lecteurs?

Avez-vous des situations concrètes où vous hésitez entre l’utilisation du langage M et du langage DAX? Le cas échéant, nous voulons le savoir! Utilisez la zone de commentaires ci-dessous pour nous en faire part.

 


Formations complémentaires

Pour une introduction au langage DAX, suivez la formation Introduction au langage DAX (Power BI et Power Pivot).

Voici quelques commentaires d’apprenants ayant suivi cette formation :

Nicolas Grandclaude
Écrit il y a 2 jours
Je recommande vivement cette formation.

Une formation indispensable pour la mise en place d'un modèle de données automatique et performant.

Carl Landry
Écrit il y a 2 semaines
Formation simple et efficace

Formation simple et efficace donnant une bonne introduction au langage DAX, de même que les outils et ressources afin de l'approfondir davantage. Très intéressant!

David Bansard
Écrit il y a 3 semaines
De nombreuses portes se sont ouvertes

Etant, moi-même, dans le métier de la formation, j'avais besoin d'un apprentissage beaucoup plus pertinent et professionnel que se débrouiller tout seul chez soi. De nombreuses portes se sont ouvertes sur la manière de comprendre l'outil Power BI et donc de correctement l'utiliser.

Remi Martinato
Écrit il y a 1 mois
Superbe formation même si le langage Dax est très complexe à comprendre.

Cette formation clôture mon parcours « Excel tableaux de bord » qui a été pour moi extrêmement enrichissant. Cela m a permis de découvrir des fonctions d Excel, de prendre plaisir à les utiliser et de développer ma créativité afin de produire des tableaux de bord encore plus percutants. La formatrice maîtrise sur le bout des ongles les différents outils.


Pour une introduction au langage M, suivez la formation Excel – Introduction à Power Query et au langage M.

Voici quelques commentaires d’apprenants ayant suivi cette formation :

Amélie Tremblay
Écrit il y a 2 mois
Une des rares formations où nous quittons avec une boîte à outils.

Très bonne formation applicable à ma réalité. Une des rares formations où nous quittons avec une boîte à outils.

Cécile BERNARD
Écrit il y a 3 mois
Je ne regrette absolument pas mon choix !

Excellent !! Je suivais déjà Sophie via Twitter ou directement sur le site du CFO masqué (forum et astuce) et quand il a fallu déterminer quel organisme de formation prendre, j'ai naturellement pensé au CFO Masqué. Je ne regrette absolument pas mon choix !

Stephanie Lambert
Écrit il y a 2 ans
Enfin du contenu que je ne connaissais presque pas

J'ai enfin pu avoir l'expérience d'un nouvel apprenant et comme je m'y attendais, elle fut très positive. Les notions sont bien expliquées et illustrées avec des exemples concrets. Il est très utile d'avoir les mêmes tables de données pour pouvoir reproduire les exemples. Les documents pdf fournis sont clairs et bien faits.

Daniel Harvey
Écrit il y a 2 ans
J'ai adoré.

Comme introduction a l'outil, pour avoir un aperçu de ce qu'il est possible de faire, je pense que la formation est vraiment géniale.


CFO-Masque_Formations-en-ligne_FB Le CFO masqué offre un vaste choix de formations en informatique décisionnelle avec Excel et Power BI, via un portail en ligne et à distance en temps réel, selon un calendrier. Si vous désirez organiser des formations privées, faites nous simplement parvenir un courriel à info@lecfomasque.com . Des certificats convenant aux normes de formation continue des divers ordres professionnels du Québec sont offerts pour l'ensemble des formations.  

Découvrez quelles formations vous conviennent

 

4 réflexions sur “Quand utiliser le langage M et quand utiliser le langage DAX?”

  1. Merci pour l’article, ça éclaire un peu la différence.
    je dois capturer la derniere date dans une Table et calculer les 52 dernieres semaines avec cette date.
    Ces 52 dernières semaines serviront d’Axe Y dans plusieurs KPI donc je crois que je devrais créer une Table en M… mais il reste a savoir comment!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top