← Все курсы · Курс Power BI · Все руководства

SUM против SUMX в DAX: почему для построчного расчета нужен итератор

Берут колонну. Другой берет таблицу и расчет · Часть Analyst Prep Kit

К , аналитик данных · Опубликовано

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

Вот ход. Если число, которое вы хотите сложить, уже находится в столбце, используйте SUM(Orders[Units]). Если сначала необходимо проработать каждую строку, используйте SUMX(Orders, Orders[Units] * Orders[UnitPrice]): таблица, затем вычисления выполняются для каждой ее строки.

Краткая версия: SUM добавляет уже существующий столбец. SUMX строит значение для каждой строки, а затем складывает их.

Ошибку, возникающую из-за этого, стоит рассматривать как картинку, потому что арифметика объяснится сама собой, как только вы это сделаете.

Every pairing, against only the pairings that happened Two square grids sit side by side, each one sixteen cells wide and sixteen cells tall, one cell for every possible pairing of an order's quantity with an order's price. The left grid, labeled SUM times SUM, is completely filled in: all two hundred and fifty six cells are solid, because multiplying one total by another total combines every quantity with every price, including the pairs that came off different order lines and never occurred together. The right grid, labeled SUMX, is almost entirely empty outlines, with a single unbroken line of sixteen solid cells running corner to corner from top left to bottom right. Those sixteen are the pairings where the quantity and the price came off the same order line. The left grid is a solid block; the right grid is a thin diagonal stripe on an empty field. SUM × SUM SUMX
Одна ячейка на возможное сочетание количества и цены для шестнадцати заказов. Умножение двух сумм добавляет все 256 из них. SUMX добавляет 16, где количество и цена находятся в одной строке заказа.
Что вы узнаете
  1. Развилка: число уже находится в столбце?
  2. Что SUM примет и не примет
  3. Ошибка: 2630, значит 12995.
  4. Почему никто не улавливает: вырежьте одну строку, и обе согласятся
  5. Что на самом деле делает SUMX в каждой строке
  6. Остальные члены семьи X
  7. Неправильное число, которое выглядит правильно: среднее значение процентов
  8. Когда СУММ является правильным ответом
  9. Полное до и после
  10. Крайние случаи, которые возвращают число вместо ошибки
  11. Почему это работает
  12. Использование этого на вашей собственной модели
  13. Все на одном экране
Каждое число на этой странице можно проверить. Он работает на основе приспособления шестнадцатого порядка, используемого в этих руководствах Power BI, и каждый результат печатается рядом с его арифметикой в ​​форме 4 × 220 = 880. Каждое описанное поведение DAX цитируется из собственных справочных страниц Майкрософт в разделе «почему это работает», а не выводится. Если меры по вычисляемым столбцам все еще нечеткие, Столбцы против мер на первом месте.

Заказы, таблица фактов. Шестнадцать рядов. Цена за единицу проставляется в строке, что и делает таблица заказов, чтобы более позднее изменение цены не переписывало прошлогодние продажи.

ID заказаРегионПродуктЕдиницыЦена за единицу товара
1001СеверРабочий стол4220
1002ЮгСтул1085
1003ВостокРабочий стол3220
1004СеверЛампа640
1005ЮгРабочий стол3220
1006ВостокСтул885
1007СеверСтул585
1008ЗападЛампа1240
1009ЮгЛампа740
1010ВостокРабочий стол5220
1011СеверРабочий стол2220
1012ЗападСтул985
1013ВостокЛампа1540
1014СеверСтул685
1015ЮгРабочий стол4220
1016ЗападРабочий стол2220

Товары, таблица измерений, присоединенная «один ко многим» к заказам на продукт.

категорияПродуктСписок ценЗатраты
МебельРабочий стол220140
МебельСтул8552
ОсвещениеЛампа4022

Всего 101 единица, и нигде нет столбца доходов. Доход — это число, которое вам нужно построить.

1. Развилка: номер уже в столбце?

