ВСЕ

Возвращает все строки в таблице или все значения в столбце, игнорируя все фильтры, которые могли быть применены. Эта функция полезна для очистки фильтров и создания вычислений во всех строках таблицы.

Синтаксис

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )  

Параметры

Термин Определение
table Таблица, в которой требуется очистить фильтры.
столбец Столбец, на который требуется очистить фильтры.

Аргумент функции ALL должен быть ссылкой на базовую таблицу или ссылку на базовый столбец. Нельзя использовать табличные выражения или выражения столбцов с функцией ALL.

Возвращаемое значение

Таблица или столбец с удаленными фильтрами.

Замечания

  • Эта функция сама по себе не используется, но служит промежуточной функцией, которая может использоваться для изменения набора результатов, по которым выполняется другое вычисление.

  • Обычное поведение выражений DAX, содержащих функцию ALL(), заключается в том, что все примененные фильтры будут игнорироваться. Однако существуют некоторые сценарии, в которых это не так из-за автоматического существования, технология DAX, которая оптимизирует фильтрацию для уменьшения объема обработки, необходимого для определенных запросов DAX. Пример, когда автоматически существуют и ALL() предоставляют непредвиденные результаты, заключается в фильтрации по двум или нескольким столбцам одной таблицы (например, при использовании срезов), а в той же таблице есть мера, использующая ALL(). В этом случае автоматическое существование объединяет несколько фильтров в один и будет фильтровать только по существующим сочетаниям значений. Из-за этого слияния мера будет вычисляться по существующим сочетаниям значений, а результат будет основан на отфильтрованных значениях вместо всех ожидаемых значений. Дополнительные сведения об автоматическом существовании и его влиянии на вычисления см. в статье sql.bi.comMicrosoft MVP Альберто Феррари о том, как понять DAX Auto-Exist.

  • В следующей таблице описывается, как использовать функции ALL и ALLEXCEPT в разных сценариях.

    Функция и использование Description
    ALL() Удаляет все фильтры везде. ALL() можно использовать только для очистки фильтров, но не для возврата таблицы.
    ALL(Table) Удаляет все фильтры из указанной таблицы. В действительности ALL(Table) возвращает все значения в таблице, удалив все фильтры из контекста, которые в противном случае могли быть применены. Эта функция полезна при работе с множеством уровней группировки и требуется создать вычисление, которое создает соотношение агрегированного значения к общему значению. Первый пример демонстрирует этот сценарий.
    ALL (Column[, Column[, ...]]) Удаляет все фильтры из указанных столбцов в таблице; все остальные фильтры для других столбцов в таблице по-прежнему применяются. Все аргументы столбцов должны поступать из одной таблицы. Вариант ALL(Column) полезен, если требуется удалить фильтры контекста для одного или нескольких конкретных столбцов и сохранить все остальные фильтры контекста. Второй и третий примеры демонстрируют этот сценарий.
    ALLEXCEPT(Table, Column1 [,Column2]...) Удаляет все фильтры контекста в таблице, кроме фильтров, применяемых к указанным столбцам. Это удобное сочетание клавиш для ситуаций, в которых требуется удалить фильтры на многих, но не все столбцы в таблице.
  • Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).

Пример 1

Вычисление соотношения продаж категории к общему объему продаж

Предположим, что вы хотите найти объем продаж для текущей ячейки в сводной таблице, разделенной на общую продажу для всех торговых посредников. Чтобы убедиться, что знаменатель совпадает независимо от того, как пользователь сводной таблицы может фильтровать или группировать данные, вы определяете формулу, которая использует ALL для создания правильного общего общего значения.

В следующей таблице показаны результаты при создании новой меры " Коэффициент продаж торговых посредников" с помощью формулы, показанной в разделе кода. Чтобы узнать, как это работает, добавьте поле CalendarYear в область меток строк сводной таблицы и добавьте поле ProductCategoryName в область "Метки столбцов ". Затем перетащите меру, коэффициент продаж всех торговых посредников в область значений таблицы сводной таблицы. Чтобы просмотреть результаты в процентах, используйте функции форматирования Excel для применения процентного форматирования чисел к ячейкам, содержащим меру.

Метки строк Аксессуары Велосипеды Clothing Компоненты Общий итог
2005 0,02 % 9.10% 0.04% 0,75 % 9.91%
2006 0,11 % 24.71% 0.60% 4,48 % 29.90%
2007 0.36% 31.71% 1,07 % 6.79% 39.93%
2008 0.20% 16.95% 0,48 % 2.63% 20.26%
Общий итог 0.70% 82.47% 2.18% 14,65 % 100,00 %

Формула

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  

