共用方式為


LOOKUPVALUE

適用於:匯出數據行計算數據表量值視覺計算

傳回符合一或多個搜尋條件所指定之所有準則的數據列值。

語法

LOOKUPVALUE (
    <result_columnName>,
    <search_columnName>,
    <search_value>
    [, <search2_columnName>, <search2_value>]…
    [, <alternateResult>]
)

參數

術語 定義
result_columnName 包含您要傳回之值的現有資料行名稱。 它不能是表達式。
search_columnName 現有數據行的名稱。 它可以位於與result_columnName或相關數據表相同的數據表中。 它不能是表達式。 您可以指定多對search_columnName和search_value。
search_value 在 search_columnName 中搜尋的值。 您可以指定多對search_columnName和search_value。
alternateResult (選擇性)當result_columnName的內容已篩選為零或多個相異值時傳回的值。 如果未指定,當result_columnName篩選為零值時,函式會傳回 BLANK;如果內容中有一個以上的相異值result_columnName則傳回錯誤。

傳回值

數據列 result_columnName 的值,其中所有配對 search_columnNamesearch_value 都有完全相符的專案。

如果沒有符合所有搜尋值的相符專案,則會傳回 BLANK 或 alternateResult(如果指定的話)。 換句話說,如果只有部分準則相符,函式就不會傳回查閱值。

如果多個數據列符合搜尋值,且這些數據列 result_columnName 中的值都相同,則會傳回該值。 不過,如果 result_columnName 傳回不同的值,則會傳回錯誤或 alternateResult(如果指定的話)。

言論

  • 如果數據表之間有關聯性,其中包含結果數據行和包含搜尋數據行的數據表,在大部分情況下,使用 RELATED 函式而不是 LOOKUPVALUE 更有效率,並提供更佳的效能。

  • 您可以指定多個 search_columnNamesearch_value 組。

  • 在函式逐一查看搜尋數據表的數據列之前,會先評估 search_valuealternateResult 參數。

  • 請避免使用 ISERROR 或 IFERROR 函式來堲取 LOOKUPVALUE所傳回的錯誤。 如果無法判斷單一輸出值時,函式的某些輸入會導致錯誤,則提供 alternateResult 參數是處理錯誤的最可靠且效能最高的方法。

  • alternateResult 參數會在Power Pivot計算結果列中指定時傳回錯誤。

  • 在匯出數據行或數據列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

範例 1

在此範例中,LOOKUPVALUE 用來搜尋在訂單下單當天用來支付訂單之貨幣的平均費率:

Exchange Rate = 
LOOKUPVALUE (
    'Currency Rate'[Average Rate],
    'Currency Rate'[CurrencyKey], [CurrencyKey],
    'Currency Rate'[DateKey], [OrderDateKey]
)

[訂單日期] 和 [貨幣] 都必須找到正確日期與貨幣的平均費率。 OrderDateKey 和 CurrencyKey 是用來查閱貨幣匯率數據表中平均值的索引鍵。

您可以使用匯率,以下列方式計算當地貨幣的銷售金額:

Sales Amount Local Currency = [Sales Amount] * [Exchange Rate]

範例 2

在此範例中,Sales 數據表中定義的下列匯出數據行會使用 LOOKUPVALUE 函數,從 Sales Order 數據表傳回通道值。

CHANNEL = 
LOOKUPVALUE (
    'Sales Order'[Channel],
    'Sales Order'[SalesOrderLineKey],
    [SalesOrderLineKey]
)

不過,在此情況下,由於 Sales OrderSales 數據表之間有關聯性,因此使用 RELATED 函式會更有效率。

CHANNEL = RELATED('Sales Order'[Channel])

RELATED 函式 (DAX)資訊函式