DAX — Les fondamentaux
Les données sont propres : passons aux calculs. Le langage DAX permet de créer des colonnes calculées et des mesures pour analyser tes données et alimenter des visuels percutants.
Le langage DAX est exactement le même sur le web : toutes les formules de ce cours se copient telles quelles. Seul l'endroit où tu les saisis change. Sur app.powerbi.com :
- Charge tes données via un Flux de données (compétence Power Query) ou un Classeur Excel, puis crée un Rapport — un modèle sémantique est créé automatiquement.
- Dans l'espace de travail, ouvre le modèle sémantique → Ouvrir le modèle de données (modélisation web) : tu y trouves Nouvelle mesure, Nouvelle colonne et les Relations.
- Tu peux aussi créer une mesure directement en éditant un rapport : volet Données → clic droit sur la table → Nouvelle mesure.
Fichiers : 02 - base-visuels-DAX0.xlsx (modules 1 à 3) puis 02 - base-DAX1.xlsx (modules 4 à 6).
📗 Tu connais Excel ? Voici l'équivalent des fonctions DAX de ce cours
| En DAX (Power BI) | ≈ En Excel | L'idée |
|---|---|---|
& (concaténation) | & ou CONCAT() / CONCATENER() | Coller deux textes bout à bout |
SUM() | SOMME() | Additionner une colonne |
CALCULATE(expr ; filtre) | SOMME.SI.ENS() | Un calcul filtré par un ou plusieurs critères |
DIVIDE(a ; b) | =SIERREUR(a/b ; 0) | Une division qui gère le « ÷ 0 » |
COUNTROWS() | NB() / NBVAL() | Compter les lignes |
SUMX(table ; a*b) | SOMMEPROD() | Calculer ligne par ligne, puis additionner |
ALL() | ≈ ignorer les filtres / segments | Obtenir le total général (dénominateur d'un %) |
⚠️ Ce sont des analogies pour mieux visualiser : le DAX est plus puissant (il réagit au contexte des visuels), mais l'intuition Excel aide à démarrer.
Colonne calculée vs Mesure
La distinction la plus importante du DAX (+ concaténation &)📁 À importer : 02 - base-visuels-DAX0.xlsx (modules 1 à 3).
Importe 02 - base-visuels-DAX0.xlsx. Avant de calculer, il faut comprendre la différence entre une colonne calculée et une mesure.
| Colonne calculée | Mesure | |
|---|---|---|
| Contexte | Contexte de ligne (GLOBAL) — calcul ligne par ligne | Contexte de filtre (SYNTHÈSE) — calcul selon le visuel |
| Stockage | Ajoutée et stockée dans la table (alourdit le modèle) | Calculée à la volée, rien n'est stocké |
| Quand l'utiliser | Catégoriser une ligne, créer une clé, un libellé | Agréger : somme, moyenne, %, comptage… |
Règle d'or débutant : si tu veux agréger (somme, moyenne, total qui réagit aux filtres), crée une mesure. Si tu veux une valeur par ligne (un libellé, une catégorie), crée une colonne calculée.
Exemple — colonne calculée par concaténation (&)
Crée une colonne « Département » qui fusionne le nom et le numéro du département.
- Vue Données (icône table à gauche), ruban Outils de table › Nouvelle colonne.
- Ouvre le modèle de données en ligne (ou édite un rapport), sélectionne la table BaseVente → Nouvelle colonne.
- Saisis la formule DAX :
Département = [Nom département] & " " & [Numéro département]
L'opérateur & est l'équivalent DAX de la fonction CONCATENER() d'Excel : il colle deux textes. La colonne apparaît avec l'icône fx dans le volet Données.

SUM() — ta première mesure
Calculer le chiffre d'affaires total📁 Base : 02 - base-visuels-DAX0.xlsx (même fichier qu'au module 1).
Créer une mesure qui additionne le chiffre d'affaires : CA total.
- Ruban Outils de table › Nouvelle mesure.
- Dans le modèle de données en ligne (ou en éditant un rapport) : clic droit sur BaseVente → Nouvelle mesure.
- Saisis :
CA total = SUM ( BaseVente[Chiffre d'affaires] )
- Valide : la mesure apparaît dans le volet Données avec l'icône calculatrice 🧮.
- Pense à régler son format (€, séparateur de milliers) dans Outils de mesure › Format.
Syntaxe : une mesure s'écrit Nom = FONCTION( Table[Colonne] ). On référence toujours une colonne sous la forme Table[Colonne].
≈ En Excel : SUM(BaseVente[Chiffre d'affaires]) revient à =SOMME(B:B) — additionner toute une colonne. La différence : la mesure se recalcule selon ce que tu mets dans le visuel.
Une mesure n'affiche rien tant qu'elle n'est pas placée dans un visuel : elle est « en prévisualisation » dans le volet Données. C'est normal !
Depuis le service, tu peux ajouter des mesures DAX directement dans le navigateur : ouvre le modèle sémantique (semantic model) de ton espace de travail, ou édite le rapport et utilise Nouvelle mesure. La syntaxe DAX est exactement la même que dans Desktop.
Créer des visuels avec la mesure « CA total »
Histogramme, carte, segment et matrice📁 Base : 02 - base-visuels-DAX0.xlsx (suite du module 2).
Utilise la mesure CA total pour construire plusieurs visuels dans la vue Rapport.
- Histogramme pour comparer le CA par Département : Axe X = Département, Axe Y = CA total.
- Carte (123) pour afficher le CA total cumulé : glisse la mesure CA total dans un visuel « Carte ».
- Segment (filtre) pour lister les Villes : insère un visuel « Segment » et mets-y la colonne Ville. Il filtrera tous les autres visuels.
- Matrice (tableau croisé dynamique) pour résumer le CA par produit : Lignes = Produit, Valeurs = CA total.
Clique sur une ville dans le segment : tous les visuels se filtrent en même temps. C'est l'interactivité native de Power BI — aucune formule supplémentaire.

CALCULATE() — filtrer un calcul
La fonction la plus puissante du DAX📁 À importer : 02 - base-DAX1.xlsx (nouveau fichier, modules 4 à 6).
Nouveau fichier : 02 - base-DAX1.xlsx. Objectif : calculer le CA d'un seul produit avec CALCULATE().
CALCULATE calcule une expression en modifiant le contexte de filtre. Sa syntaxe :
CALCULATE ( <expression> , <filtre 1> , <filtre 2> … )
Exemple — le CA réalisé sur le produit « Jean » :
CA Jean =
CALCULATE (
SUM ( BaseVente[CA2020] ) , -- l'expression à calculer
BaseVente[Produit] = "Jean" -- le filtre appliqué
)
≈ En Excel : c'est l'idée de SOMME.SI.ENS() — additionner en ne gardant que les lignes qui respectent un critère. CALCULATE(SUM(...) ; Produit="Jean") ≈ =SOMME.SI.ENS(CA ; Produit ; "Jean").
Ici, peu importe ce que filtre le visuel, CALCULATE force le filtre « Produit = Jean ». C'est la clé pour comparer un élément précis au total.

Optimiser la Matrice (TCD) & les filtres valeurs
Nombre de commandes, CA, vente moyenne, % du CA par produit📁 Base : 02 - base-DAX1.xlsx (suite du module 4).
Pour chaque produit, afficher dans une matrice : le nombre de commandes, le chiffre d'affaires, la vente moyenne et le % du CA.
Les mesures à créer
Nb commandes = COUNTROWS ( BaseVente )
Vente moyenne = DIVIDE ( [CA total] , [Nb commandes] )
% CA =
DIVIDE (
[CA total] ,
CALCULATE ( [CA total] , ALL ( BaseVente[Produit] ) )
)
DIVIDE est préférable à l'opérateur / : il gère proprement la division par zéro (renvoie un blanc au lieu d'une erreur). ALL() retire le filtre produit pour obtenir le total général au dénominateur.
≈ En Excel : COUNTROWS ≈ NBVAL() · DIVIDE(a;b) ≈ =SIERREUR(a/b;0) · ALL() ≈ ignorer le filtre pour pointer le total général (comme une référence absolue au total).
Construire la matrice
- Insère un visuel Matrice. Lignes = Produit.
- Dans Valeurs : ajoute Nb commandes, CA total, Vente moyenne, % CA.
- Formate le % CA en pourcentage, et trie la matrice par CA décroissant.
Filtres de valeurs. Sur l'entête de la matrice, le bouton de filtre permet de n'afficher que les produits dont le CA dépasse un seuil (ex. « CA > 10 000 »).

SUMX() — calculer un profit ligne par ligne
Quand une simple somme ne suffit pas📁 Base : 02 - base-DAX1.xlsx (suite du module 5).
Calculer le profit de chaque produit : profit = chiffre d'affaires − coût.
SUM ne sait additionner qu'une seule colonne. Or ici on veut (CA − coût) pour chaque ligne, puis additionner. C'est le rôle de SUMX : une fonction itérative qui parcourt la table ligne par ligne.
Profit =
SUMX (
BaseVente , -- la table à parcourir
BaseVente[CA2020] - BaseVente[Coût] -- calcul effectué sur chaque ligne
)
≈ En Excel : SUMX(BaseVente ; CA − Coût) ressemble à SOMMEPROD() : on calcule un résultat ligne par ligne (CA − coût), puis on additionne le tout d'un coup.
Les fonctions « X » (SUMX, AVERAGEX, MINX…) prennent deux arguments : (1) une table à parcourir, (2) une expression évaluée pour chaque ligne. Le résultat de chaque ligne est ensuite agrégé (ici : additionné).
Ne calcule pas le profit en faisant SUM(CA) - SUM(Coût) si les quantités diffèrent par ligne : tu perdrais le détail. SUMX garantit le bon calcul ligne par ligne.
🎉 Compétence « DAX » terminée ! Tu maîtrises mesures, colonnes calculées, CALCULATE, la matrice et SUMX. La suite (DAX avancé) t'emmène vers l'analyse temporelle et les fonctions avancées.