Cet article fait suite aux articles Power Pivot: Leçon de DAX no.1 (fonctions X), Power Pivot: Leçon de DAX no.2 (RELATED), Power Pivot: Leçon de DAX no.3 (COUNTROWS) et Power Pivot: Leçon de DAX no.4 (FILTER/DISCTINCT). Il vise à démontrer comment utiliser la fonction CALCULATE en langage DAX (Data Analysis Expression), soit le langage utilisé par Power Pivot et par Power BI Desktop. Vous verrez au fil de ces chroniques, que la fonction CALCULATE sera très souvent utilisée, en combinaison avec d’autres fonctions DAX, dans des contextes souvent plus complexes. Toutefois, l’article d’aujourd’hui introduit simplement les principes de base de la fonction CALCULATE.
Définition de la fonction CALCULATE
Calculate (Expression, Filter1, Filter2, …)
La fonction CALCULATE permet d’évaluer n’importe quelle fonction DAX dans un contexte de filtres particulier. On définit simplement une mesure et on spécifie ensuite les filtres qui doivent être appliqués à cette mesure.
La fonction CALCULATE fait, plus précisément, ce qui suit:
- Modifie le contexte de filtres en utilisant des filtres placés comme arguments dans la fonction;
- Si placée dans un contexte de lignes, déplace le contexte de lignes en contexte de filtres;
- Évalue l’expression dans le nouveau contexte modifié.
Quelques exemples de filtres utilisés dans une fonction CALCULATE:
- DimChannel[ChannelName]=”Store”
- DimGeography[CityName]=”Seattle” || DimGeography[CityName]=”Portland”
Quelques exemples d’application concrets
Dans l’article Power Pivot: Leçon de DAX no.3 (COUNTROWS), nous avons vu comment utiliser la fonction DAX COUNTROWS. Dans le premier exemple, ci-bas, nous l’utilisons notamment pour calculer le nombre de transactions total dans la table de ventes et le résultat est inscrit dans une colonne de la table Catégories. Ainsi, pour chaque catégorie, nous obtenons un nombre de 13,341 transactions. Ce chiffre est stable puisqu’il représente le nombre de transactions total, sans égard aux catégories, dans la table de ventes. Dans le deuxième exemple ci-bas, nous affichons plutôt le nombre de transactions par catégorie, par le biais de la fonction CALCULATE. Nous déplaçons ainsi le contexte de lignes en contexte de filtres.
Dans l’exemple suivant, nous utilisons la fonction CALCULATE pour calculer les ventes en ligne, soit les ventes du canal #1. Nous aurions également pu écrire cette fonction de la façon suivante: CALCULATE(SUM([Ventes]Ventes),Canaux[# canal]=1), mais nous avions déjà défini [VentesConso] comme étant SUM([Ventes]Ventes).
Dans l’exemple suivant, nous vous rappelons qu’il est également possible d’utiliser la fonction SUMX combinée avec la fonction FILTER pour trouver les ventes en ligne. Vous pouvez revoir la fonction FILTER dans l’article suivant Power Pivot: Leçon de DAX no.4 (FILTER/DISCTINCT).
En effet, quand nous comparons les deux fonctions, nous voyons qu’elles fournissent les mêmes résultats.
Évidemment, il est aussi possible d’utiliser plus d’un filtre dans une fonction CALCULATE. Par exemple, ci-bas, nous effectuons la somme des ventes pour le client 21,dans le canal 1, i.e. les ventes en ligne. Nous utilisons donc deux filtres.
Vous avez des sources de données volumineuses à rassembler et analyser dans Excel ? Apprenez à automatiser tout le processus d’importation, de transformation et de modélisation  des données avec nos formations sur Power Query et Power Pivot dans Excel. |
---|
Power Pivot: Leçons de DAX: Suite
Power Pivot: Leçon de DAX no.6 (ALL)
Power Pivot: Leçon de DAX no.7 (ALLEXCEPT)
Power Pivot: Leçon de DAX no.8 (ALLSELECTED)
Fichier d’accompagnement VIP à télécharger
Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.
Formation complémentaire
Pour une introduction au langage DAX, utilisé par Power Pivot et par Power BI Desktop, qui permet de créer des tableaux de bord flexibles et faciles à mettre à jour en plus de créer des visualisations de données évoluées et pertinentes, suivez la formation Introduction au langage DAX (Power BI et Power Pivot).
Voici quelques commentaires d’apprenants ayant suivi cette formation :
bonjour
une formation axée sur DAX débutant m’intéresserait vivement
merci
Bonjour,
Une formation débutant m’intéresserait également !
Merci
Bonjour,
Nous offrons une formation d’introduction au langage DAX ici https://www.lecfomasque.com/formations/formations-en-entreprise/introduction-au-langage-dax/.
Vous pouvez la suivre en ligne.
Au plaisir,
Sophie
Bonjour,
une formation débutant axé sur le langage DAX m’intéressait
En vous remerciant
Bonjour,
Nous offrons la formation en ligne suivante: https://www.lecfomasque.com/cours/introduction-au-langage-dax-power-bi-et-power-pivot/.
Au plaisir,
Sophie