Titre RNCP Niveau 7

Maîtrisez pipelines, cloud & IA pour devenir Data Engineer opérationnel.

Devenez Data Engineer

DataScientist.fr

Formations

L'équipeLa plateforme
Offre entreprises

🇫🇷

Guide du débutant sur DAX | Tutoriel Power BI
Data Scientist
Big Data
SQL

Guide du débutant sur DAX | Tutoriel Power BI

Hamza GUEREHOUNE

Senior Data Analyst | Tech Lead Power BI Azure

Publié le 22 septembre 2025 · 15 min de lecture

TL;DR : Dans cet article, nous allons explorer en profondeur le langage DAX (Data Analysis Expressions) utilisé dans Power BI. DAX est un ensemble de fonctions, d’opérateurs et de constantes qui peuvent être combinés pour créer des formules et des expressions dans Power BI, Analysis Services et Power Pivot dans les modèles de données Excel.
Ce guide, pensé comme une véritable tutoriel complet et pratique, s’adresse aux débutants mais aussi aux utilisateurs confirmés qui souhaitent renforcer leurs compétences. Avec des explications claires, des exemples pratiques et des astuces avancées, il vous accompagnera pas à pas pour comprendre et maîtriser DAX.

Introduction à DAX dans Power BI

Le langage DAX (Data Analysis Expressions) est au cœur de Power BI, Power Pivot et Analysis Services. Il s’agit d’un langage de formules spécialement conçu pour la modélisation de données et la création de calculs dynamiques. On pourrait le comparer aux formules Excel, mais avec une différence fondamentale : là où Excel se limite généralement à des calculs cellule par cellule, DAX travaille avec des modèles relationnels complets. Autrement dit, il permet d’exploiter les relations entre plusieurs tables et d’effectuer des analyses qui s’adaptent automatiquement aux filtres appliqués dans vos rapports.

Pourquoi DAX est-il si important ?

Dans un contexte professionnel, les bases de données sont rarement simples. Vous pouvez avoir des millions de lignes de ventes, des tables clients, des tables produits et des dimensions temporelles. Comment répondre rapidement à des questions comme :
  • Quel est le chiffre d’affaires réalisé dans chaque région ce mois-ci ?

  • Quelle est la croissance des ventes par rapport à l’année dernière ?

  • Quels sont les produits qui contribuent le plus à mon revenu global ?

Avec DAX, vous n’avez pas besoin de recréer ou de filtrer vos données manuellement : les formules se connectent directement à votre modèle et s’adaptent au contexte choisi (par date, produit, région, etc.). Cette flexibilité est ce qui fait la puissance de DAX.

Les avantages clés de DAX

  1. Automatisation des calculs complexes : plutôt que de créer des dizaines de colonnes ou de requêtes manuelles, une seule mesure DAX peut s’adapter à différents filtres et fournir des résultats dynamiques.

  2. Création d’indicateurs métiers (KPI) : marge brute, taux de conversion, croissance annuelle… autant d’indicateurs que vous pouvez calculer et suivre directement dans vos tableaux de bord.

  3. Analyses temporelles simplifiées : grâce aux fonctions dites de Time Intelligence, il devient facile de comparer une période donnée à une autre (mois précédent, même mois de l’an dernier, cumul depuis le début de l’année).

  4. Modèles dynamiques et interactifs : une formule DAX ne donne pas un résultat fixe, elle s’adapte en temps réel aux filtres appliqués dans vos visuels ou segments (par produit, par région, par période, etc.).

En résumé, DAX est l’outil qui transforme Power BI d’un simple outil de visualisation en une véritable plateforme d’analyse décisionnelle avancée.

Comprendre les concepts fondamentaux de DAX

Avant d’écrire vos premières formules, il est indispensable de bien comprendre comment DAX interprète vos données.
Trois notions constituent le cœur du langage : le contexte de ligne, le contexte de filtre et le contexte de calcul.

1. Contexte de ligne

Le contexte de ligne correspond à l’idée que chaque ligne d’une table est une entité indépendante. Lorsque vous créez une colonne calculée, DAX évalue la formule ligne par ligne, en tenant compte des valeurs spécifiques de chaque enregistrement.
Exemple simple :
Profit = Sales[Revenue] - Sales[Cost]
Ici, la colonne Profit sera calculée pour chaque ligne de la table Sales en soustrayant le coût du revenu.
Exemple avancé : Vous pouvez utiliser une fonction itérative comme SUMX :
Total Profit = SUMX(Sales, Sales[Revenue] - Sales[Cost])
Ici, SUMX parcourt chaque ligne de la table Sales, calcule le profit ligne par ligne, puis additionne le tout.
À retenir : le contexte de ligne agit localement sur chaque enregistrement.

