cours
Tutoriel Power BI Calculate
La fonction CALCULATE()
est sans doute l'une des fonctions DAX les plus importantes (et les plus populaires) de Power BI. Facile à utiliser et extrêmement polyvalent, il vous permet d'étendre vos analyses de données et de développer des rapports Power BI encore plus précieux.
Ce tutoriel se concentre sur ce qu'est la fonction CALCULATE()
et comment l'utiliser et suppose que vous êtes déjà familier avec les bases de Power BI et DAX.
Qu'est-ce que la fonction Power BI Calculate() ?
Selon la documentation de Microsoft Power BI, la fonction CALCULATE()
fait partie de la catégorie des fonctions de filtrage et est définie comme "l'évaluation d'une expression dans un contexte de filtrage modifié." Une expression est essentiellement une mesure et comprend des fonctions telles que SUM()
, AVERAGE()
, et COUNT()
. Cette expression est évaluée dans le contexte d'un ou plusieurs filtres.
Comme vous le savez peut-être, il est également possible d'appliquer des filtres à un rapport Power BI en ajoutant simplement des slicers sans créer de mesure à l'aide de la fonction CALCULATE()
. Cependant, il existe de nombreux cas d'utilisation où la fonction CALCULATE()
est plus appropriée. Il est particulièrement utile de l'utiliser comme composant d'une autre fonction. Nous verrons comment cela fonctionne dans l'exemple ci-dessous pour calculer le pourcentage d'un total.
Syntaxe de base de DAX Calculate()
La syntaxe DAX de base de la fonction CALCULATE()
est la suivante :
CALCULATE( <expression> [, <filter1> [, <filter2> [, ...]]])
La fonction CALCULATE()
se compose de deux éléments clés :
-
L'expression - il s'agit de la composante d'agrégation qui est construite comme une mesure à l'aide de fonctions telles que
SUM()
,AVERAGE()
etCOUNT()
. -
Les filtres - ce composant vous permet de spécifier un ou plusieurs filtres qui contrôlent le contexte de l'agrégation.
Trois types de filtres peuvent être utilisés dans la fonction CALCULATE()
:
-
Expressions booléennes de filtrage - il s'agit d'un filtre simple dont le résultat doit être soit
TRUE
, soitFALSE
. -
Expressions de filtre de tableau - il s'agit d'un filtre plus complexe dont le résultat est un tableau.
-
Fonctions de modification des filtres - les filtres tels que
ALL
etKEEPFILTERS
entrent dans cette catégorie et permettent de mieux contrôler le contexte de filtrage que vous souhaitez appliquer.
Vous pouvez ajouter plusieurs filtres à la composante filtre de la fonction CALCULATE()
en séparant chaque filtre par une virgule. Tous les filtres sont évalués ensemble et leur ordre n'a pas d'importance.
Vous pouvez contrôler la manière dont les filtres sont évalués en utilisant des opérateurs logiques. Si vous souhaitez que toutes les conditions soient évaluées comme TRUE
, vous pouvez utiliser AND
(&&
). C'est également le comportement par défaut des filtres, comme indiqué ci-dessus. Par ailleurs, avec l'opérateur OR
(||
), au moins une condition doit être évaluée comme TRUE
pour qu'un résultat soit renvoyé.
Maîtriser Power BI de A à Z
Comment utiliser Power BI Calculate()
Pour utiliser CALCULATE()
, il suffit d'ajouter une mesure à votre tableau. Vous pouvez le faire en accédant à l'onglet Modélisation du ruban et en sélectionnant Nouvelle mesure.
Sélectionnez Nouvelle mesure dans l'onglet Modélisation de Power BI. Image par l'auteur
Vous trouverez ci-dessous un exemple simple de la fonction CALCULATE()
utilisant SUM()
pour trouver le revenu total et filtrant pour Country = United Kingdom
. Nous reviendrons sur cet exemple plus en détail à la fin du tutoriel.
UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
'Online Retail'[Country] = "United Kingdom")
Si l'on examine le tableau, on constate que la mesure du revenu britannique applique simplement un filtre pour le pays en plus du contexte de filtrage déjà présent dans le tableau pour le mois. L'utilisation de la fonction CALCULATE()
de cette manière nous permet de contrôler plus finement le type d'informations affichées dans notre visuel.
Tableau des recettes dans Power BI. Image par l'auteur
Une chose importante à garder à l'esprit lors de la création de mesures est de suivre de bonnes pratiques de modélisation des données, notamment en termes de rapidité et d'optimisation de vos requêtes. C'est pourquoi certaines utilisations de la fonction CALCULATE()
sont plus rapides ou plus appropriées que d'autres.
Par exemple, la documentation Microsoft recommande d'éviter d'utiliser la fonction FILTER()
comme argument d'autres fonctions (comme la fonction CALCULATE()
). Il est préférable d'utiliser des expressions booléennes dans la mesure du possible, car elles sont explicitement optimisées à cette fin.
Dans l'exemple ci-dessus, nous avons utilisé une expression booléenne pour définir notre filtre pour Country = United Kingdom
. Il s'agit d'une approche plus rapide et plus optimisée. En revanche, voici un exemple de la fonction FILTER()
où l'on obtient le même résultat, mais où le calcul est plus lent :
UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
FILTER('Online Retail',
'Online Retail'[Country] = "United Kingdom")
Exemples de la fonction Calculate() de Power BI
À l'aide d'un ensemble de données réelles sur le commerce électronique, nous explorerons quelques façons d'utiliser la fonction CALCULATE()
pour résoudre des problèmes commerciaux. Pour suivre ce tutoriel, vous pouvez accéder à l'ensemble de données sur le commerce électronique hébergé sur DataLab.
Cet ensemble de données contient des informations sur chaque achat effectué par un client : le pays d'achat, la description du produit, la date et l'heure de l'achat, ainsi que la quantité et le prix de chaque produit acheté.
Nous allons répondre aux questions suivantes à l'aide de la fonction CALCULATE()
:
- Comment le revenu mensuel total au Royaume-Uni se compare-t-il à celui de tous les autres pays ?
- Quel est le pourcentage du revenu total provenant du Royaume-Uni ?
- Quel est le revenu journalier cumulé ?
Comment le revenu mensuel total au Royaume-Uni se compare-t-il à celui de tous les autres pays ?
Pour répondre à cette question, nous devons créer deux mesures à l'aide de la fonction CALCULATE()
. Tout d'abord, nous utilisons un simple filtre booléen pour créer une mesure qui renvoie le revenu total (à l'aide d'une fonction SUM()
) au Royaume-Uni :
UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
'Online Retail'[Country] = "United Kingdom")
Ensuite, nous créons une mesure similaire, mais cette fois-ci en utilisant la fonction FILTER()
. Cette expression de filtrage parcourt chaque ligne de la colonne Pays et renvoie un tableau contenant les lignes qui correspondent à la condition de filtrage. La fonction FILTER()
est nécessaire ici parce que nous ne sommes pas en mesure de renvoyer un simple TRUE
ou FALSE
à partir du filtre. Au lieu de cela, nous obtenons un tableau avec plusieurs valeurs.
Non-UK Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
FILTER('Online Retail',
'Online Retail'[Country] <>"United Kingdom")
Nous pouvons donc constater que le Royaume-Uni représente la majorité des revenus de ce magasin de commerce électronique par rapport à tous les autres pays.
Graphique linéaire Power BI montrant les revenus mensuels. Image par l'auteur.
Quel est le pourcentage des recettes totales provenant du Royaume-Uni ?
Il s'agit d'un type de question très courant auquel sont confrontés les développeurs et les utilisateurs de Power BI, et c'est un cas parfait pour appliquer la fonction CALCULATE()
.
Pour trouver le pourcentage d'un total, nous devons d'abord être en mesure de renvoyer le total sans qu'il soit affecté par d'autres contextes de filtrage dans le rapport. Pour ce faire, nous utilisons un modificateur de filtre connu sous le nom de fonction ALL()
. Cette fonction permet de spécifier la colonne pour laquelle le calcul doit ignorer complètement les filtres.
Dans cet exemple, nous recherchons le pourcentage du chiffre d'affaires total réalisé au Royaume-Uni. Cela signifie que notre calcul doit ignorer tout filtre dans la colonne Pays.
Total Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
ALL('Online Retail'[Country]))
Ceci est important car CALCULATE()
peut être exécuté à l'intérieur d'un contexte de filtrage qui filtre déjà Product[Color]
. Dans ce scénario, la présence de ALL signifie que le filtre extérieur sur Product[Color]
est ignoré et remplacé par le nouveau filtre introduit par CALCULATE()
. Ceci est évident si, au lieu de découper par marque, nous découpons par couleur dans la matrice.
Maintenant que nous connaissons notre revenu total, nous pouvons construire une mesure indiquant le pourcentage du revenu total. Toutefois, comme nous nous intéressons spécifiquement au Royaume-Uni, nous utiliserons à nouveau la fonction CALCULATE
, mais cette fois, nous utiliserons un simple filtre booléen.()
UK % of Revenue = CALCULATE(SUM('Online Retail'[Revenue])/[Total Revenue],
'Online Retail'[Country] = "United Kingdom")
Nous constatons que le Royaume-Uni représente 84 % du chiffre d'affaires total de ce magasin de commerce électronique.
Calculer un pourcentage dans Power BI. Image par l'auteur
Quel est le revenu journalier cumulé ?
Les recettes cumulées peuvent donner une idée de l'évolution des recettes. En représentant ce revenu cumulé sur un graphique, nous pouvons également voir visuellement si le revenu a augmenté plus rapidement ou non au fil du temps.
Pour répondre à cette question, nous devons créer une mesure à l'aide de la fonction CALCULATE()
ainsi que les fonctions de filtrage suivantes : ALLSELECTED()
, FILTER()
, et une évaluation à l'aide de la fonction MAX()
.
Cumulative Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
FILTER( ALLSELECTED('Online Retail'[InvoiceDate]),
'Online Retail'[InvoiceDate] <= MAX('Online Retail'[InvoiceDate])))
Voyons pourquoi ces filtres sont importants :
-
La fonction
FILTER()
permet d'évaluer chacun des deux filtres spécifiés, ligne par ligne, et renvoie un tableau dans les cas où il y a une correspondance. -
La fonction
ALLSELECTED()
réinitialise le filtre sur InvoiceDate dans la requête en cours (dans le résultat ci-dessous, la requête en cours est le graphique linéaire) tout en autorisant les filtres externes (tels que ceux des slicers). -
La fonction
MAX()
est utilisée dans le cadre d'une évaluation - nous voulons additionner les revenus pour toutes les dates qui sont inférieures ou égales à la date actuelle de la requête.
Calcul du chiffre d'affaires par date dans Power BI. Image par l'auteur.
Remarques finales
Dans ce tutoriel, nous avons vu ce qu'est la fonction CALCULATE()
dans Power BI et comment l'utiliser. Nous avons également appliqué la fonction CALCULATE()
à un ensemble de données réelles sur le commerce électronique et l'avons utilisée pour répondre à des questions commerciales clés.
CALCULATE()
est l'une des fonctions les plus utiles de Power BI et vous aurez probablement besoin de l'utiliser fréquemment lors de l'élaboration de rapports et de la génération d'informations plus approfondies sur vos données.
Nous espérons que ce tutoriel vous aidera non seulement à comprendre la syntaxe de base de CALCULATE()
, mais aussi à comprendre comment elle est liée à la résolution de problèmes commerciaux réels en tant qu'analyste de données Power BI.
Devenez un analyste de données Power BI
Maîtrisez l'outil de veille stratégique le plus populaire au monde.
Cours pour Power BI
cours
Introduction à DAX dans Power BI
cours