Sdílet prostřednictvím


USERELATIONSHIP

platí pro:počítaný sloupecPočítaná tabulkaMeasure vizuálu

Určuje relaci, která se má použít v určitém výpočtu jako relace, která existuje mezi columnName1 and columnName2.

Syntaxe

USERELATIONSHIP(<columnName1>,<columnName2>)

Parametry

Pojem definice
columnName1 Název existujícího sloupce, který používá standardní syntaxi DAXand plně kvalifikovaný, který obvykle představuje mnoho stran relace, která se má použít; if argumenty jsou uvedeny v obráceném pořadí, funkce je před použitím prohodí. Tento argument nemůže být výraz.
columnName2 Název existujícího sloupce, který používá standardní syntaxi DAXand plně kvalifikovaný, který obvykle představuje stranu jedné strany or vyhledávání relace; if argumenty jsou uvedeny v obráceném pořadí, funkce je před použitím prohodí. Tento argument nemůže být výraz.

Vrácení value

Funkce nevrací žádné value; funkce povoluje pouze určenou relaci pro duration výpočtu.

Poznámky

  • USERELATIONSHIP lze použít pouze ve funkcích, které jako argument přebírají filter, například: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD funkce.

  • USERELATIONSHIP nelze použít, pokud je definováno zabezpečení na úrovni řádků pro tabulku, ve které je zahrnuta measure. Například CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) vrátí zabezpečení na úrovni řádků errorif je definováno pro DimCustomer.

  • USERELATIONSHIP používá existující relace v modelu a identifikuje relace podle sloupců koncového bodu.

  • V USERELATIONSHIPje stav vztahu not důležitý; to znamená, zda je relace aktivní ornotnot ovlivňuje použití funkce. Even if je relace neaktivní, použije se and přepíše všechny ostatní aktivní relace, které se můžou v modelu vyskytovat, ale not uvedené v argumentech funkce.

  • Vrátí errorif některý ze sloupců pojmenovaných jako argument je not součástí relace or argumenty patří do různých relací.

  • If k propojení tabulky A s tabulkou B ve výpočtu musí být každá relace uvedena v jiné USERELATIONSHIP funkci.

  • If CALCULATE výrazy jsou vnořené, and více než jeden výraz CALCULATEcontains funkci USERELATIONSHIP, pak nejvnitřnější USERELATIONSHIP je ten, který převládá v případě konfliktní or nejednoznačnosti.

  • Je možné vnořit až 10 USERELATIONSHIP funkcí; váš výraz ale může mít hlubší úroveň vnoření, tj. Následující výraz sample je vnořený do hloubky 3 úrovní, ale pouze 2 pro USERELATIONSHIP: =CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA])).

  • U relací 1:1 se USERELATIONSHIP aktivuje pouze jedním směrem. Konkrétně filters bude moct tok z tabulky columnName2tabulky columnName1tabulky. If obousměrné křížové filtrování je žádoucí, ve stejném výpočtu se dají použít dva FUNKCE USERELATIONSHIPs s opačným směrem. Například CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K])).

Příklad

Následující sample ukazuje, jak přepsat výchozí, aktivní relaci mezi tabulkami InternetSales and DateTime. Výchozí relace existuje mezi sloupcem OrderDate v tabulce InternetSales and sloupec Date v tabulce DateTime.

Pokud chcete calculatesum internetových prodejů and povolit vytváření řezů podle hodnoty ShippingDate místo tradičního orderDate, vytvořte measure, [InternetSales by ShippingDate] pomocí následujícího výrazu:

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

Vztahy mezi InternetSales[Datum_odeslání] and DateTime[Date] musí existovat and by měly not být aktivní vztah; relace mezi InternetSales[OrderDate] and DateTime[Date] by měla existovat and by měla být aktivní relace.