Перед объяснением один вопрос, на который стоит ответить по памяти. Подумайте о последней мере, которую вы написали. Скажем, были ли уже где-то сохранены суммированные значения или модель должна была сначала проработать каждое из них.

Этот вопрос определяет, какую функцию вы достигнете, и на него есть два ответа.

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

Ответ второй: номера пока не существует. Линейный доход, когда в таблице указаны только единицы измерения и цена. Маржа, когда стоимость находится на другой таблице. Взвешенная оценка, расширенная сумма, что угодно, в середине которой есть оператор. Если это правда, что-то должно посещать каждую строку, вычислять там значение и только затем складывать их. Это что-то SUMX.

Решающее значение между ними имеет не то, насколько сложной выглядит формула. Вопрос в том, можете ли вы указать на столбец на панели «Поля» и сказать «этот». Если можете, это СУММА. Если вместо этого вам нужно описать вычисление, то это SUMX.

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

2. Что SUM примет, а что нет

Справочная страница Майкрософт по SUM содержит один параметр и описывает его в шести словах: «Столбец, содержащий числа для суммирования». Не выражение. Колонка.

Так что это не работает, и это самая распространенная вещь, которую вводит новый пользователь Power BI:

Revenue = SUM ( Orders[Units] * Orders[UnitPrice] )

Power BI отклоняет это сообщение, необычно прямое для механизма формул: Функция СУММ принимает в качестве аргумента только ссылку на столбец. В модели под названием ничего не хранится Units * UnitPrice, поэтому столбца для передачи нет.

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

Revenue = SUM ( Orders[Units] ) * SUM ( Orders[UnitPrice] )

Два столбца, две допустимые суммы, одно умножение. Power BI принимает его без жалоб, поскольку в нем нет ничего плохого, как в DAX. Это неправильно только как арифметика.

3. Неудача: 2630 значит 12995.

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

ID заказаЕдиницыЦена за единицу товараЛинейный доход
10014220880 (4 × 220)
10021085850 (10 × 85)
10033220660 (3 × 220)
1004640240 (6 × 40)

Правильный ответ 2,630, потому что 880 + 850 + 660 + 240 = 2630. Именно это и возвращает SUMX: он обрабатывает каждую строку, а затем складывает четыре результата.

Теперь версия, которая компилируется. SUM(Единицы) равна 4 + 10 + 3 + 6 = 23. SUM(Цена за единицу товара) равна 220 + 85 + 220 + 40 = 565. Умножьте их, и вы получите 12,995, потому что 23 × 565 = 12 995.

Прежде чем читать дальше, скажите, почему 12 995 намного больше, чем 2 630. Это не округление и не двойное соединение. Скажите, из чего состоят эти лишние 10 365?

Это пары, которых никогда не было. Умножение двух сумм аналогично суммированию каждого количества, пересекающегося с каждой ценой: четыре единицы заказа 1001 по цене 85 заказа 1002, шесть единиц заказа 1004 по розничной цене 220 и так далее для всех шестнадцати комбинаций. Четыре ряда образуют 4 × 4 = 16 пар. Только четыре из них настоящие, те, у которых количество и цена совпадают, и эти четыре — 2630.

Разрыв равен остальным двенадцати: 12 995 минус 2 630 = 10 365.

Запустите то же самое для всех шестнадцати заказов, и цифры станут громче. SUMX возвращает 9,890. SUM(Единицы) — 101, SUM(Цена за единицу товара) — 2125 и 101 × 2125 = 214,625. Шестнадцать рядов означают 16×16 = 256 пар, из них 240 — вымышленные.

Вот рабочая мера.

Total Revenue =
SUMX ( Orders, Orders[Units] * Orders[UnitPrice] )

Прочтите это как два аргумента, выполняющих две работы. Orders это стол, по которому можно ходить. Orders[Units] * Orders[UnitPrice] это расчет, который нужно бежать, стоя на каждом его ряду. SUMX добавляет шестнадцать результатов.

4. Почему никто не улавливает: разрежьте на одну строку, и обе согласятся

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

Да, именно так, и именно эту часть стоит вынести со страницы.

