La fonction USERELATIONSHIP() en DAX (Data Analysis Expressions) est utilisée dans Power BI pour spécifier explicitement quelle relation doit être utilisée dans une mesure ou un calcul. Cela peut être particulièrement utile lorsqu’il existe plusieurs relations entre deux tables et que vous souhaitez utiliser une relation inactive au lieu de la relation active par défaut.
Syntaxe2
- <Table1Column> : Une colonne dans la première table de la relation.
- <Table2Column> : Une colonne dans la deuxième table de la relation.
Fonctionnement de la fonction USERELATIONSHIP:
- La fonction USERELATIONSHIP n’affecte pas les relations permanentes définies dans le modèle de données.
- Elle crée uniquement une relation temporaire qui est utilisée uniquement pour le calcul dans lequel elle est incluse.
- La relation temporaire est supprimée une fois que le calcul est terminé.
Exemple d’utilisation
Supposons que vous ayez deux tables, Sales et Dates, avec deux relations entre elles : une relation active basée sur la date de commande (OrderDate) et une relation inactive basée sur la date de livraison (ShipDate). Vous voulez créer une mesure qui utilise la date de livraison pour l’analyse.
Exemple de modèle de données
- Table Sales : OrderDate, ShipDate, SalesAmount
- Table Dates : Date
Étapes :
- Créer les relations entre Sales et Dates :
- Relation active entre Sales[OrderDate] et Dates[Date].
- Relation inactive entre Sales[ShipDate] et Dates[Date].
- Créer une mesure qui utilise la relation inactive.
Exemple de mesure
Explication
- SUM(Sales[SalesAmount]) : Somme des ventes.
- USERELATIONSHIP(Sales[ShipDate], Dates[Date]) : Utilise explicitement la relation basée sur ShipDate et Date.
Dans cet exemple, la mesure Total Sales by Ship Date calcule la somme des ventes en utilisant la date de livraison (ShipDate) au lieu de la date de commande (OrderDate). USERELATIONSHIP() permet d’activer temporairement la relation inactive pour ce calcul spécifique.
Remarques
- USERELATIONSHIP() ne peut être utilisé que dans le contexte d’une fonction de filtre, comme CALCULATE ou CALCULATETABLE.
- Il est important d’avoir déjà défini les relations dans votre modèle de données avant d’utiliser USERELATIONSHIP().
En résumé, USERELATIONSHIP() est une fonction puissante pour gérer des scénarios où plusieurs relations existent entre les tables, permettant une flexibilité accrue dans les analyses et les visualisations de données dans Power BI.