Формула создается следующим образом:

  1. Числитель — SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])это сумма значений в ResellerSales_USD[SalesAmount_USD] для текущей ячейки в сводной таблице с фильтрами контекста, примененными к CalendarYear и ProductCategoryName.

  2. Для знаменателя сначала укажите таблицу, ResellerSales_USD и используйте функцию ALL, чтобы удалить все фильтры контекста в таблице.

  3. Затем функция SUMX используется для суммирования значений в столбце ResellerSales_USD[SalesAmount_USD]. Другими словами, вы получаете сумму ResellerSales_USD[SalesAmount_USD] для всех торговых посредников продаж.

Пример 2

Вычисление соотношения продаж продуктов к общему объему продаж за текущий год

Предположим, что вы хотите создать таблицу, показывающую процент продаж по сравнению с годами для каждой категории продукта (ProductCategoryName). Чтобы получить процент за каждый год по каждому значению ProductCategoryName, необходимо разделить сумму продаж за этот конкретный год и категорию продуктов на сумму продаж для одной категории продуктов на протяжении всех лет. Другими словами, вы хотите сохранить фильтр на ProductCategoryName, но удалить фильтр в год при расчете знаменателя процента.

В следующей таблице показаны результаты при создании новой меры, года продаж торгового посредника, с помощью формулы, показанной в разделе кода. Чтобы узнать, как это работает, добавьте поле CalendarYear в область меток строк сводной таблицы и добавьте поле ProductCategoryName в область "Метки столбцов ". Чтобы просмотреть результаты в процентах, используйте функции форматирования Excel для применения процентного формата числа к ячейкам, содержащим меру, торговых посредников в год продаж.

Метки строк Аксессуары Велосипеды Clothing Компоненты Общий итог
2005 3,48 % 11.03% 1.91% 5.12% 9.91%
2006 16.21% 29.96% 27.29% 30.59% 29.90%
2007 51.62% 38.45% 48.86% 46.36% 39.93%
2008 28.69% 20.56% 21.95% 17.92% 20.26%
Общий итог 100,00 % 100,00 % 100,00 % 100,00 % 100,00 %

Формула

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))  

Формула создается следующим образом:

  1. Числитель SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])— это сумма значений в ResellerSales_USD[SalesAmount_USD] для текущей ячейки в сводной таблице с фильтрами контекста, примененными к столбцам CalendarYear и ProductCategoryName.

  2. Для знаменателя удалите существующий фильтр в CalendarYear с помощью функции ALL(Column). Это вычисляет сумму по оставшимся строкам в таблице ResellerSales_USD после применения существующих фильтров контекста из меток столбцов. Чистый эффект заключается в том, что для знаменателя сумма вычисляется по выбранному объекту ProductCategoryName (подразумеваемый фильтр контекста) и для всех значений года.

Пример 3

Вычисление вклада категорий продуктов в общий объем продаж в год

Предположим, что вы хотите создать таблицу, которая показывает процент продаж для каждой категории продуктов по годам. Чтобы получить процент для каждой категории продуктов в определенном году, необходимо вычислить сумму продаж для этой конкретной категории продуктов (ProductCategoryName) в году n, а затем разделить результирующее значение на сумму продаж за год n по всем категориям продуктов. Другими словами, вы хотите сохранить фильтр в год, но удалить фильтр на ProductCategoryName при вычислении знаменателя процента.

В следующей таблице показаны результаты при создании новой меры , торгового посредника Sales CategoryName, с помощью формулы, показанной в разделе кода. Чтобы узнать, как это работает, добавьте поле CalendarYear в область меток строк сводной таблицы и добавьте поле ProductCategoryName в область "Метки столбцов ". Затем добавьте новую меру в область "Значения " сводной таблицы. Чтобы просмотреть результаты в процентах, используйте функции форматирования Excel, чтобы применить процентный формат числа к ячейкам, содержащим новую меру, Sales CategoryName.

Метки строк Аксессуары Велосипеды Clothing Компоненты Общий итог
2005 0,25 % 91.76% 0.42% 7.57% 100,00 %
2006 0.38% 82.64% 1.99% 14.99% 100,00 %
2007 0,90 % 79.42% 2.67% 17.01% 100,00 %
2008 0,99 % 83.69% 2.37% 12.96% 100,00 %
Общий итог 0.70% 82.47% 2.18% 14,65 % 100,00 %

Формула

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))  

Формула создается следующим образом:

  1. Числитель — SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])это сумма значений в ResellerSales_USD[SalesAmount_USD] для текущей ячейки в сводной таблице с фильтрами контекста, примененными к полям, CalendarYear и ProductCategoryName.

  2. Для знаменателя используется функция ALL(Column), чтобы удалить фильтр по ProductCategoryName и вычислить сумму по оставшимся строкам в таблице ResellerSales_USD после применения существующих фильтров контекста из меток строк. Чистый эффект заключается в том, что для знаменателя сумма вычисляется за выбранный год (подразумеваемый фильтр контекста) и для всех значений ProductCategoryName.

Функции фильтрации
ФУНКЦИЯ ALL
Функция ALLEXCEPT
Функция FILTER