Сквозь тьму и мистику я призываю вас к изучению и овладению искусством 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, такие как MAXX и MINX и т.д.

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

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

Комментарии (3)


  1. Kryptonets
    06.08.2024 23:02

    Эмм...Нейросеть что ли писала? Я изучаю DAX на протяжении 6 лет и таких функций-итераторов как COUNTROWSX, COUNTBLANKX, DISTINCTCOUNTX не существует в языке DAX. Не вводите людей в заблуждение!


    1. ksokol
      06.08.2024 23:02

      На мой взгляд, это просто перевод этого текста: https://medium.com/microsoft-power-bi/power-bi-dax-lets-understand-the-difference-between-sum-and-sumx-73413e0e4665

      С добавленными словами вроде "магии" и прочего.

      Эти функции взяты из этого же источника :)


  1. Hello_Irina
    06.08.2024 23:02

    Интересная подача, спасибо! Подпишусь на вас, буду ждать продолжения