Перейти к содержимому
8 (495) 660-36-72 8 (800) 600-36-72 (по РФ бесплатно)
Компьютерные навыки Обновлено: 26 июля 2026

Power Pivot в Excel: модель данных, связи таблиц и первые меры DAX

Power Pivot превращает набор отдельных таблиц Excel в связанную модель данных: справочники фильтруют таблицу операций, а меры DAX рассчитывают результат в контексте отчёта. Начинать лучше не со сложных формул, а с чистых ключей, звёздной схемы и трёх проверяемых мер. Power Query при этом подготавливает данные, а Power Pivot связывает и анализирует их.
Power Pivot в Excel: модель данных, связи таблиц и первые меры DAX

Когда нужен Power Pivot

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

Технология полезна при большом числе строк, нескольких источниках, повторяющихся отчётах и необходимости единых расчётов. Microsoft описывает Power Pivot как средство моделирования данных в Excel: оно создаёт модели, отношения и вычисления. В современной экосистеме Excel Power Query обычно загружает и преобразует данные, модель данных хранит связи, а Power Pivot добавляет расширенное моделирование и DAX.

Power Pivot не исправляет плохую структуру автоматически. Дубли в ключах, несогласованные типы, смешение фактов и справочников приводят к пустым результатам или неверным итогам. Сначала проектируют модель, затем пишут меры.

Power Query, модель данных и Power Pivot

КомпонентОсновная задачаПример
Power QueryПолучить и преобразовать данныеОбъединить файлы, изменить типы, удалить лишние столбцы
Модель данныхХранить таблицы и связиСвязать продажи с товарами и календарём
Power PivotУправлять моделью и расчётамиСоздать меры DAX и иерархии
Сводная таблицаПоказать и фильтровать результатВыручка по месяцам и категориям

Правильный поток выглядит так: источник → Power Query → модель данных → связи и DAX → сводная таблица. Не загружайте промежуточный результат на лист только ради повторного импорта, если его можно сразу направить в модель. Но сохраняйте понятный слой контроля, где видны количество строк, ключевые суммы и дата обновления.

Наличие вкладки Power Pivot зависит от версии и редакции Excel и настройки надстройки. Проверьте состав вашей установки и включение COM-надстройки. Сам файл с моделью может открываться на другом компьютере, но возможности редактирования и обновления зависят от поддерживаемой среды.

Как устроена звёздная схема

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

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

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

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

Как создать и проверить связи

Загрузите таблицы в модель и откройте представление диаграммы. Соедините `Товары[ТоварID]` с `Продажи[ТоварID]`, `Клиенты[КлиентID]` с `Продажи[КлиентID]`, `Календарь[Дата]` с `Продажи[Дата]`. На стороне справочника значение должно быть уникальным; на стороне фактов оно может повторяться.

Если связь не создаётся, проверьте типы данных. Текстовый код `00125` не равен числу `125`, а дата-время может не совпасть с чистой датой из календаря. Приводите тип в Power Query до загрузки. Не удаляйте ведущие нули из идентификатора, если они являются частью кода.

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

Меры и вычисляемые столбцы

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

Первая мера выручки: `Выручка := SUM(Продажи[Сумма])`. Мера количества: `Количество := SUM(Продажи[Количество])`. Средняя цена: `Средняя цена := DIVIDE([Выручка];[Количество])`. Функция `DIVIDE` безопаснее прямого деления, потому что умеет корректно обрабатывать нулевой знаменатель.

Названия функций DAX обычно пишутся на английском, а разделитель аргументов зависит от региональных настроек. Ссылайтесь на меры в квадратных скобках, а на столбцы — с именем таблицы. Отдельная таблица «Меры» помогает хранить расчёты в одном месте, но не меняет логику модели.

Нужно получитьВыборПочему
Сумму в своднойМераМеняется с фильтрами
Категорию каждой строкиСтолбец или источникРезультат на уровне строки
Долю от общего итогаМераНужен контекст отчёта
Ключ объединенияИсточник или Power QueryЧасть структуры данных

Контекст фильтра и CALCULATE

Одна и та же мера `Выручка` показывает разные числа в строках сводной таблицы, потому что каждая строка создаёт свой контекст фильтра. Категория «Оборудование» фильтрует справочник товаров, связь передаёт фильтр на продажи, а `SUM` складывает только оставшиеся строки.

