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


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

Начнем с рассмотрения простой функции, а затем перейдем к изучению более сложной.

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

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

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

 

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

SUM () — производит сумму всех чисел в столбце. Если строка в столбце содержит значение с иным типом данных, нежели числовой, то для работы SUM возвращается пустое значение.

Синтаксис: SUM ([Столбец])

Пример DAX формулы с использованием функции SUM: в Power BI имеется исходная таблица заявок по товарам

Исходная таблица

 

Напишем формулу расчета суммы затрат по всем товарам:

Сумма Затрат = SUM ('Товары'[Затраты])

Как итог, SUM выдаст сумму всего столбца [Затраты], равную 43000:

Результат работы функции SUM

 

Теперь попробуем при помощи SUM вычислить сумму прибыли, то есть, нам нужно из продаж вычесть затраты и затем сложить всю прибыль. Попробуем написать пример формулы:

Сумма Прибыли = SUM ('Товары'[Продажи] - 'Товары'[Затраты])

Но, Power BI у нас заругался и выдал ошибку:

Ошибка DAX при использовании функции SUM

 

Все правильно, ведь в качестве входящего параметра SUM принимает только 1 столбец. А мы в формуле выше мало того, что указали 2 столбца, так еще и написали выражение расчета разницы, что в SUM не допустимо вообще.

Для того, чтобы решить эту задачу нужно воспользоваться второй функцией суммирования в DAX — SUMX.

 

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

SUMX () — вычисляет сумму результатов построчного выполнения выражения.

Синтаксис: SUMX (‘Таблица’; Выражение), где:

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

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

Давайте рассмотрим работу SUMX на практике, доработав формулу с ошибкой из примера выше:

Сумма Прибыли = 
SUMX(
    'Товары';
    'Товары'[Продажи] - 'Товары'[Затраты]
)

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

Для начала, SUMX произведет расчет прибыли индивидуально по каждой строке таблицы ‘Товары’ и запишет результаты во временную виртуальную таблицу. Табличная модель этого процесса будет выглядеть так:

Табличная модель работы первого этапа DAX функции SUMX

 

Затем, вторым действием, SUMX сложит все значения из этой временной виртуальной таблицы и выдаст итоговый результат суммы прибыли, равный 82000. После вычисления суммы, виртуальная таблица удалится из памяти.

Результат работы DAX функции SUMX

 

SUM, SUMX и другие функции DAX (FILTER)

Естественно, что функции SUMX или SUM чаще всего используются в формулах в составе с другими функциями DAX. Например, SUMX можно встроить в параметр какой-то другой функции (к примеру, в CALCULATE) или же, наоборот, в параметры самой SUMX может быть встроена какая-то функция.

Для примера, рассмотрим взаимодействие SUMX и FILTER. Так как первым параметром SUMX является таблица, то ее легко можно отфильтровать при помощи FILTER.

Если рассмотреть продолжение примера выше, то тогда можно составить формулу, где будет высчитываться прибыль только по товару 1:

Сумма Прибыли = 
SUMX(
    FILTER(
        'Товары'; 
        'Товары'[Товар] = "Товар1"
    );
    'Товары'[Продажи] - 'Товары'[Затраты]
)

И результатом взаимодействия SUMX и FILTER становится значение прибыли по 1 товару, равное 60000:

Результат формулы взаимодействия функций SUMX и FILTER

 

DAX функция SUMIF (СУММЕСЛИ) в Power BI и Power Pivot

Я заметил, что у некоторых пользователей DAX в Power BI или Excel (Powerpivot) возникает соблазн в использовании функции SUMIF аналога СУММЕСЛИ в Excel. Но, дело в том, что в DAX (по крайней мере, сейчас, на момент написания этой статьи) такой функции нет.

По сути, она и не нужна, так как посчитать сумму одновременно с каким-либо условием в DAX совершенно не составит никакого труда. Сама сумма считается при помощи уже знакомых нам SUM или SUMX. А все остальные условия можно соорудить из других функций, к примеру добавить условие «если» при помощи функции IF. Или же вычислить сумму совместно с функцией FILTER, как это мы делали в примере выше.

Ну, или же самый мощный вариант — вычислить сумму внутри CALCULATE и в рамках уже этой функции наложить различные фильтры на SUM или SUMX.

На этом, с функциями суммирования в Power BI и Power Pivot в этой статье все. Успехов Вам, друзья!
 

Подробное ВИДЕО «SUM и SUMX — функции суммы в DAX (Power BI и Power Pivot)»

Ссылки из видео:
1) [Регистрируйтесь в бесплатном экспресс-курсе] Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot: зарегистрироваться
2) [Скачивайте PDF] Справочник DAX функций для Power BI и Power Pivot на русском языке: скачать
 
 
Антон БудуевС уважением, Будуев Антон.
Проект «BI — это просто»

 

 

 

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

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

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

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

 

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

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

 

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


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


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

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

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