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


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

 

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

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

А также, подписывайтесь на наши социальные сети. Потому что именно в них, Вам будут доступны оперативно и каждый день наши актуальные фишки, секреты, наработки, примеры, кейсы, полезные советы, видео и статьи по темам сквозной BI аналитики (Power BI, DAX, Power Pivot, Excel…): Вконтакте, Инстаграм, Фейсбук, YouTube.

 

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, будет состоять из столбца с категорией [Менеджер], по которой сводится информация и из нового столбца [Сводные Продажи], где будут размещены значения агрегации (сумма продаж по менеджерам):

Результат работы DAX функции 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 совместно с ROLLUP и ROLLUPGROUP

 

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

 

Антон БудуевС уважением, Будуев Антон.
Проект «BI — это просто»

 

 

 

Присоединяйтесь к нашим социальным сетям

Именно в них оперативно и каждый день Вам будут доступны наши актуальные фишки, секреты, наработки, примеры, кейсы, полезные советы, видео и статьи 

по темам сквозной BI аналитики (Power BI, DAX, Power Pivot, Excel...)

Наша группа Вконтакте Мы в Инстаграме Наша группа в Фейсбук Наш YouTube канал
Наша группа VK
Подписаться на наш YouTube канал

 

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

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

 

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


Вам это может быть интересно. Другие статьи нашего обучающего портала:


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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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