DAX (mesures, CALCULATE)
DAX est le langage des mesures du modèle de données : une mesure se recalcule selon les filtres du TCD. CALCULATE en est la clé, car elle évalue une expression sous des filtres modifiés.
- DAX
- mesure
- CALCULATE
- contexte
- SUMX
Syntaxe
Mesure := CALCULATE(expression; filtre1; [filtre2; ...])Champs de tableau croisé dynamique : clic droit sur la table > Ajouter une mesureExemple
CA := SUM(Ventes[Montant])CA Nord := CALCULATE([CA]; Clients[Région]="Nord")Part du CA := DIVIDE([CA]; CALCULATE([CA]; ALL(Clients[Région])))CA N-1 := CALCULATE([CA]; SAMEPERIODLASTYEAR(Calendrier[Date]))→ dans un TCD par région, ligne Nord : CA 120 000 et Part du CA 48 % si le total vaut 250 000À retenir
- Les fonctions DAX ne sont jamais traduites : on écrit SUM, CALCULATE ou DIVIDE même dans un Excel en français. Seuls les séparateurs suivent les paramètres régionaux (point-virgule et virgule décimale en français).
- Piège : contexte de ligne et contexte de filtre ne se confondent pas. Une mesure n'a pas de ligne courante, donc Ventes[Quantité]*Ventes[Prix] y est refusé ; écrivez SUMX(Ventes; Ventes[Quantité]*Ventes[Prix]), qui parcourt la table ligne par ligne.
- Piège : CALCULATE remplace le filtre existant sur la colonne citée. CA Nord affiche donc le CA du Nord même sur la ligne Sud du TCD ; KEEPFILTERS combine les filtres au lieu de les remplacer.
- Préférez DIVIDE(a; b) à a/b : la fonction renvoie un vide au lieu d'une erreur quand le dénominateur vaut 0.
- Les fonctions d'intelligence temporelle (SAMEPERIODLASTYEAR, TOTALYTD) exigent une table Calendrier aux dates continues, marquée comme table de dates.
Voir aussi
- Power Pivot & modèle de donnéesPower Pivot charge plusieurs tables dans un modèle de données et les relie comme une base relationnelle. Un seul TCD croise alors ventes, clients et calendrier sans aucune RECHERCHEV.
- Champ calculéUn champ calculé ajoute au TCD une colonne issue d'une formule sur les champs existants, sans toucher à la source. Il affiche directement une marge, un taux ou un écart entre deux montants.
- Langage MLe langage M est le code que Power Query écrit pour chaque requête. Le lire permet de corriger une étape, de paramétrer un chemin ou d'écrire une transformation absente de l'interface.