RELATED
S’applique à :Colonne calculéeTable calculéeMesureCalcul visuel
Retourne une valeur associée provenant d’une autre table.
Syntaxe
RELATED(<column>)
Paramètres
Terme | Définition |
---|---|
colonne | Colonne contenant les valeurs à récupérer. |
Valeur de retour
Valeur unique associée à la ligne actuelle.
Remarques
La fonction RELATED nécessite une relation entre la table actuelle et la table avec les informations associées. Vous spécifiez la colonne contenant les données désirées, et la fonction suit une relation plusieurs-à-un pour extraire la valeur de la colonne spécifiée dans la table associée. En l’absence de relation, vous devez en créer une.
Quand la fonction RELATED effectue une recherche, elle examine toutes les valeurs dans la table spécifiée, quels que soient les filtres qui ont pu être appliqués.
La fonction RELATED ayant besoin d’un contexte de ligne, elle peut uniquement être utilisée dans une expression de colonne calculée, où le contexte de ligne actuel n’est pas ambigu, ou comme fonction imbriquée dans une expression qui utilise une fonction d’analyse de table. Une fonction d’analyse de table telle que SUMX obtient la valeur de la ligne actuelle, puis analyse une autre table à la recherche d’instances de cette valeur.
La fonction RELATED ne peut pas être utilisée pour extraire une colonne dans une relation limitée.
Exemple
Dans l’exemple suivant, la mesure Ventes sur Internet hors États-Unis est créée pour produire un rapport de ventes excluant les ventes aux États-Unis. Pour créer la mesure, la table InternetSales_USD doit être filtrée pour exclure toutes les ventes appartenant aux États-Unis dans la table SalesTerritory. Les États-Unis, en tant que pays, apparaissent 5 fois dans la table SalesTerritory ; une fois pour chacune des régions suivantes : Nord-Ouest, Nord-Est, Centre, Sud-Ouest et Sud-Est.
Pour filtrer les ventes sur Internet et créer la mesure, une première approche peut être d’ajouter une expression de filtre, comme ceci :
FILTER('InternetSales_USD'
, 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5)
Cependant, cette approche n’est pas intuitive, est sujette aux erreurs de frappe et peut ne pas fonctionner si l’une des régions existantes est amenée à être divisée à l’avenir.
Une meilleure approche consiste à utiliser la relation existante entre InternetSales_USD et SalesTerritory et à déclarer explicitement que le pays doit être différent des États-Unis. Pour ce faire, créez une expression de filtre comme suit :
FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
Cette expression utilise la fonction RELATED pour rechercher la valeur du pays dans la table SalesTerritory, en commençant par la valeur de la colonne clé, SalesTerritoryKey, dans la table InternetSales_USD. Le résultat de la recherche est utilisé par la fonction Filter pour déterminer si la ligne InternetSales_USD est filtrée ou non.
Notes
Si l’exemple ne fonctionne pas, vous devrez peut-être créer une relation entre les tables.
= SUMX(FILTER( 'InternetSales_USD'
, RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States"
)
,'InternetSales_USD'[SalesAmount_USD])
La table suivante affiche uniquement les totaux de chaque région pour prouver que l’expression de filtre dans la mesure, Ventes sur Internet hors États-Unis, fonctionne comme prévu.
Row Labels | Internet Sales | Non USA Internet Sales |
---|---|---|
Australie | 4 999 021,84 $ | 4 999 021,84 $ |
Canada | 1,343,109.10 $ | 1,343,109.10 $ |
France | 2 490 944,57 $ | 2 490 944,57 $ |
Allemagne | 2 775 195,60 $ | 2 775 195,60 $ |
Royaume-Uni | 5 057 076,55 $ | 5 057 076,55 $ |
États-Unis | 9 389 479,79 $ | |
Total général | 26 054 827,45 $ | 16 665 347,67 $ |
La table suivante montre un exemple de résultat si vous utilisiez cette mesure dans un visuel de table de rapport :
Row Labels | Accessories | Bikes | Clothing | Grand Total |
---|---|---|---|---|
2005 | 1 526 481,95 $ | 1 526 481,95 $ | ||
2006 | 3 554 744,04 $ | 3 554 744,04 $ | ||
2007 | 156 480,18 $ | 5 640 106,05 $ | 70 142,77 $ | 5 866 729,00 $ |
2008 | 228 159,45 $ | 5 386 558,19 $ | 102 675,04 $ | 5 717 392,68 $ |
Total général | 384 639,63 $ | 16 107 890,23 $ | 172 817,81 $ | 16 665 347,67 $ |