Power Pivot: Leçon de DAX no.5 (CALCULATE)

Publié le 29 octobre 2015 par Sopmar01 @mon_cher_watson

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.

Apprendre le langage DAX vous intéresse?

Si vous commencez à utiliser Power Pivot ou Power BI Desktop, vous serez sans doute intéressé à apprendre le langage DAX. Si c’est votre cas, svp, nous le mentionner dans la zone de commentaires ci-bas, Nous évaluerons ensuite le niveau d’intérêt pour une formation axée sur le langage DAX.


NOTRE OFFRE DE FORMATIONS


Le CFO masqué vous offre 13 formations, réparties dans 4 catégories: Tableaux de bord, Modélisation financière, Finance corporative et Analyse et modélisation de données. Ces formations sont offertes en classe, en entreprise et en ligne. Nos formateurs sont des experts dans leur domaine et sont accrédités par Emploi-Québec et vous remettent un certificat, à la fin de chaque formation, que vous pouvez notamment utiliser pour faire reconnaître des heures de formation continue auprès de votre ordre professionnel.

Consulter la liste des formations offertes

Pour info: 514-605-7112 ou info@lecfomasque.com