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 до нуля или нескольких отдельных значений. Если функция не указана, функция возвращает значение BLANK, если result_columnName фильтруется до нуля или ошибки, если в контексте result_columnName имеется несколько отдельных значений.

Возвращаемое значение

Значение result_columnName в строке, где все пары search_columnName и search_value имеют точное совпадение.

Если совпадение не соответствует всем значениям поиска, возвращается пустое или alternateResult (если указано). Другими словами, функция не возвращает значение подстановки, если только некоторые из критериев соответствуют.

Если несколько строк соответствуют значениям поиска и значениям в result_columnName для этих строк идентичны, возвращается это значение. Однако если result_columnName возвращает разные значения, возвращается ошибка или alternateResult (если указано).

Замечания

  • Если между таблицей, содержащей столбец результатов и таблицы, содержащие столбцы поиска, в большинстве случаев используется функция RELATED вместо LOOKUPVALUE эффективнее и обеспечивает более высокую производительность.

  • Можно указать несколько пар search_columnName и search_value.

  • Параметры search_value и alternateResult вычисляются перед итерацию функции по строкам таблицы поиска.

  • Избегайте использования функций ISERROR или IFERROR для записи ошибки, возвращаемой LOOKUPVALUE. Если некоторые входные данные функции приводят к ошибке, если не удается определить одно выходное значение, предоставление параметра alternateResult является наиболее надежным и самым высоким способом обработки ошибки.

  • Параметр alternateResult возвращает ошибку, если указан в вычисляемом столбце Power Pivot.

  • Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).

Пример 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 для возврата значений каналов из таблицы заказа на продажу .

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

Однако в этом случае существует связь между таблицами заказа на продажу и sales, более эффективно использовать функцию RELATED.

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

функции RELATED (DAX)
функции информационных функций