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 имеют точное совпадение.
Если совпадение не соответствует всем значениям поиска, возвращается ПУСТОе или альтернативное значениеResult (если указано). Другими словами, функция не возвращает значение подстановки, если только некоторые из критериев соответствуют.
Если несколько строк соответствуют значениям поиска и значениям в result_columnName для этих строк идентичны, возвращается это значение. Однако если result_columnName возвращает разные значения, возвращается ошибка или альтернативныйresult (если указано).
Замечания
Если между таблицей есть связь, содержащая результирующий столбец и таблицы, содержащие столбцы поиска, в большинстве случаев использование функции RELATED вместо LOOKUPVALUE является более эффективной и обеспечивает более высокую производительность.
Можно указать несколько пар search_columnName и search_value .
Search_value и альтернативные параметрыResult вычисляются до того, как функция выполняет итерацию по строкам таблицы поиска.
Избегайте использования функций ISERROR или IFERROR для записи ошибки, возвращаемой LOOKUPVALUE. Если некоторые входные данные функции приводят к ошибке, если не удается определить одно выходное значение, предоставление альтернативного параметраResult является самым надежным и самым высоким способом обработки ошибки.
Параметр 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]
)
Однако в этом случае, так как между таблицами "Заказ на продажу" и "Продажи" существует связь, более эффективно использовать функцию RELATED.
CHANNEL = RELATED('Sales Order'[Channel])