Отфильтруйте визуальное изображение только по заказу 1001. SUMX проходит одну строку и возвращает 4 × 220 = 880. Разбитая мера вычисляет SUM(Единицы) по этой строке, которая равна 4, и SUM(Цена за единицу товара) по этой одной строке, которая равна 220, а затем умножается: 4 × 220 = 880. Идентично.

Это не совпадение в отношении этого приспособления. В одной строке доступна только одна пара, поэтому «каждая пара» и «настоящая пара» представляют собой один и тот же набор. Эти две меры не могут противоречить друг другу.

На что нарезается визуальный элементСломанная мераРабочая мера
Закажите 1001 самостоятельно880880
Заказ 1013 в одиночку600 (15 × 40)600 (15 × 40)
Светильники, четыре заказа6,400 (40 × 160)1,600
Все шестнадцать заказов214,6259,890

Световому ряду нужна своя линия, потому что именно она показывает, где заканчивается соглашение. Лампы четырех порядков по 6, 12, 7 и 15 штук, все по 40. СУММ дает 240 + 480 + 280 + 600 = 1600. Разбитая мера дает SUM(Единицы) = 40 и SUM(Цена за единицу товара) = 160 и 40 × 160 = 6400. В четыре раза больше, потому что четыре ряда означают шестнадцать пар, а реальными являются только четыре.

Таким образом, тест, который доказывает эффективность меры, — это тест, который не может потерпеть неудачу. Проверка одной строки пропускает меру, которая в общей сложности ошибочна в шестнадцать раз. Это та же форма, что и заливка Excel, первая строка которой правильная как в рабочей, так и в сломанной версии, и именно поэтому в конце этой страницы принято говорить об итогах, а не об осторожности.

5. Что на самом деле делает SUMX с каждой строкой

Майкрософт называет SUMX функция итератораи определяет категорию в одном предложении: «Функция DAX, которая перечисляет все строки заданной таблицы и оценивает заданное выражение для каждой строки».

Слово, которое имеет значение под этим, контекст строки. Контекст строки — это модель, которая знает, в какой строке она находится, что делает Orders[Units] означают число, а не целый столбец. В глоссарии Майкрософт это ясно сказано: контекст строки «представляет «текущую строку» и используется для оценки формул и выражений вычисляемых столбцов, используемых итераторами таблиц».

Итак, последовательность внутри SUMX(Orders, Orders[Units] * Orders[UnitPrice]) является:

  1. Возьмите строки заказов, которые прошли фильтры на визуальном элементе.
  2. Встаньте на первый. Orders[Units] это 4 и Orders[UnitPrice] равно 220, поэтому выражение равно 880.
  3. Переходите к следующему. Повторить. Шестнадцать раз.
  4. Сложите шестнадцать результатов и верните одно число.

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

Лучше знать, чем узнавать одну вещь: контекст строки ничего не фильтрует. Расположение в строке 1001 не ограничивает другие таблицы этим порядком. Ссылка на меру внутри итератора меняет это, и это меняет молча, что является скрытым люком. РАСЧЕТ и фильтрация контекста. Прочтите это, прежде чем писать SUMX(Orders, [Some Measure]).

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

6. Остальные члены семьи X

SUMX не является чем-то особенным. У каждого агрегата в DAX есть двойник X, и все они принимают одни и те же два аргумента в одном и том же порядке: таблица, затем выражение для вычисления в каждой ее строке. Изучение SUMX научит вас всему этому одновременно.

Обычная версияИтераторДоберитесь до итератора, когда
SUM(col)SUMX(table, expr)Сначала необходимо рассчитать сумму для каждой строки.
AVERAGE(col)AVERAGEX(table, expr)Вам нужно среднее значение расчета по строкам.
MAX(col)MAXX(table, expr)Самое большое расчетное значение, а не самое большое сохраненное.
MIN(col)MINX(table, expr)То же, в другую сторону.
COUNT(col)COUNTX(table, expr)Подсчет строк, в которых выражение дает число.
никтоRANKX(table, expr)Ранжирование по чему-то, что модель определяет для каждой строки.
никтоCONCATENATEX(table, expr, delim)Превращение строк в одну читаемую строку для карточки.

