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 et par Power BI Desktop.
DAX : Fonctions RELATED et RELATEDTABLE
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 fonction RELATEDTABLE suit des relations dans les deux sens, soit Many-to-One ou One-to-Many.
Modèle de données pour illustrer nos fonctions RELATED et RELATEDTABLE
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
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. |
---|
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
Power Pivot: Leçons de DAX: Suite
Power Pivot: Leçon de DAX no.3 (COUNTROWS)
Power Pivot: Leçon de DAX no.4 (FILTER/DISTINCT)
Power Pivot: Leçon de DAX no.5 (CALCULATE)
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,
Si je comprends bien c’est l’équivalent de la fonction somme.si.ens en vba. Par un heureux hasard, avez vous la même chose en vba? Si oui je suis preneur. Et encore merci pour vos tutoriels qui sont vraiment bien fait.