Power Pivot: Leçon de DAX no.2 (RELATED)

Publié le 24 septembre 2015 par Sopmar01 @mon_cher_watson

Cet article fait suite à l’article Power Pivot: Leçon de DAX no.1 (fonctions X). Il vise à démontrer comment utiliser les fonctions RELATED et RELATEDTABLE en langage DAX (Data Analysis Expression), soit le langage utilisé par Power Pivot.

DAX: Fonction RELATED

Il existe en fait deux types de fonctions RELATED en DAX. L’une s’exécute sur une colonne et l’autre sur une table.


RELATED(Column)

  • Cette fonction sert à récupérer des valeurs qui se trouvent dans d’autres tables du modèle de données, un peu comme le ferait un Vlookup (Recherchev) dans Excel. Toutefois, cette fonction est plus intéressante car elle n’exige pas que la table dans laquelle on recherche nos valeurs soit organisée d’une façon précise alors qu’avec un Vlookup (Recherchev), les valeurs recherchées doivent se trouver à gauche de la table.
  • Cette fonction suit des relations Many-to-One, à partir du côté Many vers le côté One et retourne des valeurs uniques.


RELATEDTABLE(Table)

  • Une fonction Vlookup (Recherchev) dans Excel renvoie seulement la première valeur trouvée alors que la valeur recherchée peut se trouver dans la table à plusieurs reprises.
  • La fonction RELATEDTABLE en DAX, quant à elle, retourne une table avec toutes les lignes comprenant les valeurs recherchées.
  • Elle doit donc être imbriquée dans une fonction d’aggrégation, comme une somme par exemple et dans ce sens, elle resemble davantage aux fonctions Sumif (Somme.si) et Sumifs (Somme.si.ens) d’Excel.
  •  La fonctino RELATEDTABLE suit des relations dans les deux sens, soit Many-to-One ou One-to-Many.

Modèle de données

Les exemples ci-bas sont basés sur le modèle de données suivant:

Un exemple de la fonction RELATED

Dans l’exemple suivant, on va chercher le taux coûtant pour chacun des #skus de la table de ventes. Ces #skus sont répartis en deux catégories, les #skus pour les Services et les #skus pour les Produits. Il existe donc une table pour les services, nommée SkusServices et une table pour les produits, nommée SkusProduits. Ci-bas, l’équation suivante permet d’aller chercher le taux coûtant de la table SkusServices et de l’additionner au taux coûtant de la table SkusProduits. Étant donné que chaque #skus correspond soit à un service ou soit à un produit, on aboutira donc avec le taux coûtant du #sku correspondant.

Cliquez sur l’image pour l’agrandir

Des exemples de la fonction RELATEDTABLE

La table ci-dessous est une table des catégories de produits et de services. Il est possible d’obtenir la somme des ventes par catégorie à l’aide de la fonction RELATEDTABLE, tel qu’illustré ci-bas. La fonction va donc lire dans la table Ventes et fait la somme des ventes pour chacune des catégories de la table de catégories. Elle fait ensuite une somme des valeurs de la table résultante, grâce à la fonction SUMX (fonction d’aggrégation). Pour savoir comment utiliser la fonction SUMX, je vous invite à relire l’article Power Pivot: Leçon de DAX no.1 (fonctions X).

L’exemple suivant utilise deux fonctions que nous n’avons pas encore présentées, soit les fonctions COUNTROWS et CALCULATE. Ces fonctions feront l’objet d’articles de blogue séparés. Pour le moment, sachez que la formule suivante doit être interprétée comme suit: Nombre de lignes (ou nombre de transactions) qui concernent le partenaire #1 dans la table de ventes, pour chacune des catégories de produits.

Cliquez sur l’image pour l’agrandir

Avez-vous des questions?

Si vous avez des questions, n’hésitez pas à les poser dans la zone de commentaires ci-bas.


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