CONCATENATEX стоит попробовать в первую очередь, потому что он делает идею построчной записи наглядной. Он принимает необязательный третий аргумент, разделитель, и именно так в заголовке отчета вместо числа отображается «Стол, Стул, Лампа».

У AVERAGEX есть одно поведение, о котором стоит знать, прежде чем оно вас удивит в матрице. Майкрософт заявляет об этом прямо: «Когда нет строк для агрегирования, функция возвращает пустое значение. Когда есть строки, но ни одна из них не соответствует указанным критериям, функция возвращает 0». Пустая ячейка и нулевая ячейка означают разные вещи, и только одна из них рисует полосу.

7. Неправильная цифра, которая выглядит правильно: среднее процентное значение

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

Это не так, и в отличие от примера с доходами, разрыв здесь достаточно мал, чтобы его можно было отправить.

Стоимость зависит от продуктов, а не от заказов, поэтому маржа — это число, которое нигде не существует и которое необходимо создавать. RELATED это то, что позволяет строке Заказы читать строку своего собственного продукта на другой стороне отношения.

Total Margin =
SUMX (
    Orders,
    Orders[Units] * ( Orders[UnitPrice] - RELATED ( Products[Cost] ) )
)

На единицу то есть 220–140 = 80 на столе, 85–52 = 33 на стуле и 40–22 = 18 на лампе. В шестнадцати заказах имеется 23 письменных стола, 38 стульев и 40 светильников, поэтому общая прибыль равна 23 × 80 + 38 × 33 + 40 × 18 = 1840 + 1254 + 720 = 3,814.

Выручка 9890. Таким образом, смешанная маржа равна 3814 / 9890 = 38.56%.

Теперь версия, которая усредняется. Каждый заказ на стол выполняется по 80/220 = 36,36%, каждый стул по 33/85 = 38,82%, каждая лампа по 18/40 = 45,00%, независимо от количества. Существует семь заказов на столы, пять заказов на стулья и четыре заказа на лампы, поэтому:

Average Margin % =
AVERAGEX ( Orders, DIVIDE ( [Order Margin], [Order Revenue] ) )
ПродуктДопуск %ЗаказыВклад в средний
Рабочий стол36.36% (80 / 220)77 × 36.36 = 254.55
Стул38.82% (33 / 85)55 × 38.82 = 194.12
Лампа45.00% (18 / 40)44 × 45.00 = 180.00
Общий16628.66 / 16 = 39.29%

39,29% против истинных 38,56%. Ошибочно на 0,73 процентных пункта и вполне правдоподобно в карточке на приборной панели.

Причину стоит сказать одной строкой, ведь это целый класс ошибок. Среднее значение дает каждому заказу один голос. Лампы занимают 4 из 16 заказов, поэтому они приносят 25% голосов, но приносят только 1600 из 9890 доходов, что составляет 16,18%. Лампы также имеют самый высокий процент маржи, поэтому их избыточный вес увеличивает средний показатель.

Отношение итогов не является суммой отношений. Исправление состоит в том, чтобы разделить один раз в конце:

Margin % = DIVIDE ( [Total Margin], [Total Revenue] )

Из этого следует правило: СУММКС числитель, СУММКС знаменатель и разделите эти два числа. Никогда не усредняйте процент, который уже был соотношением, если только кто-то не сказал вам в письменном виде, что он хочет, чтобы каждый заказ учитывался одинаково.

8. Когда СУММ — правильный ответ

Ничто из вышеперечисленного не является аргументом в пользу повсеместного использования итераторов. Собственные рекомендации Майкрософт на самой странице SUMX противоположны: «Если вам не нужно фильтровать столбец, используйте функцию SUM».

СУММ верен, когда значение уже находится в столбце, который охватывает большую часть обычной модели. SUM(Orders[Units]) равно 101, и итератор ничего к этому не добавил бы. Таблицу фактов, в каждой строке которой хранится расширенная сумма, следует суммировать, а не выводить заново.

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

