Изменяет порядок применения фильтров при вычислении функции CALCULATE или CALCULATETABLE.
KEEPFILTERS()
Remarks
Функцию KEEPFILTERS можно использовать в контексте функций CALCULATE и CALCULATETABLE для переопределения стандартного поведения этих функций.
По умолчанию аргументы фильтра в таких функциях, как CALCULATE, используются в качестве контекста для вычисления выражения, поэтому аргументы фильтра для CALCULATE заменяют все существующие фильтры в тех же столбцах. Новый контекст, на который влияет аргумент фильтра для CALCULATE, влияет только на существующие фильтры для столбцов, упомянутых в аргументе фильтра. Фильтры для столбцов, отличные от упомянутых в аргументах функции CALCULATE или других связанных функциях, остаются в силе и не изменяются.
Функция KEEPFILTERS позволяет изменить это поведение. При использовании функции KEEPFILTERS все существующие фильтры в текущем контексте сравниваются со столбцами в аргументах фильтра, а пересечение этих аргументов используется в качестве контекста для вычисления выражения. В результате выполнения операции с любым из этих столбцов применяются оба набора аргументов: оба аргумента фильтра, используемые в CALCULATE, и фильтры в аргументах функции KEEPFILTER. Иными словами, фильтры CALCULATE заменяют текущий контекст, тогда как функция KEEPFILTERS добавляет фильтры в текущий контекст.
LOOKUPVALUE
Возвращает значение для строки, удовлетворяющей всем критериям, указанным в одном или нескольких условиях поиска.
LOOKUPVALUE(
,
,
[, , ]…
[, ]
)
Возвращаемое значение
Значение result_column в строке, где все пары search_column и search_value в точности совпадают.
Если совпадений, удовлетворяющих всем значениям поиска, не найдено, возвращается значение BLANK или alternateResult (если оно задано). Иными словами, функция не будет возвращать значение поиска, если совпадают только некоторые критерии.
Если несколько строк соответствуют значениям поиска и во всех случаях значения result_column идентичны, возвращается значение. Однако если result_column возвращает разные значения, возвращается ошибка или alternateResult, если последний параметр задан.