Основы Power BI для начинающих: первый отчёт, DAX и публикация

Основы Power BI для начинающих: первый отчёт, DAX и публикация

Обновлено 3 сентября 2026 года.

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

Что понадобится: Power BI Desktop в поддерживаемой Windows-среде и учебный набор CSV, DAX и проверок. Данные придуманы специально для задания: 6 строк заказов и 3 товара. Для локального упражнения не нужны платная подписка, Copilot или доступ к рабочей базе. Публикация в сервисе — отдельный, необязательный для упражнения этап.

В архиве нет готового PBIX: вы создаёте модель самостоятельно. Файл README объясняет загрузку, Expected.csv содержит эталонные итоги, verify.py независимо проверяет арифметику на Python. Формулы DAX сверены с документацией Microsoft; выполнение в движке Power BI не входило в проверку архива.

Содержание: части Power BI · установка · учебные данные · Power Query · связи · меры DAX · первый отчёт · проверка ошибок · режимы хранения · публикация и лицензии.

Что такое Power BI: Desktop, сервис, модель и отчёт

Разделяйте данные, правила расчёта и их отображение. Семантическая модель содержит таблицы, связи и вычисления. Отчёт обращается к модели и показывает результат на одной или нескольких страницах. Несколько отчётов могут использовать общую модель. Прежнее название dataset («набор данных») всё ещё встречается в API и некоторых действиях коннекторов.

Инструмент Задача Что важно начинающему
Power BI Desktop Подготовить данные, модель, меры и отчёт; сохранить PBIX Бесплатное приложение для Windows; в нём выполняется наше упражнение
Power BI service Публиковать содержимое, выдавать доступ, управлять обновлением и рабочими областями Работает в браузере; также поддерживает создание отчётов и определённые сценарии редактирования моделей
Power BI Mobile Просматривать доступные отчёты с телефона Для удобства читателя автор готовит мобильный макет
Report Builder / Report Server Постраничные печатные формы / локальное размещение отчётов Это отдельные инструменты; для первой лабораторной они не нужны

Отчёт и dashboard — разные объекты. В сервисе dashboard представляет собой одностраничный холст с закреплёнными плитками, в том числе из разных отчётов. Интерактивную страницу с графиками в Desktop обычно называют дашбордом в разговоре, но технически это страница отчёта. Описание dashboards Microsoft.

Как установить Power BI Desktop

  1. Откройте официальную страницу загрузки Microsoft. Установите приложение через Microsoft Store либо скачайте установщик. Версия из Store обновляется автоматически.
  2. Используйте поддерживаемую актуальную версию и проверьте требования к Windows и архитектуре устройства. 32-битная версия Desktop больше не поддерживается. Минимальные требования к памяти не означают, что её хватит для большого рабочего проекта.
  3. Запустите Desktop, создайте пустой отчёт и сохраните его как first-report.pbix. Сохраните CSV в постоянную папку: путь потребуется при обновлении.

Нативного Desktop для macOS и Linux нет. Можно работать в совместимой Windows-среде или использовать доступные возможности сервиса в браузере. Проверяйте поддержку конкретного устройства и сценария виртуализации. Для сервиса требуется подходящая рабочая или учебная учётная запись и разрешения организации.

Учебный проект: откуда должны получиться 20 100

Задача отчёта: показать сумму заказанных товаров, условную маржу и число заказов по товарам и месяцам. Одна строка Salesодна позиция заказа. Заказ O1001 занимает две строки. Все суммы выражены в одной условной валюте; налоги, доставка, возвраты и скидки в этом задании отсутствуют. Показатель Revenue здесь означает сумму позиций заказа, а не правило признания бухгалтерской выручки.

Строка Заказ Дата заказа Товар ID Кол-во Цена за единицу Себестоимость единицы
1 O1001 30.01.2026 101 2 1 000 600
2 O1001 30.01.2026 102 1 3 000 1 800
3 O1002 31.01.2026 101 1 1 200 600
4 O1003 01.02.2026 102 2 2 800 1 800
5 O1004 02.02.2026 103 1 5 000 3 500
6 O1005 03.02.2026 101 3 1 100 600

Проверка на бумаге: 2 × 1 000 + 1 × 3 000 + 1 × 1 200 + 2 × 2 800 + 1 × 5 000 + 3 × 1 100 = 20 100. Себестоимость тех же позиций — 12 500, разница — 7 600. Если программа показывает другое, искать причину нужно до оформления графиков.

