Power Pivot: Оконные функции под соусом DAX
Работая в сфере аналитики и мониторя различные инструменты BI рано или поздно наталкиваешься на обзор или упоминание надстройки Power Pivot Excel. В моем случае знакомство с ним произошло на конференции Microsoft Data Day.
Особых впечатлений после презентации инструмент не оставил: Да, бесплатен (в рамках лицензии Office), да — есть некий ETL функционал в части получения данных с разрозненных источников (БД,csv,xls, и т.д.), Join-ов этих источников и скармливания в оперативку записей на порядки выше 1 млн.строк в Excel. Короче, посмотрел и забыл.
А вспомнить пришлось, когда появилась необходимость идентификации определённых явлений в данных
На написание данной статьи сподвигло то что в рунете по этому инструменту не много какой либо детальной информации о конкретных приемах работы, все больше о звездах, поэтому решил, изучая этот инструмент, написать данный обзор.
Собственно, постановка задачи (на обезличенном примере) следующая:
В исходных данных csv файла:

Есть торговые точки, детализированные до строк накладных, при этом допускается для точек с одинаковым наименованием иметь разные адреса только в том случае если они расположены в разных городах, но в исходном массиве данных есть точки, у которых попадаются разные адреса в одном и том же городе при том, что названия точек одинаковые (имя торговой точки уникально, т.е. это единица сети или отдельно стоящая точка). Как частный случай в агрегированном виде:

Поиску и очистке данных штатными средствами office мешают следующие обстоятельства:
• Детализация данных до строк накладной
• Количество записей в несколько миллионов строк
• Отсутствие sql инструментария (К примеру: Access — не в комплекте)
Конечно можно залить любую бесплатную СУБД (хоть десктоп версию, хоть серверную) но для этого во-первых нужны админские права, во-вторых статья была бы уже не про Power Pivot.
Задача: для каждой атомарной записи требуется дополнительное вычисляемое поле, которое посчитает для каждого наименования торговой точки уникальное количество адресов в рамках того же города. Данное поле требуется для быстрого нахождения всех имен торговых точек в городе, где адресов больше 1.
Думаю, удобнее всего решать и рассказывать итерационно, с допущением что у нас знания по DAX в зачаточном уровне.
Поэтому предлагаю пока оторваться от задачи и рассмотреть некоторые базовые аспекты.
Шаг 1. Чем отличается вычисляемый столбец от вычисляемой меры?
Вот пример вычисляемого столбца для выделения НДС из поля отгрузки с НДС используя встроенные формулы DAX:
=ROUND([Отгрузка с НДС]*POWER(1,18;-1)*0,18;2)

Как видно из примера вычисляемый столбец (Назовем его НДС) работает с каждой атомарной записью по горизонтали.
Теперь добавим вычисляемое поле для цены за штуку без НДС:
=ROUND([Отгрузка с НДС]*POWER(1,18;-1)/[Отгрузка шт];2)

Теперь для сравнения добавим в меру расчет средней цены за штуку:
Средняя цена за штуку без НДС: =ROUND(AVERAGE([Поле_Цена за штуку без НДС]);2)

Как видно из формулы, мера работает со столбцом исходных данных по вертикали, поэтому она всегда должна содержать в себе какую то работающую с множеством функцию (Сумму, среднюю, дисперсию и т.д.)
При возврате в сводную таблицу Excel это выглядит так:

Обратите внимание, если вычисляемое поле НДС на каждом уровне данных (зеленая обводка на уровне торговой точки, города или итого по таблице) показывает сумму, что в принципе – корректно, то сумма цен вычисляемого поля «Цена за штуку без НДС» (красная обводка) вызывает вопросы.
А вот вычисляемая мера «Средняя цена за штуку без НДС» вполне имеет право на жизнь в рамках данного аналитического куба.
Отсюда делаем вывод, что вычисляемое поле «Цена за штуку без НДС» является вспомогательным инструментом для расчета меры «Средняя цена за штуку без НДС» и дабы не смущать пользователя этим полем мы скроем его из списка клиентских средств, оставив меру средней цены.

