DAX Power BI pour débutants : 10 mesures indispensables (avec exemples)
Résumé rapideLe DAX ne sert pas à faire des calculs, il sert à faire des calculs qui réagissent aux filtres. Une même mesure affiche le total général sur une carte et le chiffre d’une agence dès qu’un filtre est appliqué.
|
Vous avez importé vos données dans Power BI, créé vos premiers visuels, et vous butez sur la même chose que tout le monde : afficher un chiffre d’affaires est simple, mais afficher une croissance par rapport à l’année précédente ou une part de marché par produit demande d’écrire du DAX.
La documentation officielle recense plus de 250 fonctions, ce qui décourage la plupart des débutants avant même le premier essai.
En réalité, une dizaine de mesures couvrent l’essentiel des besoins d’un tableau de bord commercial, financier ou RH. Voici lesquelles, avec la formule exacte et l’usage concret de chacune.
- Le DAX en clair : ce que vous manipulez vraiment
- Trois prérequis avant d’écrire votre première mesure
- Les 10 mesures DAX indispensables
- Récapitulatif : quelle mesure pour quel besoin
- Les erreurs de débutant qui faussent vos chiffres
- Ce que ça change dans une PME marocaine
- Conclusion
Le DAX en clair : ce que vous manipulez vraiment
DAX signifie Data Analysis Expressions. C’est le langage de formules de Power BI, également utilisé dans Power Pivot et Analysis Services. La syntaxe ressemble à celle d’Excel : SUM, AVERAGE, IF et DATE existent dans les deux univers.
Son principe clé : le contexte de filtre. Excel calcule généralement sur une plage de cellules définie. DAX, lui, adapte le résultat aux filtres du rapport. Une même mesure de chiffre d’affaires peut donc afficher le total national, puis celui d’une ville sélectionnée.
À retenir : DAX sert à créer des calculs dynamiques qui s’adaptent au contexte du rapport. Si vous débutez, commencez par construire votre premier tableau de bord Power BI avant d’écrire vos premières formules.
Mesure ou colonne calculée ?
Le choix dépend de ce que vous voulez calculer et de la façon dont le résultat doit évoluer.
Colonne calculée : elle est calculée ligne par ligne lors du rafraîchissement et stockée en mémoire. Utilisez-la pour créer un attribut fixe, comme une tranche d’âge, une catégorie ou une année.
Mesure : elle est calculée au moment où le visuel s’affiche et tient compte des filtres actifs. Elle convient aux indicateurs, ratios et évolutions, et peut être réutilisée dans tout le rapport.
Règle simple : pour un indicateur qui doit réagir aux filtres, privilégiez une mesure. Microsoft détaille ce fonctionnement dans son guide sur les mesures dans Power BI Desktop.
Trois prérequis avant d'écrire votre première mesure
Aucune formule ne rattrape un modèle bancal. Trois points doivent être réglés en amont.
- Un modèle en étoile. Vos tables de faits d’un côté, vos tables de dimensions de l’autre, chaque dimension reliée directement aux faits. Le modèle en étoile appliqué à Power BI est la structure sur laquelle le moteur de calcul est optimisé.
- Une table de dates dédiée. Sans elle, aucune comparaison annuelle ni aucun cumul ne fonctionne correctement. Créez-la avec CALENDAR ou importez-la, puis marquez-la comme table de dates dans Power BI.
- Des données propres. Doublons de clients, montants en texte, dates au mauvais format : ces défauts produisent des mesures fausses qui ont l’air justes. Une checklist de qualité des données évite de découvrir le problème en réunion de direction.
Les 10 mesures DAX indispensables
Les exemples s’appuient sur une table de faits Ventes, une table Dates et quelques tables de dimensions classiques : Agences, Produits, Clients et Factures. Adaptez les noms à votre modèle.
1. SUM : le chiffre d’affaires total
CA Total = SUM(Ventes[Montant HT])
La brique de base. Toutes les mesures suivantes s’appuient dessus plutôt que de répéter la somme, ce qui vous permet de corriger la définition du chiffre d’affaires à un seul endroit.
2. COUNTROWS : le volume d’activité
Nombre de lignes = COUNTROWS(Ventes)
Compte les lignes visibles après filtrage. Utile pour le nombre de transactions, de tickets ou de dossiers traités.
3. DISTINCTCOUNT : les clients réellement actifs
Clients actifs = DISTINCTCOUNT(Ventes[ID Client])
Compte les valeurs uniques. Un client qui a commandé douze fois compte pour un. C’est la mesure qui répond à « combien de clients avons-nous servi ce trimestre ».
4. AVERAGE : la moyenne d’une colonne
Délai moyen de règlement = AVERAGE(Factures[Délai en jours])
Moyenne arithmétique des lignes visibles. Sur un tableau de bord financier, cette mesure croisée avec le segment client montre immédiatement où le poste client dérape.
5. DIVIDE : le ratio sans message d’erreur
Panier moyen = DIVIDE([CA Total], [Nombre de lignes])
Utilisez DIVIDE plutôt que l’opérateur de division. Quand le dénominateur vaut zéro, la formule renvoie une valeur vide au lieu d’une erreur qui casse le visuel. C’est le réflexe qui distingue une mesure de production d’un brouillon.
6. CALCULATE : le calcul sous condition
CA Casablanca = CALCULATE([CA Total], Agences[Ville] = « Casablanca »)
La fonction la plus importante du langage. CALCULATE modifie le contexte de filtre : elle applique votre condition, puis exécute le calcul. Tout ce qui ressemble à « le chiffre d’affaires de tel segment, telle famille de produits, tel canal » passe par elle.
7. SAMEPERIODLASTYEAR : la comparaison avec N-1
CA N-1 = CALCULATE([CA Total], SAMEPERIODLASTYEAR(Dates[Date]))
Croissance % = DIVIDE([CA Total] – [CA N-1], [CA N-1])
Deux mesures qui vont ensemble. La première décale le contexte d’un an, la seconde calcule l’écart. Une table de dates marquée comme telle est obligatoire ici.
8. TOTALYTD : le cumul depuis janvier
CA cumulé = TOTALYTD([CA Total], Dates[Date])
Cumule les valeurs depuis le début de l’exercice jusqu’à la date affichée. Indispensable dès qu’un comité de direction suit une trajectoire budgétaire plutôt qu’un chiffre mensuel isolé.
9. ALL : la part dans le total
Part du CA = DIVIDE([CA Total], CALCULATE([CA Total], ALL(Produits)))
ALL ignore les filtres appliqués à une table. Le dénominateur reste donc le total général pendant que le numérateur suit le filtre du visuel. Vous obtenez le poids de chaque produit dans l’ensemble.
10. RANKX : le classement
Rang client = RANKX(ALL(Clients[Nom]), [CA Total], , DESC)
Attribue un rang à chaque ligne d’un visuel selon une mesure. Placée dans un tableau, elle transforme une liste de clients en classement lisible, sans passer par un tri manuel.
Ces dix mesures constituent le socle des cycles de formation en data et business intelligence proposés par HRMCO Partners, avant d’aborder les fonctions d’itération et l’optimisation des performances.
Récapitulatif : quelle mesure pour quel besoin
Besoin métier | Fonction | Exemple d’usage |
Additionner un montant | SUM | Chiffre d’affaires, masse salariale |
Compter des lignes | COUNTROWS | Transactions, tickets, dossiers |
Compter des valeurs uniques | DISTINCTCOUNT | Clients actifs, fournisseurs |
Calculer une moyenne | AVERAGE | Délai de règlement, note de satisfaction |
Diviser sans risque | DIVIDE | Panier moyen, taux de marge |
Filtrer un calcul | CALCULATE | CA par ville, par canal, par gamme |
Comparer à l’an dernier | SAMEPERIODLASTYEAR | Croissance annuelle |
Cumuler sur l’exercice | TOTALYTD | Suivi budgétaire |
Rapporter au total | ALL | Part de chaque produit |
Classer | RANKX | Top clients, top agences |
Les erreurs de débutant qui faussent vos chiffres
Quatre erreurs reviennent systématiquement.
- Créer une colonne calculée là où une mesure suffit. Le fichier gonfle, le rafraîchissement ralentit, et le calcul cesse de réagir aux filtres.
- Diviser avec l’opérateur /. Un dénominateur nul et le visuel affiche une erreur devant le comité de direction.
- Se passer d’une table de dates. Les fonctions temporelles renvoient alors des résultats incohérents, souvent sans message d’alerte.
- Empiler les filtres bidirectionnels pour faire fonctionner une mesure récalcitrante. Le symptôme disparaît, la cause reste, et les totaux deviennent ambigus.
Un dernier réflexe utile : nommez vos mesures en langage métier, pas en langage technique. « CA cumulé » se comprend par tout le monde, « SUM_MT_HT_YTD » ne se comprend que par vous.
Le vocabulaire du décisionnel est détaillé dans la définition de la business intelligence du glossaire HRMCO, utile à partager avec les équipes non techniques.
Ce que ça change dans une PME marocaine
Situation : une entreprise agroalimentaire à Casablanca, avec trois dépôts et une trentaine de commerciaux, consolide chaque mois les fichiers Excel reçus des dépôts. Le reporting arrive vers le 10 du mois suivant, trop tard pour agir.
Avec DAX : une source unique permet un reporting quotidien. CALCULATE analyse les dépôts, SAMEPERIODLASTYEAR compare les résultats à l’année précédente et RANKX classe les commerciaux.
Le vrai frein : pour les PME marocaines, le problème est souvent la compétence plutôt que l’outil. Power BI et Excel pour une PME marocaine montre que la transition peut se faire sans investissement lourd. Les fiches métiers du décisionnel illustrent les profils nécessaires pour transformer les données en indicateurs. Pour développer cette compétence, commencez par le DAX, puis validez les acquis avec la certification Data Analyst ou les cycles certifiants du catalogue.
Ce cas est représentatif d’une configuration fréquente dans l’agroalimentaire marocain, il ne renvoie pas à une entreprise nommée.
Conclusion
Le DAX ne s’apprend pas en mémorisant l’intégralité du catalogue de fonctions, mais en maîtrisant une dizaine de mesures et le mécanisme du contexte de filtre..
Ouvrez votre rapport actuel, remplacez vos agrégations automatiques par ces dix mesures nommées correctement, et vous aurez déjà un modèle plus fiable et plus rapide à faire évoluer.
FAQ — Questions Fréquentes
Une colonne calculée est stockée dans le fichier et calculée ligne par ligne au rafraîchissement. Une mesure est calculée au moment de l'affichage, selon les filtres actifs, et n'augmente pas la taille du fichier . Pour les indicateurs chiffrés, privilégiez toujours la mesure.
Non. Si vous êtes à l'aise avec les formules Excel, la syntaxe vous sera familière dès les premières heures. La difficulté ne vient pas du code mais de la compréhension du contexte de filtre, qui s'acquiert par la pratique sur un vrai jeu de données.
Quelques jours suffisent pour écrire des mesures simples et utiliser CALCULATE. L'autonomie réelle, celle qui permet de déboguer une mesure qui donne un résultat inattendu, demande plusieurs semaines de pratique régulière sur vos propres données.
Oui. Le même langage est utilisé dans Power Pivot, le moteur de modélisation intégré à Excel. Les mesures écrites dans Power Pivot se transposent dans Power BI avec très peu d'adaptation.