Россия Нет

Функции суммирования в DAX: SUMX и SUM в Power BI и Power Pivot

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


Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В данной статье мы разберем функции суммирования в 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 ('Товары'[Продажи] - 'Товары'[Затраты])

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

 

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

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

 

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

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

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

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

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

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

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

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

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

 

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

 

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

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

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

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

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

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

 

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 на русском языке: скачать

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

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

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

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

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

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

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

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


  1. Валерий:

    Спасибо! очень понятно и полезно!!!

×

Совет от автора статьи

Рекомендую Вам изучить бесплатный экспресс-видеокурс "Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot"

Зарегистрируйтесь здесь >>>

Писать формулы в Power BI (Power Pivot) Вам станет гораздо легче и понятнее!

Будуев Антон