Еще одно отличие меры от столбца – она позволяет добавить визуализацию:
К примеру, построим KPI степени разброса цен с целевой границей 35% путем деления корня из дисперсии на среднюю арифметическую.
К_вар:=STDEV.P([Поле_Цена за штуку без НДС])/AVERAGE([Поле_Цена за штуку без НДС])

В итоге видим такую таблицу в Excel (кстати расчетное вспомогательное поле цен уже не в списке доступных полей справа):

Двойной клик на 80%-м коэффициенте показывает, что цены действительно колбасит вокруг средней:

Cильнее чем при коэффициенте 15%:

Итак, на данном шаге мы рассмотрели основные отличия мер от полей в рамках PowerPivot.
Шаг 2. Усложняем: Посчитаем долю каждой записи в общих продажах.
Вот первый пример сравнения подходов оконных функций MS SQL Server и DAX:
Понятно, что в рамках сводных таблиц это делается буквально в 2 клика мышкой не касаясь клавиатуры, но для понимания попробуем это непосредственно в PowerPivot с применением формул.
На sql я бы это написал так (за огрехи не пинать, ибо Word синтаксис SQL Server не проверяет):
Здесь, как можно заметить окно открывается через все записи датасэта, попробуем аналогичную вещь в PowerPivot:
=[Отгрузка шт]/CALCULATE(SUM([Отгрузка шт]);ALL(‘Таблица1’))

Основное внимание обратим к знаменателю: Я уже упоминал выше что основное отличие вычисляемого поля от меры заключается в том что в поле формулы считают по горизонтали ( в рамках одной записи) а меры – по вертикали ( в рамках одного атрибута). Здесь мы смогли скрестить свойства поля и свойство меры через метод CALCULATE. И если ширину окна в SQL мы отрегулировали через Over() то здесь мы сделали это через All().
Попробуем теперь, обладая данным навыком, сделать с нашими данными что –нибудь полезное, например, вспомнив что показатель разброса цен вокруг средних варьировался в широком диапазоне, попробуем выделить статистические выбросы цен через правило 3-х сигм.
Оконные функции на sql будут смотреться так:
А вот то же самое в DAX:
=if(ABS([Поле_Цена за штуку без НДС]-CALCULATE(AVERAGE([Поле_Цена за штуку без НДС]);ALL(‘Таблица1’)))>(3*CALCULATE(STDEV.P([Поле_Цена за штуку без НДС]);all(‘Таблица1’)));1;0)

Как видите, цена несколько высоковата при средней арифметической 40,03 руб.
Шаг 3. Сужаем окна.
Попробуем теперь посчитать в вычисляемом поле каждой записи общее количество записей в рамках того города, к которому принадлежит и данная запись.
На MS sql Server оконные функции будут выглядеть так:
В DAX:
=CALCULATE(COUNTROWS(‘Таблица1’);ALLEXCEPT(‘Таблица1’;’Таблица1′[Город]))

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

Отчетлива видна разница: если обычный расчет количества адресов идет для каждой точки в городе и потом только выводит промежуточный итог для агрегата «Город» то использование оконных функций позволяет присвоить каждой атомарной записи значение любого агрегата, либо использовать его в каких-то промежуточных расчетах вычисляемого поля ( как было показано выше).
Возвращаемся к исходной задаче
Итак, напомню, исходная постановка задачи: для каждой атомарной записи требуется дополнительное вычисляемое поле, которое посчитает для каждого наименования торговой точки уникальное количество адресов в рамках того же города. Не забываем, что датасэт у нас детализирован до строк накладной, поэтому перед подсчетом адресов внутри окна их необходимо сгруппировать.
Запрос на SQL Server:
Теперь нам ничего не мешает это сделать и в DAX:

В итоге у нас появилась возможность отобрать подозрительные записи, где на одну и ту же точку в одном городе приходится более 1 адреса. 
Конечно в процессе изучения (пробежавшись взглядом на другие формулы) становится понятно что DAX в PowerPivot гораздо мощнее чем показано в данном топике, но объять необъятное за раз – точно не получится.
Data Modeling with Power Pivot — Getting Started
![]()
MS Excel has been undoubtedly the most popular spreadsheet program around, and due to its popularity, it has been a go-to tool for data analysts. Modern Excel (especially Microsoft 365) is full of useful features that make data analysis and visualization super easy.
Since 2013, MS Excel comes with some powerful data transformation and modeling tools. These features are known as Power Query & Power Pivot. Both are quite feature-loaded and relatively easy to learn.
This article is about how to get started with these two features. We can begin to analyze data for just under two minutes!
What is Power Pivot?
Most of us are familiar with Pivot tables in Excel. It is a handy tool when it comes to summarizing and analyzing the data quickly.
The usual pivot tables can summarize data from a single table only. Most of the cases, our data is stored across multiple related tables. So, before summarizing and analyzing data using a pivot table, we first combine multiple tables (using VLOOKUP).
Power Pivot simplifies this step. We can connect multiple tables and then use them as our regular pivot table.
In this following example, we can quickly see the total orders(from Orders table) by the managers(from Users table) that have returned(from Returns table) by each customer segment(from Customer table)
План-факт анализ в сводной таблице с Power Pivot и Power Query
В исходных данных имеем две таблицы. Скромную в дизайне, большую по размеру, но удобную в работе таблицу с фактическими значениями продаж, выгруженную из какой-нибудь учетной системы:
И «красивую» таблицу с плановыми помесячными показателями от руководства:
Задача: каким-то образом объединить обе таблицы в одну, чтобы наглядно отобразить выполнение плана по каждому товару, региону, месяцу, кварталу и т.д.
Необходимая оговорка
Можно, конечно, не напрягаться, и решать это дело привычным образом «в лоб». Т.е. с помощью 144 функций СУММЕСЛИМН (SUMIFS) вычислять суммарные продажи по каждому месяцу, товару и городу, а потом с помощью еще 144 формул вручную считать процент выполнения плана.
Потом мысленно взвыть, когда шеф скажет, что хотел видеть динамику по кварталам, а не по месяцам. И лучше в рублях, а не в процентах. И города лучше расположить по столбцам, а месяцы по строчкам. И не ной, у тебя вся ночь впереди, к утру чтоб было готово.
И в нашем примере всего 3 города и 4 товара. А если будет больше?
Давайте-ка лучше мы пойдем другим путем — чуть более сложным, но гораздо более гибким и удобным в перспективе.
Что мы будем делать
Думаю, никто не будет спорить, что самым удобным, гибким и мощным инструментом для анализа данных в Microsoft Excel являются сводные таблицы. Так что, в идеале, надо бы свести решение нашей задачи именно к ним.
Но как объединить в одной сводной две наших исходных таблицы? Плоскую таблицу продаж по дням и трехмерную таблицу плановых значений с детализацией по месяцам? Тут нам помогут 2 мастхэв надстройки для Excel:
- Power Query — встроена в Excel, начиная с 2016-й версии, для более ранних Excel 2010-2013 её можно бесплатно скачать с сайта Microsoft.
- Power Pivot — c 2013 года входит в состав большинства (но не всех, к сожалению) пакетов Microsoft Office. Для Excel 2010 (но не для более новых версий!) бесплатно качается, опять же, с сайта Microsoft.
Поехали, по шагам.
Шаг 1. Добавляем соединительные таблицы-справочники
Связать напрямую наши исходные таблицы факта и плана, к сожалению, никак не получится. Ни Power Pivot, ни, тем более, Excel не поддерживают пока связи «многие-ко-многим» (many-to-many), означающие, что в исходных таблицах могут встречаться дубликаты (а это как раз наш случай — названия товаров и городов встречаются в каждой таблице не по одному разу).
Поэтому нам потребуется создать «костыли» — промежуточные таблицы-справочники с уникальными значениями товаров, городов и дат, которые мы будем использовать для создания связей «один-ко-многим» (one-to-many), которые Power Pivot умеет делать на ура:

Для создания таблицы дат удобно использовать команду Главная — Заполнить — Прогрессия (Home — Fill — Progression) :
Шаг 2. Превращаем все таблицы в «умные» и даём им имена
Для загрузки таблиц в Power Pivot они должны быть «умными» (динамическими). Для этого с каждой таблицей проделываем следующее:
- Выделяем любую ячейку таблицы
- Жмем сочетание клавиш Ctrl + T или выбираем Главная — Форматировать как таблицу (Home — Format as Table) .
- В открывшемся окне проверяем корректность выделения диапазона (особенно для таблицы плана!) и включена ли галочка Таблица с заголовками (My table has headers) и жмем ОК.
- На вкладке Конструктор (Design) в левом верхнем углу даем таблице осмысленное имя вместо стандартных безликих Таблица1,2,3.
Я назвал наши таблицы, соответственно:
- таблПродажи
- таблТовары
- таблГеография
- таблКалендарь
- таблПлан
Шаг 3. Грузим первые 4 таблицы в Power Pivot
Первые четыре таблицы у нас в правильном виде, поэтому их можно смело загружать их в Модель данных — область памяти, с которой оперирует Power Pivot. Подключаем нашу надстройку через Файл — Параметры — Надстройки — Надстройки COM — Перейти (File — Options — Add-ins — COM Add-ins — Go) и убеждаемся, что на ленте появилась вкладка Power Pivot.
Теперь по очереди для каждой из первых четырёх таблиц, установив в неё активную ячейку, жмём на кнопку Добавить в модель данных (Add to Data Model) :
В старых версиях эта кнопка называлась Связанная таблица (Linked table) .
В итоге все наши таблички должны загрузиться в открывшееся окно Power Pivot на отдельные вкладки:
Шаг 4. Доводим до ума таблицу План
Прежде, чем загрузить в Модель данных Power Pivot таблицу с плановыми значениями, её нужно сначала подрихтовать: убрать в ней пустые строки и итоги, развернуть в плоскую, заполнить пустые ячейки в первом столбце городами и т.д. Проще и легче всего это проделать с помощью надстройки Power Query.
Сначала загрузим таблицу с планами в редактор запросов Power Query, используя кнопку Из таблицы/диапазона (From Table/Range) на вкладке Данные (Data) или на вкладке Power Query (если у вас старая версия Excel 2010-2013 и вы установили Power Query как отдельную надстройку):
Затем в открывшемся окне Power Query делаем следующее:
1 . Удаляем все пустые строки с null через Главная — Удалить строки — Удалить пустые строки (Home — Remove rows — Remove empty rows) .
2 . Удаляем строки с итогами, сняв соответствующую галочку в фильтре по столбцу Товар.
3 . Удаляем ненужный последний столбец ИТОГО, щелкнув по его заголовку правой кнопкой мыши — Удалить (Remove) .
4 . Заполняем пустые ячейки в первом столбце названиями городов из вышестоящих ячеек, щелкнув по заголовку столбца Город правой и выбрав Заполнить — Вниз (Fill — Down) .
5 . Разворачиваем 12 столбцов-месяцев в два: название месяца и его значение. Для это выделяем первых два столбца Город и Товар (удерживая клавишу Ctrl ), щёлкаем по их заголовку правой и выбираем команду Отменить свёртывание других столбцов (Unpivot Other Columns) .
6 . Чтобы преобразовать текстовые названия месяцев в нормальную даты — идём на хитрость:
- Добавляем перед датами единички через пробел с помощью команды Преобразование — Формат — Добавить префикс (Transform — Format — Add prefix)
- Аналогично добавляем после дат 2019 через Преобразование — Формат — Добавить суффикс (Transform — Format — Add suffix)
- Теперь, когда текст в этом столбце стал уже гораздо больше похож на дату, конвертируем всё его содержимое в даты, используя выпадающий список типов в шапке столбца:
7 . Столбец Атрибут переименовываем в Дата (двойным щелчком по заголовку столбца).
8 . Чтобы не путать исходную таблицу плана с преобразованной, изменим имя запроса на таблПлан 2 в правой панели Power Query (впоследствии это будет именем таблицы в Power Pivot).
9 . Выгружаем готовую таблицу в Модель данных Power Pivot, используя команды Главная — Закрыть и загрузить — Закрыть и загрузить в. (Home — Close&Load — Close&Load to. ) и выбираем затем в следующем окне опцию Только создать подключение (Only create connection) плюс, самое главное (!), включаем флажок Добавить эти данные в модель данных (Add this data to Data Model) :