И если вы обнаружите, что пишете SUMX(Orders, Orders[Units]), с пустым столбцом в качестве выражения и без каких-либо вычислений, это СУММА с дополнительным синтаксисом. Напишите СУММУ.

Полное до и после

Та же модель, тот же визуальный элемент, те же шестнадцать строк. Одна функция отдельно.

До: SUM(Units) * SUM(UnitPrice)После: SUMX(Orders, Units * UnitPrice)
Он компилируется?ДаДа
Один заказ (1001)880880
Светильники, четыре заказа6,400 (40 × 160)1,600
Столы, семь заказов35,420 (23 × 1,540)5,060 (23 × 220)
Все шестнадцать заказов214,625 (101 × 2,125)9,890
Что это добавляетВсе 256 сочетаний количества и цены.16 пар, которые произошли
Что рецензент проверяет в первую очередьОдна строка, соответствующаяОдна строка, соответствующая

Последняя строка — это точка страницы. Обе версии проходят проверку, которую проводит большинство людей.

Крайние случаи, которые возвращают число вместо ошибки

Это те, которые производят результат, а не красную закорючку.

Почему это работает

Причина дизайна – полезная часть. DAX разделяет эти две функции, поскольку они отвечают на разные вопросы, и на справочных страницах Майкрософт об этом говорится в первых строках. СУММ «складывает все числа в столбце». SUMX «возвращает сумму выражения, вычисленного для каждой строки таблицы». Один считывает память, другой выполняет расчет.

К ошибке стоит отнестись серьезно, потому что это частный случай чего-то общего: расчет итогов — это не тот же расчет, который выполняется для отдельных строк, а затем суммируется. Это не особенность Power BI. У. С. Робинсон продемонстрировал то же самое для корреляций в 1950 году, показав, что отношения, рассчитанные на основе сгруппированных данных переписи, не соответствуют отношениям между людьми внутри этих групп. Это открытие стало известно как экологическая ошибка (Робинсон, 1950, Американское социологическое обозрение, 15(3), 351–357). Арифметика здесь проще, чем у него, но ошибка та же: сначала агрегируйте, и связь на уровне строк исчезает еще до того, как вы ее используете.

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

Одно замечание в шпаргалке ниже. Он создан для того, чтобы его изучать и вспоминать, а не читать, потому что тестирование переноса материала в новые ситуации лучше, чем его повторное изучение, что здесь важно, поскольку вы будете применять это к моделям, которые совсем не похожи на приведенную выше (Батлер, 2010, Журнал экспериментальной психологии: обучение, память и познание, 36(5), 1118–1133).

Использование этого на вашей собственной модели

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

  1. Найдите в списке мер ) * SUM и ) / SUM. Два агрегата в сочетании с оператором между ними — это шаблон. Большинство попаданий будут в порядке. Те, кого нет, все здесь.
  2. Для каждого совпадения спрашивайте, принадлежат ли эти два столбца к одной и той же строке. Единицы измерения и цена в одной строке представляют собой пару на уровне строки, и умножать их суммы неправильно. Выручка и численность персонала из разных таблиц обычно отсутствуют, и правильно разделить их суммы.
  3. Проверяйте общее количество, а не ряд. Снимите фильтр, прочитайте общую сумму и сравните ее с чем-то, что вы знаете. Сумма дохода, в двадцать раз превышающая ваш годовой объем продаж, терпит неудачу за одну секунду.
  4. Проверьте группу, содержащую более одной строки. Если вы тестировали только однострочный срез, вы ничего не тестировали. Выберите продукт, за которым находится наибольшее количество заказов.
  5. Найдите каждый усредненный процент. Все, что называется «Средний X %» или «Средняя маржа», стоит открыть. Если он усредняет соотношение, замените его на РАЗДЕЛИТЬ на две суммы и сообщите владельцу отчета, что число изменится.
  6. Напишите предполагаемую арифметику в описании меры. «Сумма единиц, умноженная на цену за единицу, за строку» — это одно предложение, оно присутствует в модели и делает возможным отзыв следующего человека.

