共用方式為


USERELATIONSHIP

適用於:計算結果列匯出數據表量值視覺計算

指定要用於特定計算作為 columnName1 與 columnName2 之間存在的關聯性。

語法

USERELATIONSHIP(<columnName1>,<columnName2>)  

參數

詞彙 定義
columnName1 現有資料行的名稱,使用標準 DAX 語法的完整格式名稱,通常表示所用關聯性的多端;如果引數是以反向順序提供,則函式會先交換方向,再使用這些引數。 此引數不能是運算式。
columnName2 現有資料行的名稱,使用標準 DAX 語法的完整格式名稱,通常表示所用關聯性的一端或查閱端;如果引數是以反向順序提供,則函式會先交換方向,再使用這些引數。 此引數不能是運算式。

傳回值

此函式不會傳回任何值,只會在計算期間啟用指定的關聯性。

備註

  • USERELATIONSHIP 只能在採用篩選作為引數的函式中使用,例如: CALCULATE、CALCULATETABLE、CLOSINGBALANCEMONTH、CLOSINGBALANCEQUARTER、CLOSINGBALANCEYEAR、OPENBALANCEMONTH、OPENBALANCEQUARTER、OPENBALANCEYEAR、TOTALMTD、TOTALQTD 和 TOTALYTD 函式。

  • 如果為包含量值的資料表定義資料列層級安全性,則無法使用 USERELATIONSHIP。 例如,如果為 DimCustomer 定義資料列層級安全性,則 CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey])) 會傳回錯誤。

  • USERELATIONSHIP 會使用模型中的現有關聯性,並依其結束點資料行來識別關聯性。

  • 在 USERELATIONSHIP 中,關聯性的狀態並不重要;也就是說,關聯性是否為作用中並不會影響函式的使用。 即使關聯性為非作用中,其還是會由可能存在於模型中但未在函式引數中提及的任何其他作用中關聯性所使用和覆寫。

  • 如有任何資料行命名為不屬於關聯性一部分的引數,或屬於不同關聯性的引數,則會傳回錯誤。

  • 如果需要多個關聯性,以在計算中將資料表 A 聯結至資料表 B,則必須在不同的 USERELATIONSHIP 函式中指定每個關聯性。

  • 如果 CALCULATE 運算式為巢狀,且多個 CALCULATE 運算式包含 USERELATIONSHIP 函式,當發生衝突或模擬兩可的情況時,則會以最內層的 USERELATIONSHIP 為優先。

  • 最多可以巢狀 10 個 USERELATIONSHIP 函式; 不過,運算式可能會有更深的巢狀層級。例如,下列範例運算式是 3 層深的巢狀運算式,但只有 2 層用於 USEREALTIONSHIP: =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 資料表之間的預設作用中關聯性。 在 InternetSales 資料表 OrderDate 資料行與 DateTime 資料表 Date 資料行之間存在預設關聯性。

若要計算網際網路銷售的總和,並允許依 ShippingDate 而不是傳統 OrderDate 進行分割,則使用下列運算式來建立量值 [依 ShippingDate 的 InternetSales]:

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

InternetSales[ShipmentDate] 與 DateTime[Date] 之間必須存在關聯性,且不應該是作用中關聯性;此外,InternetSales[OrderDate] 與 DateTime[Date] 之間應該存在關聯性,且應該是作用中關聯性。