Comprendre les contextes d’évaluation en DAX

Qu’est-ce que le contexte de ligne en DAX ?
Qu’est-ce que le contexte de filtre en DAX ?

En DAX, le contexte de ligne et le contexte de filtre sont les contextes d’évaluation.

Les formules DAX sont toujours évaluées d’une part selon le contexte de filtre et d’autre part selon le contexte de ligne.

On a tendance à dire, par souci de simplification, que les colonnes calculées en DAX sont évaluées selon le contexte de ligne tandis que les mesures DAX sont évaluées selon le contexte de filtre.

Ceci est vrai, mais pas tout à fait précis. En réalité, une mesure peut très bien être évaluée à la fois selon le contexte de ligne et le contexte de filtre.
Par exemple, la fonction SUMX fait partie d’une famille de fonction appelée « itérateur« . Ces fonctions acceptent en général deux paramètres : une table et une expression DAX.
Les formules qui font appel à ce type de fonction sont évaluées en deux temps. D’abord selon le contexte de filtre du rapport, puis ensuite selon le contexte de ligne de la table qui est passée en argument.

Voir notre article La différence entre SUM et SUMX en DAX

Le contexte d’évaluation est le concept le plus important du langage DAX pour Power BI et Power Pivot pour Excel.

Une fois que vous maîtriserez les contextes d’évaluation, vous serez en mesure de créer des formules puissantes en langage DAX, et ainsi concevoir des tableaux de bord percutants dans Power BI.

Maîtriser le contexte de filtre vous aidera également à auditer et débugger des mesures DAX qui ne produisent pas les résultats attendus.

Les exemples valent mieux que 1000 mots. Je vous invite donc à découvrir ci-dessous une explication claire et détaillée du contexte de filtre en vidéo. Bon visionnage 😄

Vous souhaitez apprendre le langage DAX et Microsoft Power BI ? Découvrez nos formations Power BI en français sur https://formations.reportingsavvy.com/

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *