Apprendre la fonction CALCULATE

Effectué

À la fin de cette unité, vous aurez une bonne compréhension de la façon dont la fonction CALCULATE constitue l’une des fonctions les plus polyvalentes de Power BI.

À un niveau élevé, vous contrôlez le contexte de ligne et de filtre. Avec la fonction CALCULATE, vous pouvez ajouter des filtres, les supprimer ou les mettre à jour. C’est beaucoup de puissance pour une seule fonction !

Ajouter un filtre avec CALCULATE

Premièrement, comment ajouter un filtre avec la fonction CALCULATE.

Table de données qui sera référencée lors de l’ajout d’un filtre avec la fonction CALCULATE.

Vous avez les ventes totales dans la table de données précédente :

Total Sales = SUM( [Sales Amount] )

Vous disposez également d’une version filtrée des ventes totales, où vous évaluez le total des ventes et appliquez un contexte de filtre d’avion :

Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )

Conseil

CORRÉLATION AVEC TABLEAU : L’extrait de code suivant montre comment effectuer le même calcul dans Tableau : Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END)

Ignorer un filtre avec CALCULATE

Ensuite, comment ignorer un filtre avec la fonction CALCULATE.

Table de données qui sera référencée lors de la non-utilisation d’un filtre avec la fonction CALCULATE.

Dans la table de données précédente, vous avez un total des ventes par État dans une colonne et le total des ventes pour toutes les géographies dans la colonne suivante. Cette colonne sera utile lorsque vous chercherez à effectuer une analyse sur le pourcentage du total pour chaque État (ou ligne).

La méthode la plus courante pour faire un pourcentage du total dans DAX est d’utiliser la fonction ALL.

Total Sales All Geo = CALCULATE( [Total Sales], ALL( Geography ) )

Dans le code ci-dessus, vous examinez la table Geography et incluez toutes ses valeurs. Vous ne réduisez pas le contexte de filtre.

Conseil

CORRÉLATION AVEC TABLEAU : L’extrait de code suivant montre comment effectuer le même calcul dans Tableau à l’aide de l’expression EXCLUDE LOD : Total Sales All Geo = { EXCLUDE [State], [City] : SUM([Total Sales]) }

Un autre exemple de filtre ignore ressemble à ceci :

Table de données qui sera référencée lors de la non-utilisation des filtres avec la fonction CALCULATE.

Dans le tableau précédent, vous avez un total des ventes par État, un total des ventes par géographie (avec tous les filtres géographiques exclus) et, enfin, vous avez le total des ventes par État, mais avec le filtre de ville toujours appliqué.

D’après l’image, la ville Alexandria existe dans plusieurs États. Par conséquent, vous souhaitez simplement rechercher les ventes totales des États qui ont Alexandria comme ville :

Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )

Conseil

CORRÉLATION AVEC TABLEAU : C’est comme cela que vous feriez le même calcul dans Tableau, à l’aide de l’expression EXCLUDE LOD. Vous noterez que cette expression LOD est différente de l’autre par sa granularité. Avec cette expression, vous voulez simplement exclure l’État de la vue au lieu d’exclure l’État et la ville : Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }

Mettre à jour un filtre avec CALCULATE

Enfin, la procédure pas à pas finale pour souligner l’utilité de la fonction CALCULATE consiste à mettre à jour un filtre.

Table de données qui sera référencée lors de la mise à jour d’un filtre avec la fonction CALCULATE.

Dans la table de données précédente, vous avez le total des ventes globales (en ignorant l’année), les ventes totales qui prennent le contexte de filtre appliqué par le segment dans le visuel, puis la dernière colonne avec le total des ventes pour l’année 2018.

Pour accéder à la colonne « 2018 Sales », vous devez écrire quelque chose de similaire à ceci :

2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )

Conseil

CORRÉLATION AVEC TABLEAU : Cet exemple est intéressant, car il ne semble pas exister de comparaison directe avec Tableau. Pour effectuer cela dans Tableau, vous devez dupliquer les champs, introduire des sources de données supplémentaires ou effectuer des calculs sur chaque colonne.

Tableau, actuellement non disponible. Power BI, contrôlez le contexte de filtre en mettant à jour le filtre avec la fonction CALCULATE.

Nous allons résumer ce que vous avez révisé dans cette unité CALCULATE :

  • Toute expression peut être placée en tant que premier argument.

  • L’expression examine tout le contexte de filtre sur la page (les segments de la visualisation).

  • Si des filtres sont présents, ils sont ajoutés.

  • S’il existe un filtre qui figure déjà dans la liste de filtres et qu’il est le même que le contexte de la page, il se substitue à ce dernier.

  • Après toutes ces nuances (indiquées ci-dessus), l’expression est évaluée.

Notes

Évidemment, ce n’est pas une opération que vous devez effectuer sans vérifier vos réponses pour bien comprendre l’ordre des opérations. Vous devez vous demander « Les filtres ont-ils été annulés ou non ? »