BIWORKS

Langage DAX Power BI : le guide pour bien démarrer

Mis à jour le

DAX (Data Analysis Expressions) est le langage de calcul de Power BI. C’est lui qui transforme un modèle de données en indicateurs : chiffre d’affaires, marge, cumul depuis le début de l’année, évolution par rapport à l’année précédente, part de marché… Maîtriser le DAX, c’est passer de simples graphiques à de véritables tableaux de bord de pilotage.

Ce guide explique les notions indispensables, les fonctions à connaître et des exemples prêts à l’emploi.

Table des matières

DAX, c’est quoi ?

DAX est un langage de formules créé par Microsoft pour Power Pivot, puis repris dans Power BI et Analysis Services. Sa syntaxe rappelle celle d’Excel (SUM, IF, DIVIDE…), mais il raisonne sur des tables et des colonnes, pas sur des cellules. Il ne sert pas à préparer les données (c’est le rôle de Power Query), mais à calculer des indicateurs sur un modèle déjà structuré, idéalement en modèle en étoile.

Mesures, colonnes et tables calculées

ÉlémentCalculé quand ?Stocké ?Usage typique
MesureÀ chaque affichage, selon les filtresNonChiffre d’affaires, marge, taux, cumuls
Colonne calculéeAu chargement, ligne par ligneOui (augmente la taille du modèle)Catégorie, tranche d’âge, clé de regroupement
Table calculéeAu chargementOuiTable de dates, tables de paramètres

Règle d’or : un indicateur que l’on agrège doit être une mesure. Les colonnes calculées servent à créer des attributs d’analyse, souvent mieux placés dans Power Query.

Le contexte : la notion clé du DAX

Une même mesure renvoie un résultat différent dans chaque cellule d’un visuel : c’est le contexte de filtre. La mesure [CA] affiche le chiffre d’affaires de mars dans la colonne « mars » et celui de la région Ouest sur la ligne « Ouest », parce que le visuel filtre le modèle avant le calcul.

Le contexte de ligne existe dans les colonnes calculées et les fonctions itératives (SUMX, AVERAGEX…) : le calcul est évalué pour chaque ligne d’une table. Comprendre le passage de l’un à l’autre est la principale difficulté du DAX.

CALCULATE, la fonction centrale

CALCULATE évalue une expression dans un contexte de filtre modifié. Quelques exemples :

CA = SUM ( Ventes[Montant HT] )

CA France = CALCULATE ( [CA], Clients[Pays] = "France" )

CA toutes régions = CALCULATE ( [CA], REMOVEFILTERS ( Clients[Région] ) )

Part de la région = DIVIDE ( [CA], [CA toutes régions] )

La mesure « Part de la région » combine deux notions : le CA filtré par la région du visuel, divisé par le CA sans filtre de région.

Les fonctions DAX à connaître

FamilleFonctionsExemple d’usage
AgrégationSUM, AVERAGE, COUNTROWS, DISTINCTCOUNTChiffre d’affaires, nombre de clients
ItérationSUMX, AVERAGEX, MAXXMarge = somme de (prix − coût) × quantité
FiltreCALCULATE, FILTER, ALL, REMOVEFILTERS, KEEPFILTERSParts, comparaisons, périmètres
Temps (time intelligence)TOTALYTD, SAMEPERIODLASTYEAR, DATEADD, DATESINPERIODCumul annuel, N-1, 12 mois glissants
LogiqueIF, SWITCH, COALESCESeuils, indicateurs conditionnels
Division sûreDIVIDETaux sans erreur de division par zéro
VariablesVAR … RETURNLisibilité et performance

Les fonctions de temps exigent une table de dates marquée comme telle dans le modèle. Notre article sur les calculs de temps en DAX détaille leur usage.

Exemples de mesures pour la finance et le commercial

Marge brute = SUMX ( Ventes, Ventes[Quantité] * ( Ventes[Prix unitaire] - Ventes[Coût unitaire] ) )

Taux de marge = DIVIDE ( [Marge brute], [CA] )

CA cumul annuel = TOTALYTD ( [CA], 'Date'[Date] )

CA N-1 = CALCULATE ( [CA], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )

Évolution vs N-1 = DIVIDE ( [CA] - [CA N-1], [CA N-1] )

CA 12 mois glissants =
    CALCULATE ( [CA], DATESINPERIOD ( 'Date'[Date], MAX ( 'Date'[Date] ), -12, MONTH ) )

Clients actifs = DISTINCTCOUNT ( Ventes[Code client] )

Pour un expert-comptable ou un DAF, les mêmes principes permettent de construire des soldes intermédiaires de gestion, un suivi budgétaire (réel contre budget) ou une analyse de la trésorerie à partir du FEC.

Mesures rapides et Copilot

  • Mesures rapides : Power BI propose des calculs prêts à l’emploi (cumul, variation, moyenne mobile) sans écrire de code. Elles génèrent du DAX que l’on peut ensuite lire pour apprendre.
  • Copilot : il écrit ou explique une mesure à partir d’une demande en langage naturel. Il faut toutefois vérifier le contexte de filtre du résultat.
  • Vue de requête DAX : dans Power BI Desktop, elle permet d’interroger le modèle et de tester des mesures avant de les créer.

Bonnes pratiques

  • Nommez clairement vos mesures et rangez-les dans des dossiers d’affichage.
  • Construisez par étapes : des mesures de base ([CA], [Coût]) réutilisées par les mesures avancées.
  • Utilisez VAR pour éviter de calculer deux fois la même expression.
  • Préférez DIVIDE à l’opérateur /.
  • Formatez le code avec DAX Formatter pour le rendre lisible et maintenable.
  • Évitez les colonnes calculées superflues, qui alourdissent le modèle.
  • Testez les performances avec l’analyseur de performances de Power BI Desktop.

Le DAX s’apprend beaucoup plus vite avec un formateur. Nos formations DAX pour Power BI et DAX avancé, finançables par le CPF, s’appuient sur vos propres cas métier. Et si vos rapports existants sont lents ou affichent des chiffres douteux, un audit de vos mesures DAX permet souvent de les corriger rapidement.

Questions fréquentes

Qu'est-ce que le langage DAX ?
DAX (Data Analysis Expressions) est le langage de formules de Power BI, de Power Pivot dans Excel et d'Analysis Services. Il sert à créer des mesures, des colonnes et des tables calculées : marges, cumuls, comparaisons avec l'année précédente, parts de marché, indicateurs financiers.
Quelle différence entre une mesure et une colonne calculée ?
Une colonne calculée est évaluée ligne par ligne au chargement des données et stockée dans le modèle. Une mesure est calculée à la volée, selon les filtres de chaque visuel. Pour les indicateurs agrégés (chiffre d'affaires, marge, taux), il faut presque toujours privilégier les mesures : elles sont plus légères et réagissent aux filtres.
Le DAX est-il difficile à apprendre ?
La syntaxe ressemble aux formules Excel et les premières mesures s'écrivent en quelques heures. La vraie difficulté est la notion de contexte (de ligne et de filtre) et la fonction CALCULATE, qui demandent de la pratique. Une formation structurée fait gagner plusieurs mois.
Quelle est la fonction DAX la plus importante ?
CALCULATE. Elle évalue une expression dans un contexte de filtre modifié : c'est elle qui permet de calculer un chiffre d'affaires sur un autre périmètre, une période précédente ou un cumul. La plupart des mesures avancées reposent dessus.
Peut-on utiliser Copilot pour écrire du DAX ?
Oui. Copilot dans Power BI suggère et explique des mesures DAX à partir d'une demande en langage naturel. Il accélère l'écriture, mais il faut comprendre le contexte de filtre pour vérifier que le résultat est juste.

À lire aussi

Un projet ou un rapport Power BI à améliorer ?

Audit de performance, modélisation, DAX, déploiement : nos consultants certifiés Microsoft interviennent sur vos rapports existants ou vos nouveaux projets.

Parler à un expert Power BI