ALL

применимо:вычисляемый столбецвычисляемой таблицеMeasureвизуального вычисления

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

Синтаксис

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

Параметры

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

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

Возврат value

Столбец or таблицы с удаленными filters.

Замечания

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

  • Обычное поведение выражений DAX, содержащих функцию ALL() заключается в том, что любые filters применены будут игнорироваться. Однако существуют некоторые сценарии, в которых это not случае из-за auto-exist, технология DAX, которая оптимизирует фильтрацию, чтобы уменьшить объем обработки, необходимый для определенных DAX запросов. Пример, в котором автоматически существуют andALL() предоставляют непредвиденные результаты при фильтрации на двух or больше столбцов одной таблицы (например, при использовании срезов), and есть measure в той же таблице, которая использует ALL(). В этом случае автоматическое существование слиянием несколько filters в одну and будут filter только в существующих сочетаниях values. Из-за этого слияния measure будет вычисляться по существующим сочетаниям valuesand результат будет основан на отфильтрованных values вместо allvalues, как ожидалось. Дополнительные сведения об автоматическом существовании andeffect вычислений см. в статье об sql.bi.commicrosoft MVP Альберто Феррари Основные сведения о DAX auto-Exist.

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

    Использование функции and Описание
    ALL() Удаляет allfilters везде. ALL() можно использовать только для очистки filters, но not для возврата таблицы.
    ALL(таблица) Удаляет allfilters из указанной таблицы. В effectALL(таблица) возвращает allvalues таблицы, удаляя любые filters из контекста, который в противном случае мог быть применен. Эта функция полезна при работе с множеством уровней группировки, and хотите создать вычисление, которое создает соотношение агрегированных value с общим value. В примере first показан этот сценарий.
    ALL (столбец[, столбец[, ...]]) Удаляет allfilters из указанных столбцов в таблице; all другие filters в других столбцах таблицы по-прежнему применяются. All аргументы столбцов должны поступать из той же таблицы. Вариант ALL(столбец) полезен при удалении контекста filters для одного or более конкретных столбцов and, чтобы сохранить all других контекстных filters. В secondand третьих примерах демонстрируется этот сценарий.
    ALLEXCEPT(таблица, столбец1 [,столбец2]...) Удаляет all контекст filters в таблице exceptfilters, применяемых к указанным столбцам. Это удобное сочетание клавиш для ситуаций, в которых требуется удалить filters на многих, но notallстолбцы в таблице.
  • Эта функция not поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах or правилах безопасности на уровне строк (RLS).

Пример 1

Calculate соотношение продаж категории к общему объему продаж

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

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

Метки строк Принадлежности Велосипеды Одежда Компоненты Общий итог
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%

формулы

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

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

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

  2. Для знаменателя необходимо указать таблицу, ResellerSales_USD, and использовать функцию ALL для удаления контекста filtersall в таблице.

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

Пример 2

Calculate соотношение Product продаж к общему объему продаж по текущим Year

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

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

Метки строк Принадлежности Велосипеды Одежда Компоненты Общий итог
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%

формулы

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

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

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

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

Пример 3

Calculate вклад категорий Product в общий объем продаж на Year

Предположим, что вы хотите создать таблицу, показывающую процент продаж для каждой категории product, на основе yearна основеyear. Чтобы получить процент для каждой категории product в определенной year, необходимо calculatesum продаж для конкретной категории product (ProductCategoryName) в year n, and затем divide результирующий valuesum продаж для year n более allproduct категорий. Другими словами, вы хотите сохранить filter на year, но удалить filter в ProductCategoryName при вычислении знаменателя процента.

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

Метки строк Принадлежности Велосипеды Одежда Компоненты Общий итог
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%

формулы

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

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

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

  2. Для знаменателя используется функция ALL(столбец), чтобы удалить filter в ProductCategoryName andcalculatesum по оставшимся строкам таблицы ResellerSales_USD после применения существующего контекста filters из меток строк. Чистая effect заключается в том, что для знаменателя sum вычисляется по выбранному Year (подразумеваемого контекста filter) and для allvalues ProductCategoryName.

функции Filter
ALL функции
ALLEXCEPT функции
FILTER функции