После этого наша последняя таблица таблПлан должна загрузиться в окошко Power Pivot.
Шаг 5. Связываем таблицы
Теперь пришло время выполнить одно из самых важных действий — связать все имеющиеся у нас таблицы в единую модель, чтобы впоследствии иметь возможность строить сводную по всей модели, будто это одна таблица.
Для связывания в окне Power Pivot лучше переключиться в режим диаграммы с помощью кнопки Главная — Представление диаграммы (Home — Diagram View) или значком Диаграмма (Diagram) в правом нижнем углу окна. Прямоугольные окошки таблиц можно перетащить за строку заголовка и разложить любым удобным вам образом.
Связь делается очень просто: хватаем мышью столбец в одной из соединительных таблиц (таблТовары, таблГеография, таблКалендарь), тянем и бросаем на соответствующий столбец в таблицах таблПродажи и таблПлан2:
Главный принцип : тянем от таблиц-справочников (Товары, География, Календарь) к таблицам факта и плана. Делаем 6 связей — каждый справочник должен быть связан двумя связями с таблицами плана и продаж. В итоге должна получиться вот такая картина:
Обратите особое внимание на положение единичек и звёздочек на концах связей — это как раз и есть те самые связи «один-ко-многим», где звёздочка обозначает множество вхождений одного и того же элемента, а единичка — уникальность.
Если всё получилось, то сохраняем файл и выдыхаем — дело почти сделано.
Шаг 6. Строим сводную
Теперь на основе созданной модели данных можно построить сводную — для этого в окне Power Pivot выбираем команду Главная — Сводная таблица — Сводная таблица (Home — Pivot table — Pivot table) . Мы автоматически вернёмся в Excel, где увидим привычную панель для построения сводной таблицы в правой части экрана, но в ней будут видны уже все таблицы, а не только текущая (как обычно):
Теперь можно знакомым уже образом перетащить мышью нужные нам поля из таблиц в области сводной таблицы.
Главные принципы здесь такие:
- В области строк, столбцов и фильтра можно бросать только поля из таблиц-справочников (таблГеография, таблКалендарь, таблТовары).
- В область значений, где идут вычисления, можно закидывать только поля из таблиц факта и плана (таблПродажи, таблПлан2)
Например, можно накидать так:
Чтобы по столбцам даты шли не с шагом один день, а покрупнее — щёлкаем по любой дате в сводной правой кнопкой мыши и выбираем команду Группировать по (Group by) , а затем любой нужный уровень группировки:
В итоге должно получиться что-то уже очень похожее на то, что нам требуется:
Шаг 7. Добавляем меры для вычислений
Меры — это, упрощенно говоря, формулы внутри сводных. На самом деле, когда мы переносим мышью любое поле (например, Выручка) в область значений сводной таблицы, то «под капотом» создается неявная мера — что-то вроде:
Сумма по полю Выручка := SUM( таблПродажи[Выручка] )
Но контролировать процесс создания неявных мер мы не можем — Excel сам решает как её назвать, какую именно функцию (SUM или COUNT) использовать и т.д. Поэтому лучше создавать явные меры для сводной самостоятельно — в этом случае мы сможем контролировать все их параметры.
Для этого на вкладке Power Pivot выберем команду Меры — Создать меру (Measure — New measure) и в открывшемся окне задаём:

- Имя таблицы — место для хранения меры (можно выбрать любую таблицу — это не играет роли).
- Название меры — придумываем и вводим любое удобное название (можно на русском).
- Описание — по желанию.
- Формула — вводим формулу, по которой будет вычисляться мера. Можно использовать функции из встроенного в Power Pivot языка DAX (кнопка fx).
- Проверить формулу — чекает вашу формулу на предмет ошибок и выдаёт рекомендации по их исправлению.
- В нижней части окна можно сразу же задать числовой формат для меры, чтобы потом по 100 раз не настраивать его в сводной (как это бывает с обычными неявными мерами).
Повторяем процесс еще два раза:
- Создаем меру с именем Факт с формулой =SUM(‘таблПродажи'[Выручка]) и числовым форматом без копеек и с разделителем.
- Создаём меру Отклонение, которая использует две предыдущих созданных меры по формуле =[Факт]/[План]-1 и процентным форматом
Добавленные меры появятся в правой панели сводной таблицы с характерным значком:

Теперь их можно смело закидывать мышкой в нашу сводную и выполнять план-факт анализ в любых разрезах за считанные секунды:
Обновляется вся созданная красота (модель данных Power Pivot, запрос Power Query и сама сводная) одним движением — на вкладке Данные (Data) с помощью кнопки Обновить все (Refresh All) или сочетания клавиш Ctrl + Alt + F5 .
Возможные проблемы и их решения
В процессе реализации вы можете нарваться на несколько типичных «граблей»:
- Появляются странные ошибки в Power Pivot или сама вкладка Power Pivot неожиданно пропадает из Excel — отключите надстройку, перезапустите Excel и подключите её заново (см. Шаг 3). Обычно помогает.
- Не получается создать связь — проверьте, нет ли повторов в справочниках. В столбцах, используемых для связывания не должно быть (в таблицах-справочниках) дубликатов — это жёсткое требование Power Pivot.
- Какие-то странные результаты получаются в сводной — проверьте 1) правильно ли вы настроили связи 2) те ли поля вы используете для сводной (в области строк, столбцов и фильтра могут лежать только поля из справочников).
Если будут ещё какие-то сложности — пишите в комменты.
В любом случае, попробовать стоит — создав единожды такую обновляемую аналитическую систему, можно ещё долго радоваться ей в будущем 🙂
Power Pivot в Excel: как выгрузить данные из внешних источников и собрать их в одну базу
Инструкция со скриншотами. Разбираемся, для чего нужна и как работает надстройка Power Pivot для Excel.


Иллюстрация: Meery Mary для Skillbox Media

Power Pivot — встроенный инструмент Excel для обработки и анализа больших объёмов данных. С помощью неё в Excel загружают данные из нескольких источников разных форматов, моделируют их в одну базу и работают с ней дальше.
В Power Pivot нет ограничений по количеству строк. Excel позволяет работать только с 1 048 000 строк, а в Power Pivot их может быть гораздо больше. При этом производительность программы не уменьшается.
Поэтому Power Pivot точно пригодится в случаях, когда стандартный Excel не справляется с количеством данных и их форматами.
В статье разберёмся:
-
надстройка Power Pivot; в Power Pivot; в Power Pivot и создать базу данных; о работе в Excel.
При подготовке статьи мы использовали материалы курса Skillbox «Excel + Google Таблицы с нуля до PRO».
Для чего нужна надстройка Power Pivot и как она работает
Как мы сказали выше, Power Pivot расширяет стандартные возможности Excel и позволяет обрабатывать большое количество данных из разных источников.
Power Pivot — бесплатная надстройка для Excel. Для Excel 2010 года её нужно загружать отдельно с сайта Microsoft. Для версий после 2013 года она встроена в стандартную функциональность программы. К сожалению, Power Pivot не предусмотрен для macOS-версии Excel.
Работа в Power Pivot проходит в таком порядке:
-
из разных источников — например, из базы данных Microsoft Access, «1C», из текстовых файлов или электронных таблиц, из интернета.
- Настраиваем связи между загруженными данными — создаём модель данных. Для этого не нужна функция ВПР или другие поисковые функции Excel — в Power Pivot свои инструменты для объединения данных.
- Проводим дополнительные вычисления — при необходимости.
- Power Pivot строит на основе моделей данных необходимые отчёты — в виде сводных таблиц или диаграмм.
В следующих разделах разберём на примере, как загружать данные из внешних источников в Power Pivot, как их моделировать. А также покажем, как на основании этих данных создать отчёт в форме сводной таблицы.
Загружаем данные из внешних источников в Power Pivot
Предположим, у нас есть четыре файла разных форматов:
- данные о продажах книжного издательства → в формате TXT;
- справочник регионов → в виде базы данных в Access;
- справочник товаров → в XLS;
- ценовая политика → на слайде Power Point.