2. Contexte de filtre

Le contexte de filtre est l’ensemble des restrictions appliquées aux données avant que DAX n’exécute le calcul. Ces filtres peuvent provenir de :
  • Un visuel Power BI (par exemple un graphique filtré sur une région ou une période).

  • Un segment (slicer) choisi par l’utilisateur.

  • Une relation entre tables qui restreint les valeurs visibles.

  • Des fonctions DAX comme CALCULATE ou FILTER qui modifient explicitement le filtre actif.

Exemple basique : Si vous affichez les ventes dans un visuel filtré sur l’année 2024, toutes vos formules DAX prendront uniquement les données de 2024 en compte.
Exemple avec CALCULATE :
Sales 2024 = CALCULATE(SUM(Sales[Amount]), YEAR(Calendar[Date]) = 2024)
Cette mesure calcule le total des ventes mais uniquement pour l’année 2024, peu importe les autres filtres appliqués dans le rapport.
À retenir : le contexte de filtre agit globalement et influence quelles lignes sont disponibles pour le calcul.

3. Contexte de calcul

Le contexte de calcul résulte de la combinaison du contexte de ligne et du contexte de filtre. C’est ce qui permet à DAX d’exécuter des formules complexes de manière dynamique.
Exemple illustratif : Imaginez une table avec les ventes de plusieurs produits, et un visuel filtré sur Trimestre 1 - 2024.
  • Le contexte de filtre sélectionne uniquement les ventes du premier trimestre 2024.

  • Le contexte de ligne calcule le chiffre d’affaires produit par produit.

  • Ensemble, ils définissent le contexte de calcul.

Exemple pratique :
Sales Growth = 
VAR PrevYearSales = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date]))
RETURN DIVIDE(SUM(Sales[Amount]) - PrevYearSales, PrevYearSales)

Dans cet exemple :
  • Le contexte de filtre limite l’analyse à la période affichée dans le visuel.

  • Le contexte de calcul ajoute une comparaison avec la même période de l’année précédente.

À retenir : maîtriser le contexte de calcul est indispensable pour écrire des mesures fiables et éviter des résultats inattendus.

Les principales catégories de fonctions DAX

Le langage DAX est riche de centaines de fonctions, mais celles-ci se regroupent en grandes catégories. Chacune répond à des besoins spécifiques : calculs numériques, filtrage dynamique, gestion des relations entre tables ou encore analyses temporelles. Voici un panorama détaillé, avec explications et exemples pratiques.

Fonctions d’agrégation

Ces fonctions servent à résumer les données. Elles sont la base de toute analyse.
  • SUM : additionne les valeurs d’une colonne. Exemple : SUM(Sales[Amount]) calcule le chiffre d’affaires total.
  • SUMX : effectue une somme itérative, utile quand le total dépend de plusieurs colonnes. Exemple : SUMX(Sales, Sales[Quantity] * Sales[UnitPrice]) calcule le total basé sur quantité × prix.
  • AVERAGE : calcule la moyenne simple d’une colonne. Exemple : AVERAGE(Sales[Amount]).
  • AVERAGEX : comme SUMX mais pour la moyenne, permettant d’itérer ligne par ligne. Exemple : AVERAGEX(Products, Products[Price] * Products[Discount]).
  • COUNT : compte les valeurs non vides d’une colonne.
  • DISTINCTCOUNT : compte uniquement les valeurs uniques, très utile pour identifier le nombre de clients distincts par exemple.

Fonctions de filtre et de contexte

Ces fonctions permettent de modifier ou de contrôler le contexte d’évaluation des mesures.
  • CALCULATE : le « roi » des fonctions DAX. Il modifie le contexte de filtre avant d’effectuer le calcul. Exemple : CALCULATE(SUM(Sales[Amount]), Sales[Category] = "Électronique") calcule uniquement les ventes électroniques.
  • FILTER : retourne une table filtrée. Exemple : FILTER(Sales, Sales[Amount] > 1000) ne conserve que les ventes supérieures à 1000.
  • ALL : supprime tous les filtres appliqués à une table ou une colonne, souvent utilisé pour comparer une valeur individuelle à un total global.
  • ALLEXCEPT : supprime tous les filtres sauf ceux indiqués. Exemple : ALLEXCEPT(Sales, Sales[Product]) garde le filtre produit mais ignore les autres.
  • VALUES : retourne une liste unique des valeurs d’une colonne. Utile pour créer des relations implicites ou pour compter les catégories distinctes.

Fonctions de relation et de recherche

