Темная магия SUM и SUMX

от автора

Сквозь тьму и мистику я призываю вас к изучению и овладению искусством Power BI, чтобы возводить величественные визуализации и творить таинственную аналитику данных.
В этом чертоге знаний я буду делиться оккультными советами, таинственными руководствами и практическими ритуалами по темам, которые могут включать моделирование данных, заклинания DAX, проектирование отчетов и многое другое.
Мои заметки по Power BI вы сможете искать по тегу #PBI_M1o

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

Функция SUM

SUM — это простое заклинание, принимающее имя столбца в качестве аргумента и возвращающее сумму всех значений в этом столбце.

Представьте себе таблицу Sales с колонной SalesAmount.

Произнесите заклинание:
SalesAmount = SUM('Sales'[SalesAmount])
И получите общую сумму продаж в ваших данных. Легко, не так ли? Но что, если вы хотите наложить свою магию или вычисления на каждую строку перед их суммированием?
Что, если столбец SalesAmount отсутствует, и вам нужно его создать? У вас есть столбцы OrderQuantity и UnitPrice. Мы не можем просто сложить их и умножить результат, чтобы получить SalesAmount, ибо нам необходимо умножить каждый столбец в каждой строке и затем сложить результаты.

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

Функция SUMX

SUMX — это мощное заклинание-итератор, принимающее таблицу и выражение в качестве аргументов, возвращающее сумму выражения, вычисленного для каждой строки таблицы.

Чтобы вызвать SalesAmount из столбцов OrderQuantity и UnitPrice, произнесите заклинание:

SalesAmountSX = SUMX('Sales', 'Sales'[OrderQuantity] * 'Sales'[UnitPrice])
Эти слова магии дадут вам SalesAmount, умножив OrderQuantity и UnitPrice для каждой строки и сложив результаты. SUMX позволяет использовать любое заклинание, включающее несколько столбцов таблицы, а не только один.

В дополнение к SUMX, в вашем арсенале могут быть полезны другие заклинания-итераторы DAX, такие как AVERAGEX, COUNTX, COUNTBLANKX, COUNTROWSX, DISTINCTCOUNTX, MAXX и MINX и т.д.

Как видите, SUM и SUMX — это различные заклинания, служащие разным целям. Используйте SUM, когда хотите суммировать один столбец значений, которые уже существуют в вашей модели данных, и используйте SUMX, когда хотите суммировать выражение, включающее вычисления или логику для каждой строки таблицы.

Не забудьте сохранить это заклинание в своем свитке чтения. Ожидайте новых записей с множеством других темных секретов и приемов Power BI.


ссылка на оригинал статьи https://habr.com/ru/articles/833786/


Комментарии

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

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