Данные о продажах. Это таблица с четырьмя столбцами — город, ID товара, дата продажи и количество проданных единиц — и более чем полутора миллионами строк.

Справочник регионов. В файле одна таблица, в которой перечислены все города России, субъекты и округа.

Справочник товаров. В этой таблице перечислены названия книг, их формат и ID‑номер.

Ценовая политика. Это слайд, где указаны актуальные цены на книги разных форматов.

Наша задача — связать данные из этих источников в одну базу. Для начала нужно загрузить эти данные в Power Pivot.
Шаг 1
Открываем пустой файл Excel и активируем надстройку Power Pivot
Для этого потребуется разблокировать вкладку «Разработчик». Переходим во вкладку «Файл» и выбираем пункты «Параметры» → «Настройка ленты». В открывшемся окне в разделе «Основные вкладки» находим пункт «Разработчик», отмечаем его галочкой и нажимаем кнопку «ОК» → в основном меню Excel появляется новая вкладка «Разработчик».
Теперь на этой вкладке нажимаем кнопку «Настройки COM», в появившемся окне выбираем Microsoft Power Pivot for Excel и жмём «ОК».

Готово — на панели появилась отдельная вкладка Power Pivot.
Шаг 2
Открываем окно Power Pivot
Для этого переходим на вкладку Power Pivot и нажимаем на кнопку «Управление».

Готово — открылось окно Power Pivot. Оно относится к файлу Excel, через который мы его открыли.

В этом окне нам нужно собрать данные из наших четырёх источников и настроить связи между ними.
Шаг 3
Выгружаем данные из баз данных
На вкладке «Главная» нажимаем кнопку «Из базы данных» и выбираем «Из Access».

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

В следующем окне появляется список всех таблиц, которые хранятся в выбранной базе данных.
В нашем случае она одна — «Справочник регионов». Выбираем её и нажимаем «Готово».

Начинается импорт выбранной таблицы в Power Pivot. После этого появляется окно с результатом. Проверяем информацию и нажимаем «Закрыть».

Готово — первые данные загрузились в Power Pivot. В окне появился отдельный лист «Справочник регионов», на нём отражена та же таблица, что была и во внешнем источнике.

Шаг 4
Выгружаем данные из текстового файла
На вкладке «Главная» нажимаем кнопку «Из других источников». В появившемся окне выбираем «Текстовый файл» и нажимаем «Далее».

В появившемся окне в поле «Имя базы данных» прописываем адрес, где хранится текстовый файл с данными о продажах.
После этого в нижней части окна появляется предпросмотр таблицы из источника данных.
При необходимости корректируем настройки — например, меняем вид разделителя столбцов или отключаем ненужные графы таблицы. Затем нажимаем «Готово».

Начинается импорт выбранной таблицы из текстового файла в Power Pivot. После этого появляется окно с результатом. Проверяем информацию и нажимаем «Закрыть».

Готово — в окне Power Pivot появилась вторая вкладка «Продажи» — на ней более полутора миллионов строк. Напомним, в Excel без надстройки могло бы поместиться около миллиона.

Шаг 5
Выгружаем данные из файла Excel
По аналогии с предыдущим шагом на вкладке «Главная» нажимаем кнопку «Из других источников». Во всплывшем окне выбираем «Файл Excel» и нажимаем «Далее».
В появившемся окне в поле «Имя базы данных» прописываем адрес, по которому хранится файл Excel со справочником товаров. Нажимаем «Далее»,

В следующем окне появляется список всех таблиц, которые хранятся в выбранной базе данных.
В нашем случае она одна — «Справочник товаров». Выбираем её и нажимаем «Готово».
Снова происходит импорт и появляется окно с результатом.

В окне Power Pivot появилась третья вкладка «Справочник товаров». Также со всеми данными, которые хранились в первоисточнике — внешнем файле Excel.

Шаг 6
Выгружаем данные из файла Power Point
В этом случае выгрузить данные можно только методом «копировать — вставить».
Открываем файл Power Point, содержащий ценовую политику. Выделяем таблицу, нажимаем правую кнопку мыши и выбираем «Скопировать».