Ces fonctions exploitent le modèle relationnel de Power BI.
  • RELATED : ramène une valeur depuis une table reliée (relation un-à-plusieurs). Exemple : RELATED(Customers[Region]) affiche la région du client lié à chaque vente.
  • RELATEDTABLE : retourne toutes les lignes d’une table reliée, souvent utilisée dans les mesures.
  • LOOKUPVALUE : recherche une valeur dans une colonne en fonction de critères. Exemple : LOOKUPVALUE(Products[Price], Products[ProductID], Sales[ProductID]) récupère le prix d’un produit correspondant à une vente.

Fonctions temporelles (Time Intelligence)

Indispensables pour l’analyse chronologique, elles nécessitent une table calendrier correctement configurée.
  • DATEADD : décale une période dans le temps (jours, mois, trimestres, années). Exemple : comparer les ventes du mois courant avec le mois précédent.
  • SAMEPERIODLASTYEAR : retourne la même période mais l’année précédente, parfait pour comparer N vs N-1.
  • TOTALYTD / TOTALQTD / TOTALMTD : calculent les cumuls depuis le début de l’année, du trimestre ou du mois jusqu’à la date sélectionnée.
  • PARALLELPERIOD : décale une période tout en gardant la granularité. Exemple : comparer janvier 2024 à janvier 2023.

Fonctions statistiques et logiques

Elles ajoutent de la logique conditionnelle et des calculs plus avancés.
  • IF : applique une condition simple. Exemple : IF(Sales[Amount] > 1000, "Grande Vente", "Petite Vente").
  • SWITCH : remplace plusieurs conditions IF imbriquées par une structure plus lisible. Exemple : catégoriser les ventes par seuils.
  • DIVIDE : effectue une division en gérant automatiquement les divisions par zéro. Exemple : DIVIDE(Sales[Profit], Sales[Revenue]) calcule la marge sans risque d’erreur.
  • RANKX : attribue un classement dynamique en fonction d’un calcul. Exemple : RANKX(ALL(Products), SUM(Sales[Amount])) classe les produits selon leur chiffre d’affaires.
En résumé, chaque catégorie de fonctions DAX vous aide à répondre à un type de besoin : résumer vos données, contrôler le contexte de calcul, exploiter vos relations entre tables, analyser dans le temps ou appliquer des conditions et classements. La maîtrise de ces familles est la clé pour écrire des mesures robustes et adaptées aux scénarios réels.

Exemples pratiques approfondis

1. Calculer la croissance annuelle (YoY Growth)

YoY Growth =
DIVIDE(
    SUM(Sales[Amount]) - CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date])),
    CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date]))
)

2. Créer un classement dynamique des produits

ProductRank = RANKX(ALL(Products), SUM(Sales[Amount]), , DESC)

3. Déterminer la part de marché d’un produit

MarketShare =
DIVIDE(SUM(Sales[Amount]), CALCULATE(SUM(Sales[Amount]), ALL(Sales)))

4. Analyser les ventes des clients fidèles

FilteredSales =
CALCULATE(
SUM(Sales[Amount]),
FILTER(Customers, Customers[LoyaltyStatus] = "Fidèle")
)

5. Cumul des ventes depuis le début de l’année

YTD Sales = TOTALYTD(SUM(Sales[Amount]), Calendar[Date])

Bonnes pratiques pour écrire en DAX

  1. Privilégier les mesures aux colonnes calculées.

  2. Utiliser des variables (VAR) pour plus de lisibilité et de performance.

  3. Optimiser le modèle de données : moins de colonnes, plus de relations bien définies.

  4. Nommez vos mesures clairement : par exemple Total Sales au lieu de Measure1.

  5. Testez vos formules étape par étape en créant des mesures intermédiaires.

Astuces et erreurs à éviter

  • Ne pas oublier de créer une table calendrier pour exploiter les fonctions temporelles.

  • Attention aux filtres implicites : une erreur fréquente est d’obtenir un résultat vide ou erroné parce que CALCULATE modifie le contexte sans que cela soit voulu.

  • Évitez de créer trop de colonnes calculées qui alourdissent le modèle.

  • Vérifiez toujours vos résultats avec des jeux de données réduits avant d’appliquer vos mesures à des millions de lignes.

Cas d’utilisation avancés

1. Scénarios de Time Intelligence complexes

Comparer les ventes de cette année non seulement à l’année précédente, mais aussi à la moyenne des trois dernières années.

2. Segmentation dynamique

Créer des catégories (petit, moyen, grand client) en fonction du revenu généré, via SWITCH et des conditions.

3. Analyse de performance

Évaluer automatiquement si une région dépasse ou non ses objectifs grâce à des mesures conditionnelles et des KPIs colorés.

Conclusion et prochaines étapes

