Remplissez ce court formulaire pour candidater à la formation de votre choix. Notre équipe pédagogique vous contactera rapidement pour échanger sur votre parcours et vous accompagner dans la suite de votre inscription.
Vous avez ouvert Power BI, importé vos données, posé quelques visuels. Tout va bien jusqu'au moment où votre responsable demande « peux-tu me comparer les ventes de ce mois à celles du mois dernier, en pourcentage ? ». Et là, blocage. Les visuels de base ne savent pas faire ça tout seuls. Il vous manque un langage pour donner des instructions précises à vos données : le DAX.
DAX a une réputation qui fait peur, un peu comme les jointures en SQL. Pourtant, une fois qu'on comprend sa logique (assez différente d'Excel, même si les deux se ressemblent en surface), les portes s'ouvrent vite. C'est le langage qui transforme un rapport qui affiche des données en rapport qui répond à des questions.
Je forme des Data Analysts chez DataSuits, organisme de formation Qualiopi certifié par l'Université Paris 1 Panthéon-Sorbonne, et si vous avez lu notre article sur ce qu'est Power BI, vous savez déjà que DAX en est le moteur de calcul. On va maintenant l'ouvrir vraiment : ce qu'il est, la différence entre mesure et colonne calculée, votre première formule, la fonction CALCULATE (probablement la plus importante de tout le langage), et le piège n°1 qui coince presque tous les débutants.
DAX (Data Analysis Expressions) est le langage de formules utilisé dans Power BI pour créer des calculs personnalisés : mesures, colonnes calculées et tables calculées. Contrairement à Excel, où une formule s'applique à des cellules, DAX raisonne en colonnes et en contexte : la même formule peut renvoyer un résultat différent selon les filtres actifs dans le rapport, ce qui en fait un outil bien plus puissant pour l'analyse dynamique.
DAX (Data Analysis Expressions) est le langage de formules créé par Microsoft pour Power BI, mais aussi pour Power Pivot dans Excel et Analysis Services. Sans lui, Power BI se contente d'afficher ce que vous lui donnez : des sommes brutes, des comptages simples. Avec lui, vous créez de vraies analyses : des pourcentages d'évolution, des comparaisons dans le temps, des ratios personnalisés selon vos besoins métier.
La comparaison qui aide à démarrer : DAX ressemble aux formules Excel dans sa syntaxe (des fonctions, des parenthèses, des arguments), mais sa logique est complètement différente. En Excel, une formule s'applique à une cellule précise. En DAX, une formule s'applique à une colonne entière, et surtout, son résultat change automatiquement selon les filtres appliqués dans le rapport (un pays sélectionné, une période choisie). C'est cette adaptabilité qui fait toute la puissance de l'outil.
Prenons une image simple : une formule DAX est comme une question qu'on repose en permanence. « Quel est le total des ventes ? » n'a pas une seule réponse fixe : la réponse dépend de ce que l'utilisateur du rapport a sélectionné (une année, une région, un produit). DAX calcule cette réponse à chaque nouveau contexte, en temps réel. C'est ce qui distingue un tableau de bord figé d'un vrai outil d'analyse.
C'est la toute première question à trancher avant d'écrire une formule DAX, et c'est celle qui perd le plus de débutants. Power BI propose deux façons de créer un calcul : la mesure et la colonne calculée. Elles se ressemblent en apparence, mais fonctionnent de façon opposée.
Une colonne calculée se calcule une fois, ligne par ligne, au moment où les données sont chargées. Le résultat est stocké, figé, comme une colonne normale de votre table. Une mesure, elle, ne se calcule qu'au moment de l'affichage, en tenant compte de tous les filtres actifs à cet instant précis. Rien n'est stocké à l'avance : le résultat est recalculé à chaque interaction avec le rapport.
Un exemple concret pour fixer l'idée : si vous voulez créer une colonne « Tranche d'âge » à partir d'une date de naissance, une colonne calculée convient : chaque client a une tranche d'âge fixe, qui ne dépend d'aucun filtre. En revanche, si vous voulez afficher le « Total des ventes », il vous faut une mesure : ce total doit changer selon que l'utilisateur filtre sur 2025, sur la France, ou sur un seul produit.
Passons à la pratique avec un exemple concret. Imaginons une table Ventes, avec une ligne par transaction :
Première étape : créer une mesure qui calcule le total des ventes. Dans Power BI, on clique sur « Nouvelle mesure », puis on écrit :
Total Ventes = SUMX(Ventes, Ventes[Quantité] * Ventes[Prix_Unitaire])
Décortiquons cette formule, mot par mot. Total Ventes est le nom qu'on donne à la mesure. SUMX est une fonction qui parcourt chaque ligne de la table Ventes, calcule Quantité × Prix_Unitaire pour cette ligne précise, puis additionne tous ces résultats. Sur notre exemple, ça donne (3×45) + (5×20) + (2×180) = 135 + 100 + 360 = 595.
Le point essentiel : si vous placez cette mesure sur un rapport avec un filtre par produit, elle recalculera automatiquement 595 pour tout, mais 135 si on filtre sur "Clavier" uniquement. Vous n'avez rien à réécrire : c'est le contexte de filtre qui fait tout le travail. C'est exactement cette adaptabilité qui différencie une mesure d'un simple total figé.
SUM(Ventes[Prix_Unitaire])). SUMX calcule d'abord quelque chose ligne par ligne (comme une multiplication), puis additionne. Utilisez SUMX dès que le calcul doit combiner plusieurs colonnes avant d'être additionné.
Si vous ne devez retenir qu'une seule fonction DAX en sortant de cet article, c'est celle-ci. CALCULATE fait une seule chose, mais elle est fondamentale : elle modifie le contexte de filtre d'un calcul. Concrètement, elle permet de dire « calcule-moi ce total, mais en ignorant ou en changeant certains filtres ».
Reprenons notre table Ventes. Imaginons qu'on veuille connaître le total des ventes, mais uniquement pour le produit "Clavier", peu importe ce que l'utilisateur a sélectionné dans le rapport. C'est exactement le travail de CALCULATE :
Ventes Clavier = CALCULATE( [Total Ventes], Ventes[Produit] = "Clavier" )
Cette formule dit : « calcule ma mesure Total Ventes, mais force le filtre sur Produit = Clavier, quel que soit le filtre déjà en place ». Résultat : 135, toujours, même si l'utilisateur du rapport a sélectionné un autre produit dans un menu déroulant. C'est ce mécanisme qui permet de créer des comparaisons : le total général à côté d'un total forcé sur une catégorie précise, pour calculer une part de marché ou un pourcentage.
C'est LE concept qui demande un vrai effort de compréhension en DAX, mais une fois acquis, tout s'éclaire. Il existe deux façons dont DAX « sait » sur quelles données travailler : le contexte de ligne et le contexte de filtre.
Le contexte de ligne, c'est « la ligne en cours de traitement ». Quand SUMX parcourt votre table Ventes ligne par ligne pour multiplier Quantité par Prix_Unitaire, chaque passage a son propre contexte de ligne : DAX sait exactement de quelle ligne il parle à cet instant.
Le contexte de filtre, c'est l'ensemble des filtres actifs autour d'un calcul : ceux posés par les visuels du rapport, les segments (slicers), ou ceux imposés manuellement par CALCULATE. Une mesure comme Total Ventes n'a pas de contexte de ligne propre : elle se contente d'obéir au contexte de filtre qui l'entoure au moment de son affichage.
C'est l'erreur qui bloque presque tous les débutants au moment où ils essaient enfin des calculs un peu avancés, du type « comparer ce mois-ci au mois dernier ». Le symptôme : une fonction de time intelligence comme celle-ci ne fonctionne pas, ou renvoie une erreur.
Ventes Mois Précédent = CALCULATE( [Total Ventes], PREVIOUSMONTH(Calendrier[Date]) )
Pour que cette formule fonctionne, Power BI a besoin d'une table de dates dédiée (souvent appelée « Calendrier »), reliée à votre table de ventes, et marquée explicitement comme « table de dates » dans le modèle. Sans elle, les fonctions de comparaison temporelle comme PREVIOUSMONTH, SAMEPERIODLASTYEAR ou DATESYTD ne peuvent pas fonctionner correctement, car elles ont besoin d'une séquence de dates continue et complète pour naviguer dans le temps.
Au-delà de la table de dates, deux autres erreurs reviennent très souvent chez ceux qui découvrent DAX.
Écrire une division classique ([Ventes] / [Quantité]) plante dès que le dénominateur vaut zéro. La solution : utilisez toujours la fonction DIVIDE, qui gère ce cas automatiquement et renvoie un résultat vide plutôt qu'une erreur.
Prix Moyen = DIVIDE([Total Ventes], [Total Quantité], 0)
Les débutants venant d'Excel ont le réflexe de tout faire en colonnes calculées, comme des formules classiques. Problème : chaque colonne calculée alourdit le fichier (elle est stockée pour chaque ligne) et n'est pas dynamique. Pour un total, un ratio, une moyenne, la mesure est presque toujours la bonne réponse, comme vu plus haut.
Notre formation Data Analyst & IA vous forme au SQL, à Python, à Power BI et à l'IA sur des données réelles d'entreprise. Certificat de l'Université Paris 1 Panthéon-Sorbonne, mentors disponibles 7j/7.
Le DAX se maîtrise en pratiquant sur de vraies données, pas en mémorisant des fonctions. Voici comment progresser à partir d'ici.
Utilisez la table Ventes de cet article et créez d'autres mesures : le prix moyen (avec DIVIDE), le nombre de produits vendus (avec COUNTROWS), la part d'un produit dans le total (en combinant CALCULATE et votre mesure Total Ventes). C'est en variant les cas que le déclic se produit vraiment.
Avant de vous attaquer aux comparaisons temporelles, entraînez-vous à créer une table de dates propre et à la relier à vos données. C'est un prérequis technique qui débloque énormément de possibilités une fois en place, et qui évite la frustration du piège vu plus haut.
Le DAX prend tout son sens combiné à des données propres, souvent préparées en amont avec du SQL ou du Python. Si les bases de la donnée ne sont pas encore acquises, nos guides sur les jointures SQL et le GROUP BY posent ces fondations. Pour aller plus loin sur Power BI et le DAX avec un accompagnement complet, notre formation Data Analyst & IA couvre SQL, Python, Power BI et l'IA sur des projets réels, avec un certificat de l'Université Paris 1 Panthéon-Sorbonne, des mentors 7j/7 et un accompagnement carrière. Notre formation Power BI dédiée et notre blog restent aussi disponibles.
En 20 minutes avec un conseiller, vous validez si le métier de Data Analyst vous correspond, vous calculez votre financement (CPF, France Travail, OPCO) et vous repartez avec un plan clair. Service gratuit, sans engagement.
Formateur Data et responsable du parcours Data Analyst chez DataSuits, j'enseigne le SQL, Python et Power BI au quotidien. Le DAX, et particulièrement CALCULATE, fait partie des notions que je prends le temps de vraiment expliquer plutôt que de simplement lister : c'est en comprenant le contexte de filtre qu'on débloque tout le potentiel de Power BI.
Le DAX transforme Power BI d'un simple outil d'affichage en un vrai moteur d'analyse. La distinction mesure vs colonne calculée, la fonction CALCULATE et une table de dates bien construite suffisent à débloquer la grande majorité des besoins d'analyse en entreprise : totaux dynamiques, comparaisons temporelles, parts de marché.
Le seul vrai effort à fournir, c'est d'assimiler la logique du contexte, différente de celle d'Excel. Une fois ce déclic fait, chaque nouvelle formule DAX devient plus facile à comprendre, parce qu'elle repose toujours sur les mêmes mécanismes : ligne, filtre, et la capacité de CALCULATE à les manipuler.
Pour transformer ces bases en compétence professionnelle complète, notre formation Data Analyst & IA à 2 990 € avec certificat de l'Université Paris 1 Panthéon-Sorbonne vous forme au SQL, à Python, à Power BI et à l'IA sur des données réelles. Prochaine étape : prenez rendez-vous avec un conseiller. 20 minutes pour bâtir votre projet. Service gratuit, sans engagement.
Le financement ne doit jamais être un frein à votre projet.
Chez DataSuits, nos conseillers pédagogiques vous accompagnent à chaque étape pour trouver la meilleure solution de financement adaptée à votre profil:
Remplissez ce court formulaire pour candidater à la formation de votre choix.
Notre équipe pédagogique vous contactera rapidement pour échanger sur votre parcours et vous accompagner dans la suite de votre inscription.



