USERELATIONSHIP
특정 계산에 사용할 관계를 columnName1과 columnName2 사이에 있는 관계로 지정합니다.
구문
USERELATIONSHIP(<columnName1>,<columnName2>)
매개 변수
용어 | 정의 |
---|---|
columnName1 |
표준 DAX 구문을 사용하고 정규화된 기존 열의 이름으로, 일반적으로 사용할 관계의 여러 측면을 나타냅니다. 인수가 역순으로 지정되면 함수는 인수를 사용하기 전에 인수를 교환합니다. 이 인수는 식일 수 없습니다. |
columnName2 |
표준 DAX 구문을 사용하고 정규화된 기존 열의 이름으로, 일반적으로 사용할 관계의 한쪽 또는 조회 쪽을 나타냅니다. 인수가 역순으로 지정되면 함수는 인수를 사용하기 전에 인수를 교환합니다. 이 인수는 식일 수 없습니다. |
반환 값
함수는 값을 반환하지 않습니다. 함수는 계산 기간 동안 지정된 관계만 사용하도록 설정합니다.
설명
USERELATIONSHIP 필터를 인수로 사용하는 함수(예: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD 및 TOTALYTD 함수)에서만 사용할 수 있습니다.
측정값이 포함된 테이블에 대해 행 수준 보안이 정의된 경우 USERELATIONSHIP 사용할 수 없습니다. 예를 들어
CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey]))
DimCustomer에 대해 행 수준 보안이 정의된 경우 오류를 반환합니다.USERELATIONSHIP 모델의 기존 관계를 사용하여 끝점 열로 관계를 식별합니다.
USERELATIONSHIP관계의 상태는 중요하지 않습니다. 즉, 관계가 활성 상태인지 여부에 관계없이 함수 사용에 영향을 주지 않습니다. 관계가 비활성인 경우에도 모델에 있을 수 있지만 함수 인수에 언급되지 않은 다른 활성 관계를 사용하고 재정의합니다.
인수로 명명된 열이 관계의 일부가 아니거나 인수가 다른 관계에 속하는 경우 오류가 반환됩니다.
계산에서 테이블 A를 테이블 B에 조인하는 데 여러 관계가 필요한 경우 각 관계를 다른 USERELATIONSHIP 함수에 표시해야 합니다.
CALCULATE 식이 중첩되고 둘 이상의 CALCULATE 식에 USERELATIONSHIP 함수가 포함된 경우 가장 안쪽의 USERELATIONSHIP 충돌 또는 모호성의 경우 우선합니다.
최대 10개의 USERELATIONSHIP 함수를 중첩할 수 있습니다. 그러나 식의 중첩 수준이 더 깊을 수 있습니다. 즉, 다음 샘플 식은 3개 수준 깊이로 중첩되지만 USERELATIONSHIP경우 2개만 중첩됩니다.
=CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))
.1 대 1 관계의 경우 USERELATIONSHIP 한 방향으로만 관계를 활성화합니다. 특히 필터는
columnName2 테이블에서 columnName1테이블로만 흐를 수 있습니다. 양방향 교차 필터링을 원하는 경우 반대 방향의 두 USERELATIONSHIP를 동일한 계산에 사용할 수 있습니다. 예들 들어 CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K]))
입니다.
예시
다음 샘플에서는 InternetSales와 DateTime 테이블 간의 기본 활성 관계를 재정의하는 방법을 보여 줍니다. 기본 관계는 OrderDate 열, InternetSales 테이블 및 DateTime 테이블의 Date 열 사이에 존재합니다.
인터넷 판매 합계를 계산하고 기존 OrderDate 대신 ShippingDate로 조각화할 수 있도록 하려면 다음 식을 사용하여 측정값인 [ShippingDate의 InternetSales]를 만듭니다.
= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))
InternetSales[ShipmentDate]와 DateTime[Date] 간의 관계는 존재해야 하며 활성 관계가 아니어야 합니다. 또한 InternetSales[OrderDate]와 DateTime[Date] 간의 관계가 존재해야 하며 활성 관계여야 합니다.