DAX est un langage puissant mais exigeant : sa maîtrise repose sur une compréhension profonde du contexte, l’utilisation des fonctions adaptées et l’adoption de bonnes pratiques.
En résumé, vous avez appris :
  • à utiliser les fonctions de base (SUM, AVERAGE, CALCULATE),

  • à exploiter les fonctions temporelles pour comparer différentes périodes,

  • à écrire des mesures plus avancées (RANKX, ALL, SWITCH),

  • et à optimiser vos modèles pour la performance.

Prochaines étapes :

  • Explorez les ressources comme DAX Guide.

  • Pratiquez régulièrement avec vos propres données.

  • Participez à des communautés Power BI (forums, LinkedIn, Meetup).

  • Lancez-vous dans des projets concrets en appliquant DAX à des scénarios métiers réels.

Votre apprentissage de DAX est un voyage : chaque formule vous rapprochera d’une compréhension plus fine de vos données et d’une capacité accrue à en tirer des insights stratégiques. Continuez à expérimenter et à partager vos découvertes : c’est ainsi que vous deviendrez un expert.
Rappel clé : DAX n’est pas seulement un langage de calcul, c’est une passerelle entre vos données et vos décisions stratégiques.

FAQ

Prenez un moment pour discuter de votre projet de formation avec un conseiller.

Qu'est-ce que le langage DAX et pourquoi est-il important pour Power BI ?

Réponse :

Le langage DAX (Data Analysis Expressions) est un langage de formules utilisé dans Power BI, Power Pivot et Analysis Services pour la modélisation de données et la création de calculs dynamiques. Il est essentiel car il permet d'exploiter les relations entre plusieurs tables et d’effectuer des analyses qui s’adaptent automatiquement aux filtres appliqués dans vos rapports. Sa flexibilité et sa puissance transforment Power BI en une véritable plateforme d’analyse décisionnelle avancée.

Quels sont les avantages clés de l'utilisation de DAX dans Power BI ?

Réponse :

Les avantages clés de DAX incluent l'automatisation des calculs complexes, la création d'indicateurs métiers (KPI), la simplification des analyses temporelles grâce aux fonctions de Time Intelligence, et la création de modèles dynamiques et interactifs qui s'adaptent en temps réel aux filtres appliqués.

Quelles sont les principales catégories de fonctions DAX et leur utilité ?

Réponse :

DAX comprend différentes catégories de fonctions, telles que les fonctions d’agrégation (SUM, AVERAGE), de filtre et de contexte (CALCULATE, FILTER), de relation et de recherche (RELATED, LOOKUPVALUE), temporelles (DATEADD, SAMEPERIODLASTYEAR), et statistiques et logiques (IF, RANKX). Chaque catégorie répond à des besoins spécifiques comme résumer les données, contrôler le contexte de calcul, gérer les relations entre tables, effectuer des analyses temporelles, ou appliquer des conditions et classements.

Comment maîtriser le contexte de calcul en DAX ?

Réponse :

La maîtrise du contexte de calcul en DAX repose sur la compréhension de trois concepts fondamentaux : le contexte de ligne, le contexte de filtre, et le contexte de calcul lui-même, qui est une combinaison des deux premiers. Comprendre comment ces contextes influencent les calculs permet d'écrire des mesures fiables et d'éviter des résultats inattendus.

Quelles sont quelques bonnes pratiques pour écrire des formules DAX efficaces ?

Réponse :

Quelques bonnes pratiques pour écrire des formules DAX incluent : privilégier les mesures aux colonnes calculées, utiliser des variables (VAR) pour plus de lisibilité et de performance, optimiser le modèle de données avec moins de colonnes et plus de relations bien définies, nommer les mesures de manière claire, et tester les formules étape par étape avec des jeux de données réduits.

Partager avec

💙 Merci d'avoir parcouru l'article jusqu'à la fin !

Hamza GUEREHOUNE

Hamza GUEREHOUNE - Senior Data Analyst | Tech Lead Power BI Azure

Expert en BI, Hamza accompagne depuis plus de 10 ans des grands groupes dans le déploiement de solutions Analytics et Cloud. Triplement certifié sur la stack Microsoft Power BI / Azure. C’est un formateur passionné par les nouvelles technologies.

» En savoir plus

Formations associés

Toutes nos formations

Formation Data Analyst Bootcamp Intensif
Formation Data Analyst Bootcamp Intensif
6 mois
Intermédiaire
Garantie

DataScientist.fr

By AXI Technologies

128 Rue de la Boétie,
75008, Paris, France

bonjour@datascientist.fr

+33 1 70 39 08 31

+33 6 86 99 34 78

© 2026 DataScientist.fr - AXI Technologies - Tous droits réservés