Россия Нет

Создание сводной таблицы в DAX: функция SUMMARIZE в Power BI и Power Pivot

 Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В данной статье мы рассмотрим одну из нескольких функций в DAX, способных внутри самого кода создавать сводные таблицы в Power BI и Power Pivot — это функция SUMMARIZE.

 

Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.

Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».

 

DAX функция SUMMARIZE в Power BI и Power Pivot

SUMMARIZE () — создает сводную таблицу с агрегированными итогами по выбранным группам.

Синтаксис:

SUMMARIZE (
    'Таблица';
    [Столбец 1]; [Столбец 2]; ...; [Столбец N];
    "Имя столбца 1"; Выражение 1; 
    "Имя столбца 2"; Выражение 2; 
    ...; ...; 
    "Имя столбца N"; Выражение N
)

Где:

  • ‘Таблица’ — исходная существующая таблица или выражение, возвращающее таблицу, значения которой мы хотим сгруппировать
  • [Столбец] — столбец для группировки
  • «Имя столбца» — имя создаваемого столбца для значений группировки
  • Выражение — вычисляемое выражение для значений группировки

 

Пример использования DAX функции SUMMARIZE

Пример формулы на основе работы SUMMARIZE мы будем рассматривать в Power BI. Так как сводную таблицу мы будем создавать в физической модели данных, а это возможно только в Power BI.

В Excel (Power Pivot) создавать вычисляемые таблицы в модели данных, к сожалению, нельзя. Поэтому SUMMARIZE там создает сводные таблицы только виртуально, во время непосредственного вычисления формулы.

Итак, в Power BI Desktop у нас имеется исходная таблица «Продажи Менеджеров», где каждая строка соответствует конкретной продаже:

 

В Power BI Desktop во вкладке «Моделирование» создадим в модели данных вычисляемую сводную таблицу при помощи DAX формулы с участием рассматриваемой функции SUMMARIZE:

Сводные Продажи По Менеджерам = 
SUMMARIZE (
    'ПродажиМенеджеров';
    'ПродажиМенеджеров'[Менеджер];
    "СводныеПродажи";
    SUM('ПродажиМенеджеров'[Продажи])
)

Где, в качестве первого параметра мы указали исходную таблицу «Продажи Менеджеров», значения которой мы хотим сгруппировать.

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

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

Ну и, в четвертом параметре само выражение агрегации на основе DAX функции SUM.

То есть, сводная таблица, создаваемая функцией SUMMARIZE, будет состоять из столбца с категорией [Менеджер], по которой сводится информация и из нового столбца [Сводные Продажи], где будут размещены значения агрегации (сумма продаж по менеджерам):

 

Также, у рассматриваемой функции имеются еще и дополнительные параметры, рассмотрим их ниже.

 

Дополнительные параметры SUMMARIZE — ROLLUP и ROLLUPGROUP

Если мы столбцы для группировки, указанные в параметрах, дополнительно обернем в синтаксическое выражение ROLLUP (ROLLUPGROUP ([Столбец]), то в добавок к сводным агрегационным значениям мы еще получим итоги по группам.

Синтаксис:

SUMMARIZE (
    'Таблица';
    ROLLUP ( ROLLUPGROUP ([Столбец 1]; [Столбец 2]; ...; [Столбец N]));
    "Имя столбца 1"; Выражение 1; 
    "Имя столбца 2"; Выражение 2; 
    ...; ...; 
    "Имя столбца N"; Выражение N
)

Рассмотрим пример формулы с использованием ROLLUP (ROLLUPGROUP ()).

В Power BI имеется исходная таблица «Продажи Менеджеров»:

При помощи SUMMARIZE создадим новую сводную таблицу, только теперь, в качестве столбцов, по которым будем группировать агрегированные значения, мы укажем 2 столбца [Отдел] и [Менеджер].

А также, при помощи дополнительных параметров ROLLUP и ROLLUPGROUP, подведем общий итог по получившимся агрегированным значениям. Ниже код этой формулы:

Сводные Продажи По Менеджерам = 
SUMMARIZE (
    'ПродажиМенеджеров';
    ROLLUP ( ROLLUPGROUP ('ПродажиМенеджеров'[Отдел]; 'ПродажиМенеджеров'[Менеджер]));
    "СводныеПродажи";
    SUM('ПродажиМенеджеров'[Продажи])
)

Результатом выполнения выше приведенной формулы будет сводная таблица с подведением общего итога:

 

На этом, с разбором DAX функции SUMMARIZE в Power BI и Power Pivot, в этой статье все. В следующей статье мы рассмотрим еще несколько DAX функций, которые также создают сводные таблицы, но с некоторыми отличиями.

Пожалуйста, оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(33 голоса, в среднем: 4.5 из 5 баллов)
[Экспресс-видеокурс] Быстрый старт в языке DAX

 
 
Антон БудуевУспехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
 
 
 
 

Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.
 
Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.

 
Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D

Автор статьи:
Категория: Язык функций и формул DAX для Power BI и Excel (Power Pivot)

Добавить комментарий

* Заполняя форму отправки комментария своими персональными данными (имя, email, сайт и др.), Вы автоматически подтверждаете свое согласие на обработку своих персональных данных