Затем возвращаемся в окно Power Pivot и на любой вкладке нажимаем кнопку «Вставить» на главной панели.

В появившемся окне вводим имя таблицы — «Цены» — и нажимаем «ОК».

Готово — в окне Power Pivot появилась четвёртая вкладка «Цены».

Важно понимать, что при таком варианте выгрузки данных — копировании и вставке — таблица не будет обновляться, если внести изменения в исходный файл Power Point.
В предыдущих трёх вариантах — при загрузке таблиц из базы данных, текстового файла и файла Excel — в случае изменения данных в исходных файлах они также изменятся и в Power Pivot. Ниже показываем, как это сделать.
Шаг 7
Обновляем данные из внешних источников в Power Pivot
Для этого на главной панели любой вкладки нужно нажать кнопку «Обновить», затем «Обновить все».

Появится окно, где будет видно, какие вкладки обновляются. В нашем случае это только первые три вкладки.
Обновление проходит быстро — примерно за 10–15 секунд обновляются три вкладки, в одной из которых более полутора миллионов строк.
Файл из Power Point придётся обновлять вручную.

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

В этом режиме отображения каждая таблица показана в виде прямоугольника, в котором перечислены её столбцы. Для удобства эти прямоугольники можно двигать и менять местами.
В этом же режиме отображения в Power Pivot настраивают связи между таблицами.
Шаг 2
Настраиваем связи между данными таблиц
Первая связь. В таблице «Продажи» есть столбец «Город», но нет столбцов «Субъекты» и «Округ». Все эти столбцы, включая столбец «Город», есть в таблице «Справочник регионов».
Соответственно, чтобы объединить данные этих двух таблиц, нужно создать связь по столбцу «Город». Для этого нужно зажать мышкой такой столбец в одной из таблиц и перетянуть его во вторую таблицу. Между таблицами появится линия.

Готово — между таблицами «Справочник регионов» и «Продажи» появилась связь по столбцу «Город». Теперь у каждой строки продаж будет указан не только город, но также субъект и округ.

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

Названия столбцов, по которым строят связи между таблицами, не обязательно должны быть одинаковыми. Главное, чтобы в таких столбцах хранилась аналогичная информация. В нашем случае это ID-номера книг.
При этом Power Pivot не проверяет самостоятельно, правильно ли настроена связь — совпадают ли данные столбцов двух таблиц, — поэтому проводить связи между таблицами нужно внимательно.
Третья связь. Теперь к уже объединённым данным нужно добавить цены. Они хранятся в четвёртой таблице. Настроим связь между ней и таблицей «Справочник товаров» по столбцу «Формат».
Благодаря этой связи в «Справочнике товаров» появится информация о ценах на книги.

Готово. Мы построили модель из четырёх таблиц из разных источников и связали данные этих таблиц по идентичным столбцам. Чтобы увидеть результат, нужно создать сводную таблицу.
Шаг 3
Создаём сводную таблицу.
На главной вкладке нажимаем кнопку «Сводная таблица».

Дальше выбираем, на каком листе нужно создать сводную таблицу — на новом или на существующем.

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

Панель «Поля сводной таблицы» состоит из двух частей. В верхней части находится список полей — в нашем случае Power Pivot перенёс в список полей данные четырёх таблиц, которые мы связали между собой. В нижней части — четыре области: «Значения», «Строки», «Столбцы» и «Фильтры». У каждой области своё назначение.
Чтобы создать отчёт сводной таблицы, нужно выбрать необходимые поля из списка полей и перенести их в нужную область.
Подробнее о назначении областей, а также о том, как строить и настраивать сводные таблицы в стандартной версии Excel, говорили в этой статье Skillbox Media.
Для примера построим отчёт в форме сводной таблицы, который покажет количество продаж издательства в субъектах России с детализацией по формату книг.
Для этого в область «Строки» перенесём поля «Округ» и «Субъект» из «Справочника регионов», в область «Значения» — поле «Количество» из таблицы «Продажи», в область «Столбцы» — поле «Формат» из «Справочника товаров».

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