Apprendre la fonction CALCULATE
À 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.
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.
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 :
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.
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.
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 ? »