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
имеют точное совпадение.
Если совпадение не соответствует всем значениям поиска, возвращается BLANK или 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
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey],
[SalesOrderLineKey]
)
Однако в этом случае существует связь между заказами на продажу и таблицами sales, то более эффективно использовать функцию RELATED.
CHANNEL = RELATED('Sales Order'[Channel])