В Products.csv ID 101 — мышь, 102 — клавиатура, 103 — монитор. В Calendar.csv находятся все 365 дат 2026 года. Поля ShipDate и Channel в Sales пригодятся в следующих упражнениях; для первого отчёта достаточно даты заказа и товара.

Шаг 1. Загрузите и подготовьте данные в Power Query

  1. Выберите «Получить данные → Текст/CSV», откройте Sales.csv и нажмите «Преобразовать данные». Для файлов набора выберите UTF-8 и разделитель «запятая».
  2. Назовите запрос Sales. Проверьте, что первая строка стала заголовками, а в таблице осталось 6 строк данных.
  3. Для LineID, ProductID и Quantity задайте целое число. Для UnitPrice и UnitCost — фиксированное десятичное число. Для OrderID и Channel — текст. Для OrderDate и ShipDate — «Дата».
  4. Пустая ShipDate в строке 5 должна остаться null: заказ ещё не отгружен. Не заменяйте её нулём, текущим днём или произвольной старой датой.
  5. Таким же способом загрузите Products.csv и Calendar.csv. Назовите запросы Products и Calendar. В Calendar столбец Date имеет тип «Дата», Year и MonthNo — целое число, YearMonth — текст.
  6. Убедитесь, что в Products 3 строки, в Calendar 365. Нажмите «Закрыть и применить».

Power Query сохраняет последовательность преобразований на языке M. При обновлении она применяется повторно. Если дата или число распознаются неверно, проверьте формат исходного текста и преобразование «с использованием языкового стандарта». Замена всех ошибок на null может скрыть потерю значений. Типы данных и локаль Power Query.

Читай также:  Хранение данных в Power BI: Import, DirectQuery, Dual и Direct Lake

Что проверять в собственном Excel: одна строка заголовков, отсутствие объединённых ячеек и промежуточных итогов внутри выгрузки, стабильные имена столбцов. Итоговая строка из Excel не должна попадать в факты вместе с детализацией — иначе вы посчитаете сумму дважды. При Append строки добавляются, включая повторы; при Merge число строк может увеличиться, если справа найдено несколько соответствий.

Не удаляйте повторы по названию товара или номеру заказа вслепую: в нашем примере повтор O1001 необходим. Проверять уникальность нужно по LineID, потому что именно он определяет строку факта. Подробнее о преобразованиях — в отдельном руководстве по Power Query.

Шаг 2. Создайте модель и две связи

В представлении модели проверьте автоматически созданные связи и настройте следующие. Направление фильтрации — одностороннее, от справочника к Sales; обе связи активны.

Сторона «1» Сторона «много» Что делает связь
Products[ProductID] Sales[ProductID] Выбор товара ограничивает соответствующие строки заказов
Calendar[Date] Sales[OrderDate] Выбор периода ограничивает заказы по дате оформления

На стороне «1» ключи не должны повторяться. Типы ключей на обоих концах связи должны быть совместимы. Название товара берите в визуалы из Products, период — из Calendar. Эта небольшая схема разделяет справочники для группировки и факты для суммирования. Принцип схемы «звезда».

Пометьте Calendar как таблицу дат по столбцу Date. В этом упражнении используется явный календарь, а не автоматически создаваемая иерархия Sales[OrderDate]. Для классических функций анализа времени важны уникальные непрерывные даты без пустых значений и полные годы. Скрытые таблицы Auto date/time и календарный анализ времени имеют собственные условия. Требования к таблицам дат.

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

Шаг 3. Создайте меры DAX

Выберите «Новая мера» и вводите каждое определение отдельно. Имена таблиц и полей должны совпадать с набором. Ниже используется синтаксис с запятыми; при включённых локализованных разделителях настройка редактора может отличаться.

Revenue = SUMX(Sales, Sales[Quantity] * Sales[UnitPrice])

Cost = SUMX(Sales, Sales[Quantity] * Sales[UnitCost])

Margin = [Revenue] - [Cost]

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

Orders = DISTINCTCOUNT(Sales[OrderID])

Units = SUM(Sales[Quantity])

SUMX перебирает видимые строки, вычисляет произведение количества и цены, затем складывает результаты. Формула SUM(Quantity) * SUM(UnitPrice) не подходит: она перемножит общие суммы вместо расчёта каждой позиции. Описание SUMX.

