DAX в Power BI: меры, вычисления и контекст фильтра
DAX — язык выражений, на котором в Power BI создают расчёты в модели данных. Он помогает получить выручку, средний чек, долю категории и другие показатели. При этом результат связан не только с формулой: значение меняется вместе с выбранным периодом, строкой отчёта и другими условиями отбора. Обучение DAX поэтому соединяет вычисления с устройством модели. Слушатель разбирается, какие строки участвуют в расчёте, как связаны таблицы и почему одинаковая формула показывает разные числа в соседних ячейках. Благодаря этому показатель становится объяснимым результатом, а не числом, которое случайно получилось после ввода выражения.
Содержание

Чем мера отличается от вычисляемого столбца
Вычисляемый столбец добавляет значение для строки таблицы. Например, из цены и количества можно получить сумму конкретной позиции заказа. Для обычной модели Import такой столбец рассчитывается при обработке данных модели и не меняется от одного нажатия на фильтр отчёта.
Мера используется для расчёта результата в текущих условиях отчёта. Она может суммировать суммы позиций, считать число заказов или возвращать отношение показателей. При выборе другого периода мера пересчитывается для соответствующего набора данных.
Эта разница помогает связать инструмент с задачей. Если требуется характеристика каждой строки, рассматривается столбец. Если нужен показатель по выбранной части данных, рассматривается мера. В обзоре DAX Microsoft эти виды вычислений описываются вместе с контекстом их выполнения.
Откуда берётся контекст фильтра
Контекст фильтра — условия, которые определяют доступную для вычисления часть данных. Их создают поля визуализации, срезы и другие фильтры. Например, строка с названием категории ограничивает расчёт товарами этой категории, а выбранный год добавляет условие по времени.
Поэтому одна мера выручки может показывать разные значения в каждой строке таблицы. Формула остаётся той же, но набор участвующих данных изменяется. Это особенно важно для понимания итогов: итоговая ячейка тоже вычисляется в собственном контексте и не всегда равна простому сложению видимых чисел.
На небольшом наборе данных эту связь удобно наблюдать вручную. Сначала можно определить строки для одной категории, затем добавить период и сопоставить сумму. Такое упражнение помогает увидеть, какое условие изменило результат, прежде чем переходить к сложной модели.
Как строится понятная мера
Пусть таблица Sales содержит позиции заказов, а Amount — сумму отдельной позиции. Выручку по доступным строкам можно выразить так:
Revenue = SUM(Sales[Amount])
Если одному заказу соответствуют несколько позиций, число строк отличается от числа заказов. Поэтому для расчёта среднего чека может потребоваться отдельный подсчёт уникальных идентификаторов:
AverageOrder = DIVIDE(
[Revenue],
DISTINCTCOUNT(Sales[OrderId])
)
Функция DIVIDE помогает описать деление с предусмотренным поведением при нулевом знаменателе. Смысл показателя при этом зависит от данных: сумма должна относиться к тем же заказам и условиям, по которым считается количество. Понятное название меры не заменяет этого содержательного определения.
Как осваивают расчёты в модели данных
Курс «Бизнес-аналитика с Power BI» в Нетологии связывает DAX с подготовкой модели и созданием отчётов. Расчёты изучаются как часть аналитической работы: данные нужно организовать, получить показатели и показать их пользователю. Это помогает видеть, откуда берётся число на диаграмме и какие условия на него влияют.
В программе есть моделирование данных, вычисления и интерактивная отчётность. Работа над итоговым аналитическим отчётом объединяет эти темы в одну задачу. Для слушателя ценность такого формата — в возможности применять формулы внутри связанной модели и объяснять поведение показателей при изменении фильтров.
Как связывают подготовку данных с вычислениями
Курс «Power BI и Power Query» в SF Education охватывает преобразование данных, модель, функции DAX и создание информационных панелей. Такая последовательность помогает понять, почему качество расчёта зависит от того, как подготовлены исходные таблицы и устроены связи между ними.
Открыть курс Power BI и Power Query
Обучение включает практические задания, тесты и работу с бизнес-кейсами. Слушатели получают обратную связь по работам, а доступ к материалам, обновлениям и учебному чату сохраняется. Это позволяет возвращаться к отдельному этапу, когда при создании отчёта становится понятнее, какой вопрос требует дополнительного разбора.
Что меняет CALCULATE
Функция CALCULATE вычисляет выражение в изменённом контексте фильтра. Она позволяет связать показатель с дополнительным условием или изменить уже действующее ограничение. Важно понимать не только запись функции, но и то, какая часть контекста меняется, а какая сохраняется.
Например, для доли категории может понадобиться сопоставить её выручку с выручкой без ограничения по категории. При этом условие по выбранному периоду может оставаться тем же. Содержательная задача состоит в определении правильного знаменателя, а функция помогает выразить это изменение в модели.
В описании CALCULATE рассматриваются разные виды фильтров и способы их изменения. Для учебной практики особенно полезно сначала проговорить ожидаемый набор данных словами. Тогда результат функции можно сопоставить с понятной задачей и заметить случайно сохранённое или снятое условие.
Почему общий средний чек считают заново
Предположим, в одной группе был один заказ на 100, а в другой — три заказа общей суммой 900. Средний чек групп составляет 100 и 300. Для общего результата сумма 1000 делится на четыре заказа, и получается 250. Сложение двух средних или их простое усреднение решало бы другую математическую задачу.
Такой пример объясняет поведение меры в итоговой ячейке. Там меняется контекст, и отношение выручки к числу заказов рассчитывается для общего набора данных. Итог продолжает определение показателя, даже если визуально он расположен под отдельными средними значениями.
На практике это помогает обсуждать числа с пользователем отчёта. Можно показать исходные суммы и количество заказов и вместе восстановить расчёт. Тогда вопрос о непохожем итоге становится понятным разговором о смысле показателя, а не поиском случайной ошибки в отображении.
Почему связи таблиц влияют на число в отчёте
Модель часто содержит таблицу операций и справочники: товары, клиентов, даты. Пользователь выбирает категорию в справочнике, а условие по связям влияет на данные операций. Поэтому видимый фильтр и фактический набор строк связаны устройством модели.
Если связь отсутствует или настроена не так, как предполагается в расчёте, показатель может вести себя неожиданно. Например, выбор категории не меняет число или создаёт другой набор данных. В учебном разборе проверяется сама логика передачи условия между таблицами, а не только написание выражения.
Значение имеет и уровень подробности. Строка заказа, отдельная позиция и месячный итог описывают разные объекты. При их объединении без понимания уровня данных легко получить повторное включение суммы. Обучение помогает связывать каждую меру с тем, что означает одна строка исходной таблицы.
| Понятие | Какой вопрос оно проясняет |
|---|---|
| Вычисляемый столбец | Какое значение относится к отдельной строке |
| Мера | Что рассчитывается для текущих условий отчёта |
| Контекст фильтра | Какие данные участвуют в вычислении |
| Связь таблиц | Как условие передаётся между частями модели |
| CALCULATE | Как изменяется контекст для выражения |
Как учебный разбор делает формулу объяснимой
Небольшая таблица позволяет заранее понять ожидаемый результат. Можно вручную сложить суммы нескольких позиций, посчитать заказы и определить среднее. После этого формула сравнивается с уже понятным числом, а отличие становится предметом анализа.
Далее изменяется одно условие: категория, период или выбранная группа клиентов. По результату видно, какие строки остались в расчёте. Такой порядок помогает связать поведение отчёта с контекстом и не превращать исправление выражения в случайный подбор функций.
Постепенно слушатель учится объяснять показатель целиком: что считается, по каким данным и при каких условиях. Это основа работы с интерактивной аналитикой. Формулы, модель и визуализация начинают поддерживать одну понятную задачу, а новый фильтр становится осмысленным изменением расчёта.