Fonction CALCULATE DAX : la base pour construire vos mesures Power BI

La fonction CALCULATE en DAX est la fonction la plus importante à comprendre pour construire des mesures Power BI, parce que c’est elle qui permet de modifier le contexte de filtre dans lequel un calcul s’exécute. Une fois qu’on la maîtrise, on peut construire à peu près n’importe quel indicateur financier : une part de marché, une variation, un cumul, un pourcentage du total.

Le principe : modifier le contexte de filtre

Une mesure DAX classique comme SUM(Ventes[Montant]) respecte automatiquement les filtres déjà appliqués dans le tableau croisé ou le visuel (l’année sélectionnée, la filiale, etc.). CALCULATE permet d’aller plus loin : elle recalcule une expression en ajoutant, en remplaçant ou en retirant un ou plusieurs filtres, indépendamment de ce qui est sélectionné à l’écran. C’est ce qui permet, par exemple, d’afficher « les ventes de l’année dernière » à côté des ventes de l’année en cours, même si le TCD est filtré sur l’année en cours.

La syntaxe de CALCULATE

CALCULATE(<expression>, <filtre1>, <filtre2>, ...)

Le premier argument est le calcul à effectuer (le plus souvent une agrégation comme SUM ou une autre mesure). Les arguments suivants sont des filtres, qui remplacent tout filtre existant sur la même colonne. C’est ce comportement de « remplacement » qui surprend le plus au début : si le TCD est filtré sur l’année 2026 et qu’on ajoute un filtre CALCULATE sur l’année 2025 pour la même colonne, c’est bien 2025 qui l’emporte.

Un échange gratuit pour évaluer vos besoins

Envie de structurer votre reporting financier avec Excel et Power BI ? Parlons-en ensemble, sans engagement.

20 minutesSans engagement100% personnalisé
Réserver un call

Un exemple financier concret

Pour calculer le chiffre d’affaires réalisé uniquement sur la zone France, quel que soit le filtre pays déjà appliqué ailleurs dans le rapport :

CA France = CALCULATE(SUM(Ventes[Montant]), Ventes[Pays] = "France")

Autre exemple très utile autre que la fonction calculate dax en reporting financier : calculer un total général qui ignore tous les filtres de la ligne ou colonne en cours, pour ensuite calculer une part en pourcentage (par exemple, le poids d’une filiale dans le chiffre d’affaires total du groupe) :

CA Total Groupe = CALCULATE(SUM(Ventes[Montant]), ALL(Ventes))

Part du CA = DIVIDE([Total Ventes], [CA Total Groupe])

Ici, ALL(Ventes) supprime tous les filtres sur la table Ventes, ce qui permet d’obtenir un total global à comparer au sous-total filtré.

Les erreurs fréquentes

  • Confondre filtre et valeur booléenne : le deuxième argument de CALCULATE attend une condition sur une colonne (Ventes[Pays] = "France"), pas une table déjà filtrée à la main.
  • Oublier que CALCULATE remplace, pas additionne : un filtre CALCULATE sur une colonne écrase le filtre existant sur cette même colonne, il ne s’y ajoute pas.
  • Utiliser ALL sans précaution : ALL(Table) retire tous les filtres de la table entière, alors que ALL(Table[Colonne]) ne retire le filtre que sur cette colonne précise — une nuance importante pour ne pas fausser un calcul.

CALCULATE est le socle sur lequel reposent la plupart des fonctions dites de « Time Intelligence » (comparaison N/N-1, cumul depuis le début de l’année), qu’on détaille dans les prochains articles.

Aller plus loin

Maîtriser CALCULATE ouvre la porte à des indicateurs financiers bien plus riches qu’un simple total. Si vous voulez construire un reporting complet avec des mesures DAX fiables, la formation ci-dessous est faite pour ça.

Créer son reporting financier avec Power BI

Une formation pratique pour maîtriser DAX et Power Query de A à Z : retraitement des balances, mesures DAX fiables, P&L dynamique, bilan, TFT.

Cas pratiques réelsÀ ton rythmePour comptables & financiers
En savoir plus

Catégories