Если у вас под рукой есть бумага, один дополнительный эскиз исправит это навсегда. Нарисуйте сетку коробок размером четыре на четыре. Напишите четыре количества сбоку и четыре цены сверху. Заштрихуйте четыре клетки, в которых количество соответствует своей цене. То, что вы заштриховали, — это СУММ, а вся сетка — это то, что дает умножение двух сумм. Вам не нужно будет искать это снова.

Подробнее об этом и еще что-нибудь подобное. Все инструкции находятся в одном месте на индекс направляющих: Power BI, SQL, Excel и связанные с ними рабочие привычки.

Все на одном экране

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

вещьЧто он делает
SUM(col)Добавляет столбец, который уже существует. Один аргумент, и это должен быть столбец.
SUMX(table, expr)Вычисляет выражение в каждой строке, а затем суммирует результаты.
Вопрос, который нужно задатьМогу ли я указать столбец на панели «Поля»? Если нет, то это SUMX.
ИтераторФункция, которая просматривает каждую строку таблицы и вычисляет в ней выражение.
контекст строкиМодель знает, в каком ряду она стоит.
Контекст строки неФильтруйте что угодно. Ссылка на меру меняет ситуацию.
SUM(a) * SUM(b)Добавляет каждую пару а с б. 16 рядов означают 256 пар.
Почему он проходит проверкуОбе меры, разделенные на одну строку, возвращают одно и то же число.
Тест, который работаетСумма, которую вы предсказали еще до того, как прочитали.
Семья ХСРЗНАЧ, MAXX, MINX, СЧЕТХ, РАНГX, КОНКАТЕНАТЕКС. Те же два аргумента.
Среднее соотношениеКаждая строка имеет одинаковый вес. 39,29%, где правда 38,56%.
Исправление соотношенияDIVIDE([Total Margin], [Total Revenue]). В конце разделите один раз.
Чтение другой таблицыRELATED, от многих сторон к одной стороне.
Пробелы в SUMXИгнорируется, а не ноль. Полузагруженная колонна тихонько падает.
SUMX(t, t[col])СУММА с дополнительным синтаксисом. Напишите СУММУ.
Когда SUM веренЗначение сохраняется. Майкрософт: «Если вам не нужно фильтровать столбец, используйте функцию СУММ».
Единственная привычка, которую следует сохранить. Предскажите общую сумму, прежде чем читать ее. Шестнадцать ордеров по этим ценам — это примерно десять тысяч, поэтому 214 625 — это неправильно, пока вы не открыли хотя бы один такт. Грубое число, которое вы заранее определили, выявляет ошибки этого класса быстрее, чем чтение DAX, и это занимает около четырех секунд.

Еще одна мысль, и мне бы искренне хотелось услышать ответы других людей. Худшая версия, которую я видел, — это средний процент скидки по представительской карте. Она была построена как среднее значение скидок на заказ, она была примерно на два пункта ниже реальной смешанной цифры и котировалась в документах совета директоров в течение трех четвертей, прежде чем кто-либо разделил эти две суммы. Какой из них дольше всего оставался незамеченным в модели, доставшейся вам по наследству?

Ссылки

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

Power BI для аналитиков состоит из 187 страниц, меры строятся по одному аргументу за раз, с проверками, которые выявляют неправильное агрегирование до того, как оно достигнет карточки, и практическими вопросами, которые печатают ответ и стоящие за ним арифметические действия.

Power BI для аналитиков, 19 долларов США →
Практикуйте это там, где проявляется неправильная агрегация.

тот Курс Power BI дает вам повторы: меры, которые компилируются и лгут, итоговые значения, которые нужно сначала спрогнозировать, и вопросы, которые спрашивают, по какой таблице должен пройти итератор, а не какое имя функции правильное. Теперь вы владеете методом; комплект - это практика. Ничего устанавливать, учетная запись не требуется.

Откройте комплект Power BI →