Функция ALLEXCEPT
Удаляет все фильтры контекста в таблице, кроме фильтров, примененных к указанным столбцам.
Синтаксис
ALLEXCEPT(<table>,<column>[,<column>[,…]])
Параметры
Элемент |
Определение |
---|---|
table |
Таблица, в которой удаляются все фильтры контекста, кроме фильтров, примененных к столбцам, указанным в последующих аргументах. |
column |
Столбец, для которого нужно сохранить фильтры контекста. |
Первым аргументом функции ALLEXCEPT должна быть ссылка на базовую таблицу, все последующие аргументы должны быть ссылками на базовые столбцы. В функции ALLEXCEPT нельзя использовать табличные выражения и выражения столбцов.
Возвращаемое значение
Таблица, в которой удалены все фильтры, кроме фильтров на указанных столбцах.
Замечания
Эта функция не используется сама по себе, а служит в качестве промежуточной функции, с помощью которой изменяется набор результатов, с которыми выполняется другое вычисление.
Как описано в следующей таблице, функции ALL и ALLEXCEPT можно использовать в различных сценариях.
Функция и использование |
Описание |
---|---|
ALL(таблица) |
Удаляет все фильтры из указанной таблицы. Функция ALL(таблица) фактически возвращает все значения в таблице, удаляя все фильтры из контекста, которые применялись бы в противном случае. Эта функция полезна при работе с многоуровневым группированием, когда нужно создать вычисление, которое создает отношение значения агрегата к общему значению. |
ALL (Column[, Column[, …]]) |
Удаляет все фильтры из указанных столбцов в таблице. Все остальные фильтры в таблице, применяемые к другим столбцам, продолжают действовать. Все аргументы-столбцы должны принадлежать одной таблице. Вариант ALL(столбец) удобно использовать, если нужно удалить фильтры контекста для одного или нескольких заданных столбцов и сохранить все остальные фильтры контекста. |
ALLEXCEPT(Table, Column1 [,Column2]...) |
Удаляет все фильтры контекста в таблице, кроме фильтров, примененных к указанным столбцам. Это удобно в ситуациях, когда нужно удалить фильтры из многих, но не всех, столбцов в таблице. |
Пример
В следующем примере представлена формула, которую можно использовать в мере. Дополнительные сведения о создании меры см. в разделе Создание меры в сводной таблице или сводной диаграмме.
Эта формула суммирует SalesAmount_USD и использует функцию ALLEXCEPT, чтобы удалить все фильтры контекста в таблице DateTime, кроме фильтров, примененных к столбцу CalendarYear.
Примечание |
---|
В указанном выше примере используются таблицы ResellerSales_USD и DateTime из образца книги DAX. Дополнительные сведения об образцах см. в разделе Получение образца данных. |
=CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLEXCEPT(DateTime, DateTime[CalendarYear]))
Поскольку в формуле используется функция ALLEXCEPT, то в случае, когда любой столбец таблицы DateTime, кроме столбца CalendarYear, используется для среза сводной таблицы, формула удаляет все фильтры среза и возвращает значение, равное сумме SalesAmount_USD для значения метки столбца, как показано в таблице 1.
Однако, если для среза сводной таблицы используется столбец CalendarYear, результаты будут другими. Поскольку столбец CalendarYear указан в качестве аргумента функции ALLEXCEPT, то, когда выполняется срез данных по году, к годам будет применяться фильтр на уровне строк, как показано в таблице 2. Читателю рекомендуется сравнить эти таблицы, чтобы получить представление о работе функции ALLEXCEPT().