Мера Orders считает уникальные номера заказов. COUNTROWS(Sales) даст 6 позиций, а Orders — 5 заказов. Пустых OrderID в нашем наборе нет; в рабочем источнике их нужно диагностировать, поскольку DISTINCTCOUNT учитывает BLANK как отдельное значение. Поведение DISTINCTCOUNT.

Для Margin % задайте формат процента с двумя десятичными знаками. Значение 0,378109… отобразится как 37,81%; дополнительно умножать меру на 100 не нужно. DIVIDE без альтернативного результата возвращает BLANK при нулевом знаменателе. Деление и нулевой знаменатель.

Чем мера отличается от вычисляемого столбца

Столбец описывает строку: например, месяц заказа или категория. Мера отвечает на вопрос по выбранному набору строк: сколько заказов осталось после выбора товара и периода. В Import значения вычисляемого столбца хранятся в модели, а результат меры рассчитывается в контексте запроса. Для группировки нужен столбец; для динамической маржинальности — мера. Это объясняет, почему среднее построчных процентов часто даёт неправильный итог.

Power Query и DAX решают разные задачи: первый готовит данные, второй задаёт вычисления модели. В учебном Import-проекте очистку выполняем при загрузке, а интерактивные показатели считаем мерами. Для DirectQuery это разделение по моменту выполнения сложнее.

Шаг 4. Постройте первый отчёт

  1. Добавьте карточки Revenue, Margin % и Orders. Без фильтров они должны показать 20 100, 37,81% и 5.
  2. Добавьте матрицу. В строки поместите Products[Product], в значения — Revenue, Cost, Margin, Orders.
  3. Добавьте срез Calendar[YearMonth]. Используйте именно этот столбец: одно название «Январь» без года объединит разные годы при расширении данных.
  4. Добавьте столбчатую диаграмму Revenue по Products[Product]. Сначала настройте понятные подписи и единицы измерения, затем оформление.
  5. Выберите месяц и товар, проверьте изменение карточек. В Edit interactions убедитесь, что визуалы фильтруются или подсвечиваются именно так, как вы задумали.
Выбор Revenue Cost Margin Orders
Все данные 20 100 12 500 7 600 5
2026-01 6 200 3 600 2 600 2
2026-02 13 900 8 900 5 000 3
Мышь, все даты 6 500 3 600 2 900 3
Мышь, 2026-01 3 200 1 800 1 400 2

Почему в строках матрицы заказов 3 + 2 + 1, а в итоге 5? O1001 содержит и мышь, и клавиатуру, поэтому участвует в двух товарных строках. В общем итоге это по-прежнему один заказ. Power BI пересчитывает меру для общего контекста; складывать значения уникального количества по товарам здесь неправильно.

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

Если цифры не сходятся: порядок диагностики

Симптом Что проверить
У каждого товара одинаковые 20 100 Есть ли активная связь Products → Sales; из какой таблицы взят товар; не снимает ли мера нужный фильтр
Заказов получилось 6 Не считаете ли вы строки или LineID вместо уникальных OrderID
После объединения сумма выросла Сколько совпадений на ключ в правой таблице Merge; нет ли повторных загрузок периода или итоговой строки
При выборе даты данные исчезли Тип Date против DateTime, диапазон календаря, активная связь и столбец, из которого построен срез
Процент завышен в 100 раз Не совмещены ли умножение на 100 и процентный формат
Есть пустая категория товара Пустые и отсутствующие в Products ключи Sales; не скрывайте их до сверки суммы
Общий итог верен, отдельные товары — нет Соответствие ProductID названиям, направление фильтрации, скрытые фильтры визуала
Читай также:  Аналитика малого бизнеса: конверсия, средний чек, ABC и RFM

Проверьте исходную сумму, затем одну позицию, один заказ и один период. Такое сужение быстрее случайной замены DAX-функций. Контрольные числа и CSV сохраните рядом с PBIX: они пригодятся после изменения модели.

Import, DirectQuery, Direct Lake и подключение к общей модели

Вариант Как работает Что учитывать
Import Загружает данные в модель; изменения источника поступают при обновлении Для нашего CSV-проекта подходит. Размер и скорость зависят от модели и ресурсов
DirectQuery Отправляет поддерживаемые запросы источнику с учётом кэширования Нужны подходящий источник, приемлемая задержка и запас ресурсов для одновременных пользователей
Direct Lake Использует Delta-таблицы в OneLake в поддерживаемых сценариях Fabric Требует соответствующей инфраструктуры и ёмкости; обновление метаданных модели сохраняется
Live connection Отчёт использует уже подготовленную семантическую модель Это способ подключения к модели, а не ещё один режим хранения CSV внутри неё

