Freigeben über


USERELATIONSHIP-Funktion (DAX)

Gibt die Beziehung an, die in einer bestimmten Berechnung als Beziehung zwischen columnName1 und columnName2 verwendet werden soll.

Syntax

USERELATIONSHIP(<columnName1>,<columnName2>)

Parameter

  • columnName1
    Der vollqualifizierte Name einer vorhandenen Spalte mit Standard-DAX-Syntax, die normalerweise die n-Seite der zu verwendenden Beziehung darstellt. Wenn die Argumente in umgekehrter Reihenfolge angegeben werden, werden sie von der Funktion vor der Verwendung vertauscht. Dieses Argument kann kein Ausdruck sein.

  • columnName2
    Der vollqualifizierte Name einer vorhandenen Spalte mit Standard-DAX-Syntax, die normalerweise die 1-Seite bzw. Nachschlageseite der zu verwendenden Beziehung darstellt. Wenn die Argumente in umgekehrter Reihenfolge angegeben werden, werden sie von der Funktion vor der Verwendung vertauscht. Dieses Argument kann kein Ausdruck sein.

Rückgabewert

Die Funktion gibt keinen Wert zurück. Die Funktion aktiviert nur die angegebene Beziehung für die Dauer der Berechnung.

Hinweise

  1. USERELATIONSHIP kann nur in Funktionen verwendet werden, die einen Filter als Argument akzeptieren, z. B. in den Funktionen CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD und TOTALYTD.

  2. USERELATIONSHIP verwendet vorhandene Beziehungen im Modell und identifiziert Beziehungen durch ihre Endpunktspalten.

  3. In USERELATIONSHIP ist der Status einer Beziehung nicht von Bedeutung – ob die Beziehung aktiv oder inaktiv ist, hat keine Auswirkung auf die Verwendung der Funktion. Selbst wenn die Beziehung inaktiv ist, wird sie verwendet und überschreibt alle anderen aktiven Beziehungen, die möglicherweise im Modell vorhanden, in den Funktionsargumenten jedoch nicht angegeben sind.

  4. Wenn eine der als Argumente genannten Spalten nicht Teil einer Beziehung ist oder die Argumente zu verschiedenen Beziehungen gehören, wird ein Fehler zurückgegeben.

  5. Wenn mehrere Beziehungen benötigt werden, um Tabelle A in einer Berechnung mit Tabelle B zu verknüpfen, dann muss jede Beziehung in einer getrennten USERELATIONSHIP-Funktion angegeben werden.

  6. Wenn CALCULATE-Ausdrücke geschachtelt werden und mehr als ein CALCULATE-Ausdruck eine USERELATIONSHIP-Funktion enthält, dann gilt im Fall eines Konflikts oder einer Mehrdeutigkeit die innerste USERELATIONSHIP-Funktion.

  7. Es können maximal 10 USERELATIONSHIP-Funktionen geschachtelt werden. Ihr Ausdruck kann jedoch auch eine tiefere Schachtelungsebene aufweisen. Der folgende Beispielausdruck ist drei Ebenen tief, aber nur zwei Ebenen für USEREALTIONSHIP geschachtelt: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

Beispiel

Im folgenden Beispiel wird gezeigt, wie die aktive Standardbeziehung zwischen InternetSales- und DateTime-Tabellen überschrieben wird. Die Standardbeziehung besteht zwischen der OrderDate-Spalte in der InternetSales-Tabelle und der Date-Spalte in der DateTime-Tabelle.

Um die Summe von Internetverkäufen zu berechnen und das Aufteilen in Slices nach ShippingDate statt des herkömmlichen OrderDate zuzulassen, müssen Sie ein Measure [InternetSales by ShippingDate] mit dem folgenden Ausdruck erstellen:

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

Ziehen Sie in PowerPivot das neue Measure in den Bereich Werte im rechten Bereich, ziehen Sie die Spalte InternetSales[ShippingDate] in den Bereich Zeilenbezeichnungen. Jetzt werden Internetverkäufe in Slices nach Versanddatum aufgeteilt, statt nach Bestelldatum, wie in diesen Beispielen sonst üblich ist.

Damit dieses Beispiel funktioniert, muss eine Beziehung zwischen InternetSales[ShipmentDate] und DateTime[Date] vorhanden sein, und es sollte sich dabei nicht um die aktive Beziehung handeln. Außerdem sollte eine Beziehung zwischen InternetSales[OrderDate] und DateTime[Date] vorhanden sein, und es sollte sich dabei um die aktive Beziehung handeln.