USERELATIONSHIP
s’applique à :colonne calculéetable calculéeMeasurecalcul visuel
Spécifie la relation à utiliser dans un calcul spécifique comme celui qui existe entre columnName1 and columnName2.
Syntaxe
USERELATIONSHIP(<columnName1>,<columnName2>)
Paramètres
Terme | Définition |
---|---|
columnName1 |
Nom d’une colonne existante, à l’aide de la syntaxe standard DAXand qualifié complet, qui représente généralement le côté multiple de la relation à utiliser ; if les arguments sont donnés dans l’ordre inverse, la fonction les permutera avant de les utiliser. Cet argument ne peut pas être une expression. |
columnName2 |
Nom d’une colonne existante, à l’aide de la syntaxe standard DAXand complète, qui représente généralement le côté or recherche de la relation à utiliser ; if les arguments sont donnés dans l’ordre inverse, la fonction les permutera avant de les utiliser. Cet argument ne peut pas être une expression. |
Retourner value
La fonction ne retourne aucune value; la fonction active uniquement la relation indiquée pour l'duration du calcul.
Remarques
USERELATIONSHIP ne peut être utilisé que dans les fonctions qui prennent un filter en tant qu’argument, par exemple : CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD fonctions.
USERELATIONSHIP ne peut pas être utilisé lorsque la sécurité au niveau des lignes est définie pour la table dans laquelle le measure est inclus. Par exemple,
CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey]))
retourne une sécurité au niveau des lignes errorif est définie pour DimCustomer.USERELATIONSHIP utilise des relations existantes dans le modèle, identifiant les relations par leurs colonnes de point de terminaison.
Dans USERELATIONSHIP, l’état d’une relation est not important ; autrement dit, si la relation est active ornot n’affecte not l’utilisation de la fonction. Even if la relation est inactive, elle sera utilisée and remplace toutes les autres relations actives qui peuvent être présentes dans le modèle, mais not mentionnées dans les arguments de fonction.
Une error est retournée if toutes les colonnes nommées en tant qu’argument est not partie d’une relation or les arguments appartiennent à différentes relations.
If plusieurs relations sont nécessaires pour joindre la table A à la table B dans un calcul, chaque relation doit être indiquée dans une fonction USERELATIONSHIP différente.
If CALCULATE expressions sont imbriquées, and plusieurs expressions CALCULATEcontains une fonction USERELATIONSHIP, puis la USERELATIONSHIP la plus intérieure est celle qui prévaut en cas de conflit or ambiguïté.
Jusqu’à 10 fonctions USERELATIONSHIP peuvent être imbriquées ; Toutefois, votre expression peut avoir un niveau plus profond d’imbrication, c’est-à-dire. l’expression sample suivante est imbriquée à 3 niveaux profonds, mais seulement 2 pour USERELATIONSHIP:
=CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))
.Pour les relations 1 à 1, USERELATIONSHIP active uniquement la relation dans une direction. En particulier, filters pourra uniquement passer de table columnName2à columnName1's table. If filtrage croisé bidirectionnel est souhaité, deux OPTIONS USERELATIONSHIP avec direction opposée peuvent être utilisées dans le même calcul. Par exemple :
CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K]))
.
Exemple
L'sample suivant montre comment remplacer la relation par défaut, active et active entre les tables InternetSales and DateTime. La relation par défaut existe entre la colonne OrderDate, dans la table InternetSales, and la colonne Date, dans la table DateTime.
Pour calculate l'sum des ventes Internet and autoriser le découpage par ShippingDate au lieu de orderDate traditionnel, créez measure, [InternetSales par ShippingDate] à l’aide de l’expression suivante :
= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))
Les relations entre InternetSales[ShipmentDate] and DateTime[Date] doivent exister and doivent not être la relation active ; en outre, la relation entre InternetSales[OrderDate] and DateTime[Date] doit exister and doit être la relation active.