Contact: 514-605-7112 / info@lecfomasque.com

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

Publié le : 17 juillet 2019

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

 

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.

 


NOTRE OFFRE DE FORMATIONS


Microsoft Most Valuable Professional

Le CFO masqué vous offre un vaste choix de formations Excel et Power BI, réparties dans 8 catégories: Excel – Tableaux de bord, Excel – Modélisation financière, Excel – VBA, Excel – Power Tools, Excel – Ninja, Power BI, Finance corporative et Compléments avancés. Ces formations sont offertes en classe, en entreprise et en ligne. Nos formateurs sont des experts dans leur domaine et ils sont accrédités par Emploi-Québec et vous remettent un certificat, à la fin de chaque formation, que vous pouvez notamment utiliser pour faire reconnaître des heures de formation continue auprès de votre ordre professionnel.

 

Découvrez quelles formations vous conviennent

Pour info: 514-605-7112 ou info@lecfomasque.com

 

Sophie Marchand

Sophie Marchand, M.Sc., CPA, CGA, MVP, est détentrice d’une M.Sc. en finance corporative et d’un titre comptable CPA, CGA. Elle est également MVP Office Apps and Services (Excel) et MVP Data Platform (Power BI). Le titre de MVP est un titre honorifique remis par Microsoft et signifie « Most Valuable Professional ». Il est attribué à des experts de solutions Microsoft qui se distinguent non seulement par leurs compétences mais également par leur implication dans la communauté. Seuls 4 professionnels possèdent cette double-qualification dans le monde. Mme Marchand cumule de nombreuses années d’expérience dans le milieu des affaires et se spécialise en modélisation financière et en intelligence d’affaires avec Excel et Power BI. Après avoir longtemps offert ses services comme consultante, elle se consacre désormais à la formation, sous toutes ses formes (formations en classe, formations en ligne, formations en entreprise, webinaires, animation de groupe d'usagers, rédaction d'articles de blogue, animation de forum en ligne et plus encore). Vous pouvez d'ailleurs la retrouver à la tête du groupe d'usagers Montreal Modern Excel and Power BI.

  • réponse Pierre-Olivier ,

    Superbe article…merci!

    Laisser un commentaire