Mesures explicites dans Power BI
Définition et rôle des mesures DAX
Une mesure DAX dans Power BI est une expression calculée, évaluée en fonction du contexte d’analyse (lignes, filtres, hiérarchie…).Elles servent à effectuer des calculs dynamiques sur les données d’un modèle (sommes, moyennes, ratios, agrégats complexes, etc.), qui s’adapte aux interactions de l’utilisateur (filtres, segment, exploration…).
Syntaxe générale :
Nom de la mesure = Formule DAX
Montant vente = SUM(Vente[Montant])Pourquoi créer des mesures explicites ?
| Point | Mesure implicite | Mesure explicite |
| Définition | Créée automatiquement via l’interface (ex. glisser-déposer un champ numérique dans une visuel, par exemple Somme de Montant) | Définie par l’utilisateur via le langage DAX |
| Réutilisation | Limitée à un visuel - peut être renommé dans le seul visuel | Réutilisable dans tous les visuels du rapport - renommé dans tout le rapport |
| Gestion du contexte | Moins flexible, peu paramétrable | Très flexible (gestion fine des filtres, du contexte, etc.), avec par exemple la fonction FILTER. |
| Performances | Calcul à la volée, moins optimisé | Souvent mieux optimisé et contrôlé |
| Documentation | Non documentée, pas nommée | Nommée, explicite, commentable |
| Organisation | Aucune (limitée au visuel) | Peuvent être regroupées dans une table de mesures (Accueil > Entrer des données) |
| Renommage |
Pourquoi privilégier les mesures explicites ?
- Ré-utilisabilité : une mesure explicite peut être utilisée dans plusieurs visuels, tableaux croisés, KPI, etc.
- Maîtrise du calcul : le développeur maîtrise la logique métier, le contexte d’évaluation et les éventuelles exceptions.
- Lisibilité : une mesure explicite porte un nom significatif et peut être commentée (Montant vente est plus claire que Somme de Montant).
- Gestion du modèle : indispensable pour la maintenance, la collaboration et l’évolution du modèle.
- Fonctionnalités avancées : seules les mesures explicites peuvent servir d’argument à des fonctions avancées (CALCULATE, FILTER, etc.).
Exemples courants de mesures DAX
| But | Formule DAX | Explications |
| Total des ventes | Total Ventes = SUM('Ventes'[Montant]) | Somme d’une colonne numérique |
| Nombre de ventes | Nb Ventes = COUNTROWS('Ventes') | Nombre de lignes dans une table |
| Moyenne par client | Moyenne/Client = AVERAGEX(VALUES('Clients'[ClientID]), [Total Ventes]) | Moyenne des ventes par client |
| Taux de croissance N/N-1 | Taux Croissance = ([Total Ventes] - [Total Ventes N-1]) / [Total Ventes N-1] | Comparaison entre deux périodes |
| Total avec filtre | Ventes France = CALCULATE([Total Ventes], 'Clients'[Pays] = "France") | Calcul sous condition |
4. Bonnes pratiques
- Toujours créer les calculs via des mesures explicites (même pour les sommes simples).
- Donner des noms clairs et explicites.
- Documenter les mesures complexes avec des commentaires dans le code DAX et via le volet Données
- Structurer les mesures par dossier dans Power BI (utiliser Afficher le dossier pour les regrouper par thématique).
- Valider les résultats avec des échantillons et des cas test.
Quelques fonctions DAX fréquemment utilisées
- SUM()
- COUNTROWS()
- CALCULATE()
- FILTER()
- ALL()
- DIVIDE()
- DATESYTD(), SAMEPERIODLASTYEAR()
Créer une mesure simple
- Clic droit sur une table > Nouvelle mesure
- Saisir une formule comme :
Montant vente = SUM(Vente[Montant])Créer une table de mesures dans Power BI Desktop
- Accueil > Entrer des données.
- Donner un nom à la table, par exemple Mesures (ou Calculs) et cliquer sur Charger.
- En Vue de modèle, dans le volet Données, faites glisser au moins une mesure dans la table Mesures.
- Supprimer Colonne 1 de la table Mesures.La table se place en première position et l’icône est en forme de calculatrices.
Méthode alternative :
- Créer une table DAX (Modélisation > Nouvelle table) , avec comme seule ligne de code : Mesures ={1} . Une table avec un champ Value est créée dans le modèle.
- Faire glisser au moins une mesure (ou créer une mesure directement dans la table)
- Masquer le champ Value.
Avec cette version, l’icône de la table ne change pas.