USERELATIONSHIP

Van toepassing op: Berekende kolomBerekende tabelMetingVisuele berekening

Hiermee geeft u de relatie op die moet worden gebruikt in een specifieke berekening als de relatie die bestaat tussen columnName1 en columnName2.

Syntaxis

USERELATIONSHIP(<columnName1>,<columnName2>)  

Parameters

Term Definitie
columnName1 De naam van een bestaande kolom, met behulp van de standaard DAX-syntaxis en volledig gekwalificeerde, die meestal de vele kant van de relatie vertegenwoordigt die moet worden gebruikt; als de argumenten in omgekeerde volgorde worden gegeven, wisselt de functie deze om voordat deze worden gebruikt. Dit argument kan geen expressie zijn.
columnName2 De naam van een bestaande kolom, met behulp van de standaard DAX-syntaxis en volledig gekwalificeerde, die meestal de ene zijde of opzoekzijde van de relatie vertegenwoordigt die moet worden gebruikt; als de argumenten in omgekeerde volgorde worden gegeven, wisselt de functie deze om voordat deze worden gebruikt. Dit argument kan geen expressie zijn.

Retourwaarde

De functie retourneert geen waarde; met de functie wordt alleen de aangegeven relatie ingeschakeld voor de duur van de berekening.

Opmerkingen

  • USERELATIONSHIP kan alleen worden gebruikt in functies die een filter als argument gebruiken, bijvoorbeeld: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD en TOTALYTD.

  • USERELATIONSHIP kan niet worden gebruikt wanneer beveiliging op rijniveau is gedefinieerd voor de tabel waarin de meting is opgenomen. Retourneert bijvoorbeeld CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) een fout als beveiliging op rijniveau is gedefinieerd voor DimCustomer.

  • USERELATIONSHIP maakt gebruik van bestaande relaties in het model, waarbij relaties worden geïdentificeerd door hun eindpuntkolommen.

  • In USERELATIONSHIP is de status van een relatie niet belangrijk; dat wil gezegd, of de relatie actief is of niet van invloed is op het gebruik van de functie. Zelfs als de relatie inactief is, wordt deze gebruikt en overschreven door andere actieve relaties die mogelijk aanwezig zijn in het model, maar niet vermeld in de functieargumenten.

  • Er wordt een fout geretourneerd als een van de kolommen met de naam van een argument geen deel uitmaakt van een relatie of als de argumenten deel uitmaken van verschillende relaties.

  • Als er meerdere relaties nodig zijn om tabel A toe te voegen aan tabel B in een berekening, moet elke relatie worden aangegeven in een andere functie USERELATIONSHIP.

  • Als CALCULATE-expressies zijn genest en meer dan één CALCULATE-expressie een functie USERELATIONSHIP bevat, is het binnenste USERELATIONSHIP degene die heerst in het geval van een conflict of dubbelzinnigheid.

  • Maximaal 10 USERELATIONSHIP-functies kunnen worden genest; uw expressie kan echter een dieper nestniveau hebben, bijvoorbeeld. de volgende voorbeeldexpressie is genest 3 niveaus diep, maar slechts 2 voor USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • Voor 1-op-1-relaties activeert USERELATIONSHIP alleen de relatie in één richting. Filters kunnen met name alleen stromen van de tabel van columnName2 naar de tabel columnName1. Als kruislings filteren in twee richtingen gewenst is, kunnen twee USERELATIONSHIPs met tegengestelde richting worden gebruikt in dezelfde berekening. Bijvoorbeeld: CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Opmerking

In het volgende voorbeeld ziet u hoe u de standaard-, actieve, relatie tussen InternetSales- en DateTime-tabellen overschrijft. De standaardrelatie bestaat tussen de kolom OrderDatum, in de tabel InternetSales en de kolom Date, in de tabel DateTime.

Als u de som van de internetverkoop wilt berekenen en segmentering door ShippingDate wilt toestaan in plaats van de traditionele OrderDate, maakt u meting [InternetSales by ShippingDate] met behulp van de volgende expressie:

= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))  

Relaties tussen InternetSales[ShipmentDate] en DateTime[Date] moeten bestaan en mogen niet de actieve relatie zijn; Ook moet de relatie tussen InternetSales[OrderDate] en DateTime[Date] bestaan en moet de actieve relatie zijn.