CALCULATE() est certainement l’une des fonctions les plus puissantes et les plus utiles du langage DAX.
On peut la comparer à la fonction SUMIF() d’Excel, sans ses limitations.
Anatomie de la fonction :
=CALCULATE(<aggrégateur>, <filtre1>, <filtre2>, … )
Agrégateurs
SUM ([Colonne])
SUM ([Colonne1]) / MIN ([Colonne2])
MIN(),AVERAGE(),SUMX() …Ou une autre mesure définie [Mesure 1].
Filtres
Avec CALCULATE() nous pouvons non seulement réaliser n’importe quel calcul, mais nous pouvons appliquer autant de filtres que nous le souhaitons sur les données source !
Par exemple, créons une nouvelle mesure dans notre table ‘Gd livre’.
MesureExemple = CALCULATE(
SUM(‘Gd livre'[Solde]);’Gd livre'[C.j]= »ACH »;
‘Gd livre'[Racine]=607;
‘Gd livre'[Centre Analytique]= »Centre A »
)
Cette mesure calcule le total des soldes des écritures du journal des Achats, pour chaque compte dont la racine est 607, et uniquement pour le Centre analytique « Centre A ».