DirectQuery не означает гарантированное «реальное время», а Direct Lake — отсутствие обновлений. Выбор зависит от допустимого возраста данных, доступности источника, объёма и времени ответа. DirectQuery, Direct Lake.

Публикация, обновление данных и безопасный общий доступ

Перед публикацией учебный PBIX должен пройти проверки выше. Затем войдите в Power BI service, выберите доступную рабочую область и опубликуйте отчёт из Desktop. Права на рабочую область и лицензия — разные условия: наличие подписки не выдаёт доступ к чужому содержимому автоматически.

Какая лицензия нужна

Сценарий Что проверять
Учиться и строить локальный PBIX Desktop бесплатен; наш набор можно обработать без публикации
Обмениваться отчётами в обычной общей ёмкости Авторам и читателям нужны подходящие Pro/PPU лицензии и права
Просматривать содержимое PPU workspace Обычно нужна PPU у каждого потребителя этого содержимого
Дать просмотр пользователям Free на Fabric Для этого сценария требуется F64 или выше; меньшая F SKU не заменяет лицензии зрителей. Авторские права и лицензии проверяют отдельно

Это ориентир для выбора сценария, а не расчёт стоимости договора. Проверьте возможности по типам лицензий и актуальные цены Microsoft.

Почему облачный отчёт не увидел новый CSV

Сохранение PBIX, обновление данных модели и перерисовка открытого отчёта — разные действия. Если CSV остался на вашем диске, сервису нужен настроенный доступ к этому источнику, обычно через on-premises data gateway на доступной машине. Выключенный ноутбук или недоступный путь остановят обновление. Перенос файла в облако тоже требует настройки подходящего подключения и учётных данных. Шлюз данных.

В общей ёмкости доступно до 8 обновлений в сутки по расписанию и REST API суммарно; ручной Refresh now в интерфейсе не входит в этот лимит. Для Premium/PPU/Fabric расписание допускает до 48 запусков, а программные обновления зависят от ресурсов и способа запуска. Проверяйте историю завершения, а не только факт нажатия кнопки. Правила обновления.

Учебная проверка: временно поменяйте количество в строке 1 с 2 на 3, обновите модель и убедитесь, что Revenue вырос с 20 100 до 21 100. Затем верните CSV к исходному состоянию и повторите обновление. В Desktop проверяется локальная загрузка; в сервисе то же изменение дополнительно проверяет подключение и шлюз.

Как не открыть рабочие данные всему интернету

Для коллег используйте управляемый общий доступ или приложение Power BI. Команда Publish to web делает материал публичным без аутентификации и не подходит для внутренних данных. Это отдельная функция, отличная от обычной публикации PBIX в рабочую область. Предупреждение Microsoft о публичной публикации.

Если пользователи должны видеть разные строки, проектируйте RLS и проверяйте отчёт под обычным зрителем. Роли Admin, Member и Contributor в рабочей области не ограничиваются RLS так же, как Viewer. Передача PBIX и экспорт данных требуют отдельного внимания к содержимому файла. Как работает RLS.

Когда переходить к Fabric, Copilot и другим инструментам

Power BI входит в Microsoft Fabric, но первое знакомство не требует проекта в OneLake или освоения всех нагрузок Fabric. Copilot может помогать с отчётами и DAX при выполнении требований к оплаченной ёмкости, региону и настройкам организации; одна PPU не обеспечивает доступ. Сгенерированную формулу проверяйте теми же контрольными числами. Требования и возможности Copilot.

Если нужна запись комментария из отчёта или запуск процесса, изучите интеграцию с Power Apps и Power Automate. Обычный Import-отчёт сам по себе не является интерфейсом изменения исходной базы.

Что должно получиться после упражнения

У вас есть PBIX с тремя таблицами, двумя проверенными связями, шестью мерами и страницей отчёта. Общая сумма совпадает с CSV; фильтры товара и месяца дают ожидаемые значения; 5 заказов не смешиваются с 6 позициями. Сохраните модель вместе с исходными файлами и контрольной таблицей.

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