Гид по технологиям

Как добавить вычисляемый столбец в Power BI

4 min read Power BI Обновлено 19 Nov 2025
Вычисляемые столбцы в Power BI — шаги и примеры
Вычисляемые столбцы в Power BI — шаги и примеры

Кратко

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

Схема Power BI: вычисляемые столбцы и меры

Power BI отлично подходит для выполнения вычислений, но многие пользователи сталкиваются с проблемой добавления вычисляемого столбца. Ниже — понятная пошаговая инструкция и дополнительные рекомендации для аналитиков и разработчиков отчётов.

Введение

Коротко о терминах:

  • DAX — язык формул в Power BI. Используйте его для расчётов в мерах и вычисляемых столбцах.
  • Мера (measure) — агрегированное вычисление, зависящее от фильтров и контекста визуализации.
  • Вычисляемый столбец — значение, рассчитанное для каждой строки таблицы при загрузке или обновлении данных.

Ниже — практический кейс: пользователь хочет добавить столбец с формулой ([q’ty per unit of 3rd month] – [q’ty per unit of 2nd month]) * [Price per Unit of 3rd month].

Пример таблицы Power BI с колонками и матрицей

Шаги: как добавить вычисляемый столбец или меру

1. Создайте меру с помощью DAX

DAX (Data Analysis Expressions) — это язык формул. Меры часто гибче, чем вычисляемые столбцы, потому что подстраиваются под срезы и фильтры.

Пример меры, адаптированной под конкретные месяцы (вставьте в поле создания меры):

Result =
VAR qty_per_unit_of_3rd_month =
CALCULATE ( MAX ( Table[q’ty per unit] ), FILTER ( Table, Table[Month] = 3 ) )
VAR qty_per_unit_of_2rd_month =
CALCULATE ( MAX ( Table[q’ty per unit] ), FILTER ( Table, Table[Month] = 2 ) )
VAR Price_per_Unit_of_3rd_month =
CALCULATE ( MAX ( Table[Price per Unit] ), FILTER ( Table, Table[Month] = 3 ) )
RETURN
qty_per_unit_of_3rd_month – qty_per_unit_of_2rd_month * Price_per_Unit_of_3rd_month

Советы:

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

Важно: формула выше ориентирована на специфические номера месяцев (2 и 3). Если в отчёте используются слайсеры, лучше сделать меру, учитывающую выбранный диапазон.

2. Мера, реагирующая на слайсер (динамическая)

Если вы хотите сравнивать первый и последний выбранные месяцы в слайсере, используйте меру, которая опирается на ALLSELECTED:

Result =
VAR qty_per_unit_of_first_month_in_slicer =
CALCULATE ( MIN ( Table[q’ty per unit] ), ALLSELECTED ( Table ) )
VAR qty_per_unit_of_last_month_in_slicer =
CALCULATE ( MAX ( Table[q’ty per unit] ), ALLSELECTED ( Table ) )
VAR Price_per_Unit_of_last_month =
CALCULATE (
MAX ( Table[Price per Unit] ),
FILTER ( Table, Table[Month] = qty_per_unit_of_last_month_in_slicer )
)
RETURN
qty_per_unit_of_last_month_in_slicer – qty_per_unit_of_first_month_in_slicer * Price_per_Unit_of_last_month

Пояснение: эта мера автоматически подтягивает минимальное и максимальное значения по выбранным месяцам и выполняет расчёт для сравнения.

Альтернативные подходы

  • Вычисляемый столбец: полезен, если расчёт нужен на уровне строки и не зависит от выбора на отчёте. Но он увеличивает размер модели.
  • Power Query (M): делайте подготовку данных и предвычисления при загрузке. Подходит для сложных строковых преобразований и объединений.
  • Используйте временные таблицы (GENERATESERIES/ADDCOLUMNS) для скользящих окон и сравнений между периодами.

Когда расчёт может не сработать

  • В модели отсутствуют нужные индексы или дата-ключи.
  • Колонки содержат текст вместо чисел (нужна явная конвертация).
  • Неправильный контекст фильтрации: мера возвращает одно значение для всего визуала.
  • Дублирующиеся периоды без ключа строки приводят к неопределённости в MAX/MIN.

Мини-методология: как проверять расчёт

  1. Создайте вспомогательный визуал с полями Month, q’ty per unit, Price per Unit.
  2. Примените меру и сравните числа вручную на нескольких строках.
  3. Проверьте крайние значения (NULL, 0, отрицательные).
  4. Включите временный фильтр на конкретный месяц и сравните результат с ожиданием.

Чек-лист по ролям

  • Аналитик:
    • Проверил имена колонок.
    • Убедился, что данные типов numeric.
    • Сверил значения на 3–5 строках вручную.
  • Разработчик отчёта:
    • Добавил меру в модель.
    • Настроил формат вывода (валюта/десятичные).
    • Обработал пустые значения через IF or COALESCE.
  • Руководитель/тестировщик:
    • Принял отчёт по критериям приёмки.

Критерии приёмки

  • Мера возвращает ожидаемые значения для выбранных месяцев.
  • Формула устойчива к пустым значениям и ошибкам типов.
  • Производительность в пределах допустимого (отклик визуала за секунды при тестовых данных).

Краткая шпаргалка (cheat sheet)

  • ALLSELECTED(Table) — глубина фильтрации по слайсерам.
  • CALCULATE(expression, filters) — изменяет контекст вычисления.
  • VAR … RETURN — читаемая запись промежуточных результатов.
  • COALESCE(x, 0) — заменяет NULL на 0.

Пример диаграммы принятия решения

flowchart TD
  A[Нужен расчёт] --> B{Зависит ли расчёт от слайсеров?}
  B -- Да --> C[Создать меру 'measure' в DAX]
  B -- Нет --> D{Нужно ли хранить результат на уровне строки?}
  D -- Да --> E[Создать вычисляемый столбец]
  D -- Нет --> F[Предобработать в Power Query]

Глоссарий в одну строку

  • Мера (measure) — агрегированное вычисление, зависящее от контекста визуализации.

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

Похожие материалы:

  • Как добавить фильтры в Power BI — простые шаги
  • 5 бесплатных облачных бухгалтерских программ
  • Лучшее ПО для набора математических формул

Инструкция по DAX и слайсерам

Короткое резюме: меры гибкие и рекомендованы для расчётов, зависящих от слайсеров. Вычисляемые столбцы удобны для постоянных строковых значений, но увеличивают модель. Выберите подход в зависимости от цели, объёма данных и требуемой динамики отчёта.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Сброс Samsung при заблокированном телефоне
Мобильные устройства

Сброс Samsung при заблокированном телефоне

Как разогнать монитор через NVIDIA Control Panel
Гайды

Как разогнать монитор через NVIDIA Control Panel

APC_INDEX_MISMATCH: как исправить BSOD в Windows
Инструкции

APC_INDEX_MISMATCH: как исправить BSOD в Windows

Как исправить ошибку Blink 1011
Техническая поддержка

Как исправить ошибку Blink 1011

Восстановление удалённых SMS на Samsung
Мобильные

Восстановление удалённых SMS на Samsung

Как сбросить Samsung планшет до заводских настроек
Руководство

Как сбросить Samsung планшет до заводских настроек