`CALCULATE` изменяет контекст вычисления. Например, мера `Выручка выбранного канала := CALCULATE([Выручка];Каналы[Тип] = "Онлайн")` добавляет фильтр канала. Сложность DAX возникает не из-за арифметики, а из-за того, какие строки видит выражение. Перед формулой проговорите контекст словами.

Не используйте `CALCULATE` как случайную попытку исправить итог. Сначала проверьте схему и базовую меру. Затем добавляйте один фильтр и сравнивайте результат с ручной выборкой. Если итог строки верен, а общий итог кажется неожиданным, помните: мера пересчитывается в контексте итога, а не всегда складывает видимые ячейки.

Мини-модель продаж и контрольный расчёт

Таблица `Продажи` содержит четыре строки: товар A — 2 единицы на 1 000 рублей, товар B — 1 единица на 800 рублей, товар A — 3 единицы на 1 500 рублей, товар C — 4 единицы на 2 000 рублей. В `Товары` записаны A и B в категории «Базовая», C — в категории «Премиум». Общая выручка равна 5 300 рублей, количество — 10, средняя цена — 530 рублей.

После связи по коду товара сводная должна показать 3 300 рублей для базовой категории и 2 000 рублей для премиальной. Контроль: 3 300 + 2 000 = 5 300. Если товар C отсутствует в справочнике, общая мера по фактам может остаться 5 300, но строка по категории потеряет 2 000. Именно поэтому нужен отчёт по несвязанным ключам.

Добавьте календарь и разнесите операции по двум месяцам. Мера выручки не меняется, а разрез по месяцу появляется без нового столбца в таблице продаж. Затем проверьте фильтр категории и месяца одновременно. Это демонстрирует главное преимущество модели: один расчёт работает во всех согласованных разрезах.

Типичные ошибки модели

СимптомПричинаИсправление
Связь не создаётсяДубли на стороне «один»Очистить справочник и определить ключ
Пустые категорииНет соответствующего ключаОтчёт несопоставленных значений
Завышенный итогНеверная детализация или дубли фактовОпределить grain и сверить строки
Фильтр не действуетНет активного пути связиПроверить диаграмму и направление
Файл разрастаетсяЛишние столбцы и высокая кардинальностьУдалить ненужное до загрузки
Мера даёт неожиданный итогКонтекст пересчитываетсяРазобрать фильтры и формулу

Не скрывайте пустые элементы сразу фильтром. Сначала выясните, это допустимое «не определено» или потерянная связь. У каждого справочника полезно иметь техническую строку «неизвестно» только при осознанной политике обработки, а не как способ замаскировать качество данных.

Удаляйте из модели длинные текстовые поля, технические GUID и точные временные метки, если они не нужны в анализе. Чем выше число уникальных значений, тем хуже сжатие. При этом не удаляйте ключ, необходимый для трассировки и контроля.

Порядок создания первой рабочей модели

  1. Опишите вопрос отчёта и уровень детализации факта.
  2. Загрузите источники через Power Query и назначьте типы.
  3. Удалите ненужные столбцы до загрузки в модель.
  4. Проверьте уникальность ключей справочников.
  5. Создайте простые связи «один ко многим».
  6. Добавьте базовые меры суммы, количества и отношения.
  7. Соберите сводную и сравните с ручным контрольным примером.
  8. Проверьте несвязанные ключи и пустые значения.
  9. Только затем добавляйте `CALCULATE` и временную аналитику.

Архитектуру и возможности сверяйте по официальному обзору Power Pivot от Microsoft. Различия мер, вычисляемых столбцов и контекста описаны в официальном обзоре DAX, а совместную роль подготовки и моделирования — в материале Power Query и Power Pivot.

Практика вместо теории

Постройте связанную модель Excel и научитесь проверять меры DAX.

На курсе по Excel и Google Таблицам вы освоите подготовку, моделирование и анализ данных и соберёте расчёты, которые сохраняют логику при обновлении отчёта.

Хорошая модель начинается с уровня детализации, чистых ключей и связей; DAX становится предсказуемым, когда структура данных уже проверена.

Вопросы и ответы

По теме