DAX имеет мощные функции фильтрации , которые сильно отличаются от функций Excel. Функции поиска работают с использованием таблиц и связей, таких как база данных. Функции фильтрации позволяют вам управлять контекстом данных для создания динамических вычислений.
Примечание. Функции фильтра DAX, которые возвращают таблицу, не добавляют таблицу в модель данных. Результирующая таблица используется в качестве аргумента в другой функции DAX. То есть такие функции DAX используются как вложенные функции с другими функциями DAX.
В следующем разделе вы узнаете, какие функции фильтра DAX вы можете использовать. Для получения более подробной информации об этих функциях обратитесь к учебнику — Функции DAX в этой библиотеке учебников.
Функции фильтра DAX
Ниже приведены функции фильтра DAX —
ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>]…, <таблица>, <groupingColumn>, [<groupingColumn>]…, [filterTable]…)
Добавляет комбинации элементов из нескольких столбцов в таблицу, если они еще не существуют. Определение того, какие комбинации элементов добавить, основано на ссылках на исходные столбцы, которые содержат все возможные значения для столбцов.
Чтобы определить комбинации элементов из разных столбцов для оценки —
ВСЕ ({<таблица> | <столбец>, [<столбец>], [<столбец>],…})
Возвращает все строки в данной таблице или все значения в указанных столбцах таблицы, игнорируя все фильтры, которые могли быть применены.
Эта функция полезна для очистки фильтров и создания вычислений для всех строк в таблице.
ALLEXCEPT (<таблица>, <столбец>, [<столбец>],…)
Удаляет все контекстные фильтры в таблице, кроме фильтров, которые были применены к столбцам, указанным в качестве аргументов.
В отличие от ALL, вы можете использовать эту функцию, когда хотите удалить фильтры для многих, но не для всех столбцов в таблице.
ALLNOBLANKROW (<таблица> | <столбец>)
Из родительской таблицы отношений возвращает —
Функция игнорирует любые фильтры контекста, которые могут существовать.
ALLSELECTED ([<tableName> | <columnName>])
Удаляет контекстные фильтры из столбцов и строк в текущем запросе, сохраняя при этом все остальные контекстные фильтры или явные фильтры.
РАСЧЕТ (<выражение>, [<фильтр1>, <фильтр2>…)]
Оценивает выражение в контексте, который изменяется указанными фильтрами.
Возвращает значение, являющееся результатом выражения.
CALCULATETABLE (<выражение>, <фильтр1>, <фильтр2>,…)
Оценивает табличное выражение в контексте, измененном данными фильтрами.
Возвращает таблицу значений.
CROSSFILTER (<columnName1>, <columnName2>, <direction>)
Определяет направление перекрестной фильтрации, которое будет использоваться в расчете для отношения, существующего между двумя столбцами. Не возвращает никакого значения.
DISTINCT (<столбец>)
Возвращает таблицу с одним столбцом, которая содержит значения, отличные от указанного столбца. Другими словами, повторяющиеся значения удаляются и возвращаются только уникальные значения.
Результирующий столбец используется в качестве аргумента в другой функции DAX.
РАНЬШЕ (<колонка>, <число>)
Возвращает текущее значение указанного столбца во внешнем проходе оценки указанного столбца, указанного числом.
РАННЕЕ (<колонка>)
Возвращает текущее значение указанного столбца во внешнем проходе оценки указанного столбца.
ФИЛЬТР (<таблица>, <фильтр>)
Возвращает таблицу, которая содержит только отфильтрованные строки.
FILTER используется только как функция, которая встроена в другие функции, для которых в качестве аргумента требуется таблица.
ФИЛЬТРЫ (<columnName>)
Возвращает значения, которые непосредственно применяются в качестве фильтров к columnName.
FILTERS используется только как функция, которая встроена в другие функции, для которых в качестве аргумента требуется таблица.
HASONEFILTER (<columnName>)
Возвращает значение ИСТИНА, если число напрямую отфильтрованных значений для columnName равно единице. В противном случае возвращает FALSE.
HASONEVALUE (<columnName>)
Возвращает TRUE, когда контекст для columnName был отфильтрован только до одного отдельного значения. В противном случае возвращает FALSE.
ISCROSSFILTERED (<columnName>)
Возвращает TRUE, когда columnName или другой столбец в той же или связанной таблице фильтруется.
ISFILTERED (<columnName>)
Возвращает TRUE, когда columnName фильтруется напрямую. Если в столбце нет фильтра или если фильтрация происходит из-за того, что другой столбец в той же таблице или в связанной таблице фильтруется, то функция возвращает FALSE.
KEEPFILTERS (<выражение>)
Изменяет способ применения фильтров при оценке функции CALCULATE или CALCULATETABLE.
СВЯЗАННЫЕ (<колонка>)
Возвращает связанное значение из другой таблицы.
RELATEDTABLE (<tableName>)
Оценивает табличное выражение в контексте, измененном данными фильтрами.
SUBSTITUTEWITHINDEX (<таблица>, <indexColumnName>, <indexColumnTable>, <orderBy_expression>, [<order>])
Возвращает таблицу, которая представляет левое полусоединение двух таблиц, представленных в качестве аргументов.
Полусоединение выполняется с использованием общих столбцов, определяемых общими именами столбцов и общим типом данных.
Столбцы, к которым присоединяются, заменяются одним столбцом в возвращаемой таблице, который имеет тип integer и содержит индекс.
Индекс представляет собой ссылку на правую таблицу соединений с заданным порядком сортировки.
USERELATIONSHIP (<columnName1>, <columnName2>)
Указывает отношение, которое будет использоваться в конкретном вычислении, как существующее между columnName1 и columnName2.
VALUES (<TableNameOrColumnName>)
Возвращает таблицу с одним столбцом, которая содержит значения, отличные от указанной таблицы или столбца.
Другими словами, повторяющиеся значения удаляются и возвращаются только уникальные значения.