Power Pivot — обзор и обучение. Power Pivot: Оконные функции под соусом DAX Что такое powerpivot в excel

Power Pivot является надстройку, можно использовать для проведения глубокого анализа в Excel. Надстройка встроен в некоторых версиях Office, но по умолчанию не включена.

Список версий Office, включая Power Pivot, а также список версий, которые не рекомендуется, ознакомьтесь со статьей: где такое PowerPivot?

Ниже описано, как включить Power Pivot перед использованием в первый раз.

    Перейдите на вкладку Файл > Параметры > Надстройки .

    В поле Управление выберите Надстройки COM и нажмите Перейти .

    Установите флажок Microsoft Office Power Pivot и нажмите кнопку ОК . Если установлены другие версии Power Pivot, то они будут также перечислены в списке надстроек COM. Выберите надстройку Power Pivot для Excel.

На ленте появится вкладка Power Pivot.

Откройте окно Power Pivot.

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

Устранение неполадок: исчезновение ленты Power Pivot

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

    Выберите Файл > Параметры > Надстройки .

    В поле Управление выберите Отключенные объекты > Перейти .

    Выберите Microsoft OfficePower Pivot и нажмите кнопку Включить .

Если не удается восстановить ленту Power Pivot, выполнив указанные выше действия, или лента исчезает, когда вы закрываете и снова открываете Excel, сделайте следующее:

    закройте Excel;

    откройте меню Пуск > Выполнить и введите команду regedit;

    В редакторе реестра разверните следующий раздел:

    Для Excel 2013: HKEY_CURRENT_USER > Software > Microsoft > Office > 15.0 > User Settings .

    Для Excel 2016: HKEY_CURRENT_USER > Software > Microsoft > Office > 16.0 > User Settings

    щелкните правой кнопкой мыши PowerPivotExcelAddin , а затем нажмите Удалить ;

    вернитесь в верхнюю часть редактора реестра;

    разверните раздел HKEY_CURRENT_USER > Software > Microsoft > Office > Excel > Addins ;

    щелкните правой кнопкой мыши PowerPivotExcelClientAddIn.NativeEntry.1 , а затем нажмите Удалить ;

    закройте редактор реестра;

    откройте Excel;

    включите надстройку, выполнив действия, описанные в начале этой статьи.

В следующих нескольких разделах рассматриваются примеры использования файла ChlOWeatherMashup.xlsx, в котором находятся сведения о продажах по дням и набор данных о точках продажи. Компания продает продукты в супермаркете и в аэропорту. Две торговые точки находятся менее чем в 10 милях друг от друга, но при этом демонстрируют различные тенденции продаж.

С помощью веб-запроса и макроса загружаются сведения о погоде на каждый день в течение трех лет. Рассматриваются примеры мер DAX, которые представляют собой совокупность метеопрогнозов и данных о продажах. Подобная совокупность позволяет определить связь между погодой и объемом продаж.

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

  • WeekdayName, использующий формулу =FORMAT(Sales,»dddd») для преобразования даты в день недели.
  • Многие пользователи выражают свое недовольство, когда узнают, что сводные таблицы PowerPivot не поддерживают пользовательские списки, отображающие дни недели, и им приходится создавать вычисляемый столбец WeekdayID.

  • В вычисляемом столбце WeekdaylD используется функция =WEEKDAY(Sales,2). Аргумент 2 имеет то же значение, что и соответствующий аргумент в функции Excel. В частности, он нумерует дни недели таким образом, что понедельнику присваивается значение 1, вторнику - 2 и т.д. Воскресенье получает значение 7. Состоящая из 7 строк таблица Weekday устанавливает соответствие между днями недели (с понедельника по воскресенье включительно) и числами (с 1 до 7 включительно). В результате имена дней недели отображаются корректно.
  • В вычисляемом столбце LocationDays находится формула CONCATENATE (Sales,Sales). Эта формула используется в дальнейшем при вычислении различных номеров для дней, в течение которых выполняются продажи.

Затем вычисляется уровень продаж в зависимости от численности персонала торговых точек. Две имеющиеся торговые точки обеспечивают различные уровни продаж по дням недели. В торговой точке, находящейся в аэропорту, обычно работает один продавец, но в дни наибольшего трафика (пятница, воскресенье и понедельник) количество продавцов увеличивается до двух. В торговой точке, находящейся в торговом центре, дополнительный персонал появляется по пятницам и субботам. Для вычисления численности персонала в заданный день недели нужно выполнить конкатенацию значений, находящихся в полях Location (Местоположение) и Weekday (День недели).

В вычисляемом столбце LocationWeek применяется следующая формула: =Concatenate(Sales,Sales). Обратите внимание на то, что все перечисленные выше вычисляемые столбцы могут ссылаться на другие вычисляемые столбцы. Этот вычисляемый столбец с помощью установленной связи ссылается на таблицу, в которой представлены сведения о персонале.

Многие пользователи думают, что поскольку PowerPivot «понимает» связи, установленные между таблицами, которые содержат сведения об объемах продаж и персонале, можно создать такую формулу, как =Sales/Staffing (рис. 10.25). Но, к сожалению, при выполнении этой формулы появляется сообщение об ошибке.

Причина появления этой ошибки заключается в том, что при выполнении вычислений предпринимается попытка деления значения 2202 в столбце Net Sales на значения в столбце Staff Level, находящемся в таблице Staffing. Для устранения этой проблемы используется функция Related)). Перепишите формулу в виде =Sales/Related(Staffing). Функция Related () сообщает DAX о том, что нужно делить 2202 не на все 14 значений в столбце Staff Level из таблицы Staffing, а лишь на одно значение, которое связано со значением AirportSunday.

На рис. 10.26 показан результат применения этой формулы. При просмотре первой строки приходим к выводу о том, что в торговой точке, расположенной в аэропорту, работают два человека. Поэтому объем продаж по отношению к одному человеку составляет половину от значения 2202, т.е. 1101. По вторникам (Tuesday) в магазине работает один человек, поэтому значение в столбце SalesPerPerson совпадает со значением в столбце Net Sales.

С помощью вычисляемых столбцов и связей можно создавать интересные примеры сводных таблиц.

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

Продолжая выполнение анализа данных, получим результаты, которые близки к ожидаемым. На рис. 10.28 демонстрируется зависимость объема продаж от того, шел ли дождь и насколько сильным он был. Если ваши торговые точки расположены во Флориде, где дождей практически не бывает, вряд ли подобный анализ будет полезным на практике.

Если нужно вычислять уровень продаж для каждой торговой точки ежедневно, создайте новые меры с помощью DAX.

Excel Power Pivot – это инструмент, позволяющий создавать системы бизнес-аналитики. В статье рассмотрим методику определения одного и того же показателя из области управленческой отчетности – сначала на базе формул Excel, затем при помощи Excel Power Pivot, чтобы оценить все его возможности и преимущества.

Что такое Power Pivot

Excel Power Pivot – это инструмент, позволяющий пользователям создавать собственные системы бизнес-аналитики средствами Excel – на основе табличных баз данных.

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

Надстройка Excel Power Pivot работает только в среде Office 2010 и выше и обладает рядом возможностей:

  • выполняет все вычисления непосредственно в оперативной памяти компьютера, что позволяет добиться высокой производительности системы, а также обеспечить возможность обработки больших объемов данных (размеры исходных таблиц могут достигать миллионов строк);
  • позволяет создавать на своей базе сводные таблицы. Прикладная ценность Excel PowerPivot для финансистов и аналитиков заключается в том, что с помощью надстройки теперь можно самостоятельно обрабатывать такие объемы информации, для которых ранее требовалось использовать специализированное ПО (СУБД) и привлекать квалифицированных ИТ-специалистов;
  • содержит язык выражений анализа данных (Data Analysis eXpression, сокращенно DAX), предназначенный для разработки новых правил бизнес-логики. Упрощенно его можно считать продвинутым вариантом формул массива. Формулы языка DAX специально разрабатывались таким образом, чтобы быть максимально приближенными к синтаксису Excel. Несмотря на свое сходство со стандартными функциями листа Excel, формулы DAX составляются только внутри оболочки Power Pivot. Язык DAX обладает широким спектром возможностей, а информация о различных способах его применения доступна в интернете.

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

В качестве примера выберем показатель «Ежемесячный уровень дохода клиента», позволяющий ранжировать контрагентов компании по степени доходности. С его помощью становится понятно, какая доля общей выручки приходится на клиентов различных типов, их количественное распределение по группам, динамику изменения клиентской базы и т. п. Однако расчет такого показателя сопряжен с определенными трудностями:

  1. В пределах одного календарного периода клиент может воспользоваться сразу несколькими услугами (приобрести несколько товаров) - поэтому для расчета совокупного уровня доходности нужно просуммировать доходы, полученные по всем услугам, оказанным клиенту в анализируемом периоде;
  2. В зависимости от величины рассчитанного дохода клиента нужно отнести к одной из заранее определенных групп.

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

Справка

Использование формул массива

Напомним, кроме обычных функций листа (массив аргументов на входе - одно значение на выходе, которое записывается в ячейку таблицы) существует отдельный класс функций, которые называются формулами массива (массив аргументов на входе - массив значений на выходе). Такие операторы вводятся сразу для диапазона ячеек. При этом значение конкретного элемента зависит не только от общей для всех составляющей (единой формулы расчета), но и его места в массиве (так называемого контекста исполнения). Именно контекст исполнения является одним из тех краеугольных камней, на которых держится логика аналитических вычислений. Поэтому далее кратко объясним, в чем заключается принцип его работы в Excel.

Давайте рассмотрим выражение (см. рис. 1). Входными параметрами у него выступают два диапазона ячеек: «Строка», выделенная желтым цветом, и «Столбец» с синей заливкой. В области, ограниченной этими диапазонами, введена формула массива следующего вида: {=Строка Столбец}.

Эта формула - компактная запись операции сложения пар элементов из исходных массивов. Как видно из рисунка, у нее одинаковое написание для всех элементов диапазона из области действия. При этом значения в ячейках получившейся таблицы отличаются друг от друга, что объясняется контекстом исполнения. Например, выделенная на рисунке ячейка E4 расположена в третьем столбце и второй строке массива, что соответствует второму элементу массива «Строка» и третьему элементу массива «Столбец».

Описанный режим организации вычислений выглядит не совсем привычно, ведь в формуле нет явного указания на то, какие именно ячейки для сложения следует выбирать. Поэтому для освоения этого приема требуется определенное время. Но после изучения данной техники пользователь сможет составлять выражения и для многомерной OLAP-среды. Таким образом, базовые возможности программы Excel расширяются за счет добавления в нее аналитических вычислений, основанных на синтаксисе формул листа.

Работа со стандартными формулами Excel

Предположим, что в нашем распоряжении имеется отчет о выручке компании, детализированный по трем аналитикам (контрагентам, видам услуг и календарным периодам).

На рисунке 2 исходные данные представлены столбцами «Компания», «Услуга», «Период», «Доход». Мы хотим создать два новых вычисляемых столбца «Доход_Сумм», где рассчитан совокупный доход по клиенту в определенном периоде, а также «Доход_Уровень», который в зависимости от уровня «Доход_Сумм» определяет доходную группу (уровни дохода указаны в правой части рис. 2).

Для удобства и наглядности последующих вычислений сразу преобразуем исходные данные в режим «Таблицы». Для этого воспользуемся соответствующей командой на вкладке «Вставка» и присвоим ей собственное имя «Таблица_Фактов».

Наша цель. Для каждой строки таблицы фактов рассчитать суммарный доход, который соответствует клиенту и месяцу. Например, «Клиенту, А» в феврале 2013 года было оказано три услуги на сумму 15, 15 и 25 единиц. Поэтому в каждой из строк, которые относятся к данному периоду, должно быть проставлено одно и то же значение - 55 единиц (15 + 15 + 25). Такая операция выполняется в два этапа.

Этап 1. Среди всех строк таблицы фактов фильтруются те, у которых с текущей строкой совпадают значения атрибутов «Компания» и «Период».

Этап 2. Суммируются значения атрибута «Доход» в получившемся отфильтрованном множестве.

Для выполнения данной задачи хорошо подходит функция СУММЕСЛИМН, позволяющая суммировать диапазоны сразу по нескольким условиям. Главный вопрос: каким образом вводить эту формулу в вычисляемый столбец. Ведь в таблицах любая формула должна задаваться сразу для всех строк одновременно. Нам же требуется определить всего одну, но такую, чтобы контекст ее исполнения менялся в зависимости от параметров активной строки.

Введем в любую из строк столбца «Доход_Сумм» выражение 1. Достаточно нажать Enter, после чего оно поместится во всех строках таблицы.

Выражение 1:
СУММЕСЛИМН([Доход]; [Компания]; Таблица_Фактов[[#Эта строка];[Компания]]; [Период]; Таблица_Фактов[[#Эта строка]; [Период]])

Разберем, как работает формула. При каждом вызове (в каждой строке) функции СУММЕСЛИМН используется сразу вся таблица фактов (ее столбец «Доход»). Но при каждой итерации суммируются только те строки, которые соответствуют значениям атрибутов текущей строки. Для этого в формулу добавлен специальный аргумент - [# Эта строка], который играет роль ссылки на текущую строку. В частности, для строк, относящихся к «Клиенту, А» и февралю 2013, значение параметра [[#Эта строка];[Компания]] будет равным «Клиент, А», а [[#Эта строка]; [Период]] - «01.02.2013».

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

Отметим, что представленный формат записи существенно отличается от штатного режима Excel, где входные параметры указываются в формулах явным образом. Например, мы можем преобразовать таблицу фактов обратно в обычный диапазон («Преобразовать в диапазон» на вкладке «Работа с таблицами»). Тогда, к примеру, выражение 1 для строки 5 примет вид выражения 2:

Выражение 2:
=СУММЕСЛИМН(Обычный_Диапазон!$D$2:$D$37; Обычный_Диапазон!$A$2:$A$37; Обычный_Диапазон!$A5; Обычный_Диапазон!$C$2:$C$37; Обычный_Диапазон!$C5)

Для строки 6 выражение будет выглядеть идентично, с тем лишь отличием, что вместо $A5 будет $A6 (а вместо $C5 - $C6). При этом результат вычисления выражения 2 совпадает со значением выражения 1 в соответствующей строке, что позволяет считать их тождественными.

Теперь нам нужно рассортировать месячные доходы клиентов по группам. На основе интегрального показателя доходности, рассчитанного ранее, мы должны выбрать соответствующую строку во внешней (по отношению к таблице фактов) таблице. В Excel эту операцию выполнить просто, поскольку в нем есть множество операторов для работы с массивами и диапазонами.

В частности, функция ИНДЕКС позволяет в любой ячейке рабочей книги элементарно получить значение из двумерного массива, нам нужно лишь знать соответствующий идентификатор объекта. Напишем в столбце «Доход_Уровень» выражение 3:

Выражение 3:
=ИНДЕКС(Уровни[Уровень]; ПОИСКПОЗ(Таблица_Фактов[[#Эта строка]; [Доход_Сумм]]; Уровни[Начало]))

Представленная в выражении 3 формула, как и выражение 1, выполняется в текущем контексте таблицы фактов - в нем используется ссылка на активную строку. Кроме того, при помощи функции ИНДЕКС мы обращаемся к внешнему объекту - таблице «Уровни». В ней с помощью функции ПОИСКПОЗ ищется подходящая строка.

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

Работа в Excel Power Pivot

Рассмотрим, как в Power Pivot выполняются операции, описанные в первой части статьи.

Установка Excel Power Pivot. Сначала надстройку следует установить (скачать ее можно бесплатно с официального сайта Microsoft). На ленте Excel должна появиться новая вкладка «Power Pivot». Если надстройка не включилась сразу, ее нужно включить в ручном режиме: «Параметры Excel» - «Надстройки», в списке «Управление» выбрать значение «Надстройки COM» - «Перейти». Остается поставить галочку напротив пункта «Power Pivot for Excel». Окно активно только в документах формата xlsx.

Подготовка исходных данных . В БД PowerPivot поддерживается широкий перечень разнообразных источников. В частности, в нее можно загрузить данные из СУБД MS Access или SQL Server. В этом случае объем обрабатываемой информации может исчисляться миллионами строк. Но для обычных пользователей более ценной является возможность хранить исходную информацию на листах обычной книги Excel.

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

1. Разнести таблицы по отдельным листам книги. Заметим, что данное требование отличается от стандартного режима работы Excel, который разрешает размещение неограниченного числа таблиц, описывающих разные сущности, на одном листе.

2. Хранить таблицы отдельно от файла со сводным отчетом. Таблицы с данными при необходимости могут даже размещаться в разных книгах Excel - Power Pivot умеет поддерживать несколько параллельных открытых соединений с источниками данных определенного типа.

При копировании исходных данных на новые листы последним рекомендуется сразу присваивать информативные названия. При последующем импорте данных в среду Power Pivot исходные имена объектов становятся названиями соответствующих таблиц в модели.

Далее создаем новую книгу Excel, которую назовем «ИсхДанные». Поместим в нее на один лист с названием «Таблица_Фактов» таблицу с исходными данными, а на другой лист «Уровни» - справочную таблицу с уровнями доходности.

Теперь давайте создадим еще одну книгу Excel, вызовем в ней окно PowerPivot и импортируем в нее данные из файла «ИсхДанные». Для импорта данных нужно вызвать в меню «Файл» команду «Получить внешние данные из других источников», а затем тип «Файл Excel», запустив мастер импорта данных.

На первом этапе его работы указываем физическое размещение файла с данными. Советуем сразу включить опцию «Использовать первую строку для заголовков столбцов» - тогда столбцы PowerPivot в автоматическом режиме получат имена столбцов из книги Excel.

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

В результате проведенных операций исходные таблицы должны отобразиться в окне Power Pivot (см. рис. 3). Переключаться между ними можно, выбирая соответствующую закладку в левом нижнем углу окна.

В каждой из таблиц можно создавать объекты двух типов - вычисляемые столбцы и вычисляемые поля.

Вычисляемые столбцы выполняют роль измерений в сводной таблице - содержат значения, которые затем помещаются в области строк или столбцов макета отчета.

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

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

Как и в обычных таблицах, формулы DAX выполняются в контексте строки. Но в отличие от таблиц, в них нет необходимости указывать параметр [# Эта строка] явным образом. Проще говоря, даже не записывая параметр [# Эта строка] в формулу DAX, можно считать, что он в ней присутствует, и использовать его в вычислениях. Такая особенность хоть и делает формулы DAX менее наглядными, но зато позволяет записывать выражения более компактно.

Учитывая перечисленные особенности работы с формулами DAX, создадим новый столбец «Доходность» со следующей формулой (выражение 4):

Выражение 4:
=CALCULATE(sum([Сумма]); ALLEXCEPT("Таблица_Фактов"; "Таблица_Фактов"[Компания]; "Таблица_Фактов"[Период]))

Разберем принцип работы выражения 4.

Сначала данный оператор для каждой строки таблицы фактов получает на вход временную таблицу, совпадающую с самой таблицей фактов. Затем к этой промежуточной таблице применяются фильтры, определенные текущим контекстом. В ней остаются строки, атрибуты которых совпадают со значениями текущей строки: [[#Эта строка]; [Компания]], [[#Эта строка]; [Услуга]], [[#Эта строка]; [Период]], [[#Эта строка]; [Сумма]].

Однако выражение ALLEXCEPT ("Таблица_Фактов"; "Таблица_Фактов" [Компания]; "Таблица_Фактов" [Период]) требует, чтобы для всех столбцов, кроме [Компания] и [Период], фильтры текущего контекста были убраны. Получается, что в промежуточной таблице мы оставляем только те строки, у которых с текущей строкой совпадают значения атрибутов [Компания] и [Период]. В отфильтрованной таким образом таблице выбирается атрибут [Сумма], значения которого затем суммируются.

На первый взгляд, формула может показаться чересчур запутанной, но в действительности она лишь воспроизводит вычисления выражения 1, которое мы приводили в самом начале статьи. Значения в столбце «Доходность» будут наглядным подтверждением, поскольку они совпадают со столбцом «Доход_Сумм» на рис. 2.

Теперь добавим в таблицу еще один вычисляемый столбец - «Техн_Уровень». В нем напротив каждой рассчитанной на первом этапе суммы укажем численное значение шкалы из таблицы «Уровни». Фактически нам требуется в базовой «Таблице_Фактов» получить значения из другой таблицы. Как и в случае с обычными расчетами в Excel, для этого достаточно выбрать подходящую функцию и передать ей в качестве аргумента идентификатор нужного объекта.

Введем в столбец «Техн_Уровень» следующую формулу (выражение 5):

Выражение 5:
=CALCULATE(max("Уровни"[Начало]);filter(all("Уровни"[Начало]);"Уровни"[Начало]

В представленном выражении агрегирующая функция MAX() применяется уже к внешней таблице «Уровни». Сначала она фильтруется в соответствии с ограничениями текущего контекста - в таблице оставляются только те строки, которые меньше числа в столбце «Доходность» активной строки.

Наконец, давайте добавим в нашу таблицу последний вычисляемый столбец - «Дох_Уровень». В нем мы будем выводить строку с названием уровня из таблицы «Уровни». Такие операции выполняются с помощью функций ВПР в Excel и ГПР (VLOOKUP и HLOOKUP). В языке DAX существует функция LOOKUPVALUE, аналогичная оператору ВПР.

Поэтому в столбец «Дох_Уровень» достаточно записать простое выражение следующего вида (выражение 6):

Выражение 6:
=LOOKUPVALUE("Уровни"[Уровень]; "Уровни"[Начало]; [Техн_Уровень])

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

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

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

Справочную информацию по работе с надстройкой PowerPivot и языком DAX, в том числе руководство «Обучение основам DAX за 30 минут» на официальном сайте MS Office, можно найти в интернете.

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

PowerPivot является для Excel строительным блоком необходимым для создания решений бизнес-аналитики. Вне зависимости, использует ли это решение простые расчеты или что-то гораздо более сложное. PowerPivot включает в себя возможность импорта таблиц из широкого спектра источников данных, выполнять быстрые расчеты больших объемов данных, использовать DAX формулы (Выражения анализа данных) и создавать отчеты сводных таблиц на основе полученной информации.

Выражения DAX очень схожи с формулами Excel. Но, несмотря на то, что список функций DAX во многом совпадает со списком Excel, в выражениях анализа существуют новые функции, которых в Excel нет. Эти функции предназначены для возможности анализа данных, в частности, для связывания таблиц и динамического анализа. Способность создавать расчеты, которые будут динамически оцениваться в различных контекстах, является мощным инструментом. До PowerPivot и DAX, такого рода расчеты часто требовали знания концепции многомерного программирования.

Введение в PowerPivot надстройку

После установки на ленте появится новая вкладка PowerPivot.

Щелчок на Окно PowerPiwot запустит новую вкладку PowerPivot для Excel.

Давайте здесь остановимся, чтобы определиться, как PowerPivot и Excel дополняют друг друга.

PowerPivot обладает встроенным алгоритмом обработки данных, который позволяет 1) хранить и обрабатывать бо льшие объемы данных, чем доступно в Excel, 2) импортировать данные с различных источников данных, 3) моделировать операции, такие как определение связей между таблицами и создание DAX формул.

Надстройка PowerPivot для Excel (см. выше) имеет Excel-ориентированный пользовательский интерфейс.

Excel обладает широким спектром инструментов визуализации, таких как , сводные диаграммы и . Их также можно использовать для работы с данными PowerPivot.

Excel документ является отличным способом упаковки данных и визуализации. Это означает, что все, что вы видите в окне надстройки хранится, внутри вашей книги. Что облегчает управление и обмен данными.

Импорт данных

Конечно, все начинается с данных, и поэтому PowerPivot позволяет импортировать данные с различных источников. Ниже показан небольшой фрагмент списка возможных ресурсов.

В зависимости от типа источника, вы можете выбрать необходимые таблицы, просматривать и фильтровать поля таблиц, и/или использовать запрос для импорта.

Копировать/вставить

Зачастую пользователям требуется объединить данные, хранящиеся в PowerPivot, с небольшим объемом данных, находящимся на листе. Это возможно сделать с помощью создания связей между таблицами.

Работа с таблицами

После того, как данные были импортированы, они отображаются в окне PowerPivot для Excel.

Если источники данных имеют связи между таблицами, PowerPivot подтянет их автоматически. В противном случае, вы можете создать их вручную.

Зачем создавать связи между таблицами? Такие отношения позволяют корректно ориентироваться и группировать данные, что исключает необходимость сводить связанные столбцы в одну большую таблицу.

Расчеты

Конечная цель PowerPivot для Excel сделать анализ данных простым. В отличие от продуктов анализа данных, которые предназначены для IT-специалистов (например, SQL Server Analysis Services), PowerPivot предназначен для людей, которые используют сводные таблицы в своей ежедневной работе. Идея заключается в том, чтобы пользователи могли применять имеющиеся навыки Excel, без необходимости изучения специализированных языков.

If(>100000000, “Отлично”, if(>10000000, “Хорошо”, “Плохо”))

Поэтому во время работы можно встретить знакомые формулы, такие как ABS, AVERAGE, AVERAGEA (думаю, со временем их тоже переведут на русский язык). Так же есть совершенно новые: ALL, ALLEXEPT, AVERAGEX.

Визуализация

Для того чтобы создавать многофункциональные , PowerPivot использует инструменты Excel для визуализации. К счастью у Excel этого добра достаточно: сводные таблицы, сводные диаграммы и срезы.

После нескольких минут форматирования и размещения элементов управления, у меня получилась функциональная автономная книга, которая может работать как приложение.

Итог

Итак, что мы имеем? PowerPivot для Excel – это надстройка, используемая для добавления и анализа больших объемов данных. В Excel книга предоставляет все возможности визуализации данных и взаимодействия с ними. Навыки составления отчетов с помощью сводных таблиц позволят создавать сложные книги, основывающиеся на сложных аналитических данных Excel.

Если ваша версия Excel 2013 поддерживает надстройку PowerPivot, вы сможете:

· Загрузить данные в PowerPivot можно различными способами. В вашем распоряжении имеется множество источников данных, связанные таблицы, возможность копирования и вставки данных, а также возможность создания подписок.

· В таблицах PowerPivot можно просматривать, сортировать и фильтровать данные.

· Можно импортировать миллионы строк в единственный рабочий лист таблицы PowerPivot.

· Можно создавать формулы DAX как в таблице, так и в виде нового вычисляемого поля, называемого мерой . Аббревиатура DAX расшифровывается как Data Analysis Expressions (Выражения анализа данных). В состав DAX входят 117 функций, которые позволяют выполнять две разновидности вычислений. 81 стандартную функцию Excel можно применять для добавления вычисляемых столбцов в таблицу, находящуюся в окне PowerPoint. А с помощью 54 функций можно создавать новые меры в сводных таблицах. Благодаря этим функциям сводные таблицы получают невиданные ранее возможности.

· В вашем распоряжении имеются дополнительные способы создания связей, включая представление диаграмм, применяемое для отображения связей.

· Можно скрывать или переименовывать столбцы.

· Перед созданием сводной таблицы можно задать числовое форматирование для столбца.

· Появилась возможность назначать категории полям, например, география , URL ссылка на изображение или веб-ссылка .

· Можно определять ключевые показатели эффективности либо иерархии.

· Если в вашей компании установлен сервер PowerPivot Server, вы получите возможность публиковать интерактивные отчеты PowerPivot на сайте SharePoint. 

Если вы планируете обрабатывать миллионы записей, установите 64-разрядные версии Office и PowerPivot. В этом случае останутся в силе ограничения, связанные с недостатком оперативной памяти, но они частично нивелируются благодаря тому, что PowerPivot может практически в 10 раз сжимать данные, хранящиеся в файле PowerPivot. В 64-разрядной версии Office 2013 обеспечивается доступ к памяти, превышающей предел в 4 Гбайт, заданный для 32-разрядной версии Windows.

Активизация надстройки PowerPivot. Если вы имеете дело с Office 365, Office 2013 Pro Plus, Office 2013 Enterprise либо коробочной версией Excel 2013, вы сможете получить доступ к надстройке PowerPivot. Чтобы активизировать эту надстройку, выполните следующие действия:

1. Откройте Excel 2013. Видите вкладку ленты PowerPivot (рис. 8)? Если да, можете не выполнять следующие действия.

2. Выполните команду Файл g Параметры , выберите пункт Надстройки. В раскрывающемся списке Управление , находящемся в нижней части окна, выберите пункт Надстройки COM и щелкните на кнопке Перейти (рис. 9а).

3. В списке доступных надстроек СОМ найдите надстройку Microsoft Office PowerPivot for Excel 2013. Установите соответствующий флажок и щелкните на кнопке ОК (рис. 9б). (Учтите, что вам нужна надстройка PowerPivot for Excel 2013. Устаревшая надстройка "PowerPivot for Excel" использовавшаяся в Excel 2010, в Excel 2013 не поддерживается.)

4. Если на ленте не отображается вкладка PowerPivot, завершите выполнение программы Excel 2013 и снова запустите ее.

После установки надстройки на ленте Excel 2013 появится вкладка PowerPivot (рис. 8).

Рис. 8. Вкладка PowerPivot

Рис. 9. Установка надстройки PowerPivot

Импорт текстового файла. Исходная таблица включает 1,8 млн. записей, находящихся в файле BigDatal.txt (часть файла в окне программы Блокнот показана на рис. 10). Заголовки столбцов находятся в первой строке файла. Может потребоваться удаление нестандартных строк, находящихся в верхней части файла, дабы избежать проблем при их обработке с помощью надстройки PowerPivot. К сожалению, даты в файле имеют американский формат, поэтому в дальнейшем обрабатываются некорректно.

Рис. 10. Этот файл, содержащий 1,8 млн. строк, слишком велик для Excel

Для импорта файла, содержащего 1,8 млн. строк, в PowerPivot выполните следующие действия.

1. Перейдите вкладку PowerPivot. Щелкните на значке Управление . На экране появится окно приложения PowerPivot, в котором отображается собственная лента (рис. 11). В этом окне центральное место занимает таблица, с помощью которой можно просматривать данные в модели PowerPivot. В окне PowerPivot находятся следующие три вкладки: В начало , Конструктор и Дополнительно .

Рис. 11. Щелкните на значке Управление, находящемся на вкладке PowerPivot ленты Excel, чтобы открыть окно надстройки PowerPivot, в котором отображается собственная лента

2. Импортируйте таблицу из файла BigDatal.txt. Для этого в группе Получение внешних данных щелкните на кнопке Из других источников Мастер импорта таблиц .

3. В окне Мастер импорта таблиц выберите самый нижний пункт Текстовый файл . Щелкните на кнопке Далее .

4. Введите в поле Понятное имя соединения имя для своего соединения.

5. Щелкните на кнопке Обзор и найдите текстовый файл. Если данные включают заголовки, PowerPivot обнаружит их.

6. Проверьте, чтобы в качестве разделителя была выбрана запятая. В раскрывающемся списке Разделитель столбцов отображается ряд стандартных разделителей, таких как запятая, точка с запятой, вертикальная черта и др.

7. Если хотите отказаться от импорта какого-либо столбца, отмените установку соответствующих флажков. Текстовый файл готов к загрузке в оперативную память. Учтите, что можно существенно уменьшить объем используемой оперативной памяти, если исключить лишние столбцы, особенно когда они включают длинные текстовые значения. Для этого сбросьте флажки, соответствующие скрываемым столбцам (рис. 12).

Рис. 12. Настройка мастера импорта таблиц

8. Обратите внимание: каждому полю соответствуют раскрывающиеся списки фильтров. С помощью этих списков можно сортировать и фильтровать наборы данных, включающие десятки и сотни тысяч записей (например, исключать определенные данные из отчета). Только учтите, что при большом количестве записей эти операции выполняются очень медленно.

9. После щелчка на кнопке Готово PowerPivot начинает загружать файл в память. При этом отображается количество строк, загруженное в настоящий момент (рис. 13).

Рис. 13. Всего лишь за несколько секунд надстройка PowerPivot загрузила 1 550 000 строк

10. После завершения импорта файла отображается количество загруженных строк. Щелкните на кнопке Закрыть , чтобы вернуться в окно PowerPivot.

11. В окне PowerPivot отображается 1,8 млн. записей. Для их просмотра можно воспользоваться вертикальной полосой прокрутки. Можно также выполнить сортировку, изменить числовой формат либо применить фильтр (рис. 14).

Рис. 14. Записи отображаются в виде сетки, которая напоминает обычную таблицу Excel

Назначьте столбцам числовой формат. Поле даты предназначено для хранения даты и времени. Если исходные данные не включают компонент времени, выберите заголовок даты и воспользуйтесь раскрывающимся списком Формат , находящимся в группе Форматирование вкладки В начало ленты PowerPivot. Выберите формат 14.03.2001. К столбцу Доход примените формат валюты. Если не хотите, чтобы в сводной таблице отображались цифры после запятой, уменьшите до нуля количество цифр после запятой.

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

Несмотря на то что PowerPivot выглядит как Excel, на самом деле это не Excel. Вы не сможете изменять отдельные ячейки. Если в ячейку Е1 добавить формулу, вычисляющую сумму, эта формула будет автоматически скопирована во все строки. Если отформатировать значение в одной ячейке, все ячейки в этом столбце будут также отформатированы.

Чтобы изменить ширину столбцов, перетащите границу между названиями столбцов (как в Excel). 

Итак, у вас есть 1,8 млн. записей, которые можно сортировать, фильтровать и объединять в сводные таблицы. Обратите внимание на то, что 1,8 млн. строк, импортированных из текстового файла, хранятся в книге Excel. Можно скопировать файл.xlsx на новый компьютер, после чего все строки окажутся на новом компьютере. Исходный текстовый файл имеет размер 58 Мбайт, а сжатый файл Excel имеет размер всего лишь 4 Мбайт.

Добавление данных Excel методом копирования и вставки. В нашем примере таблицы PowerPivot информация о магазине ограничивалась лишь полем Код [магазина]. Сведения о названии либо местоположении магазина отсутствовали. Проблему можно устранить с помощью небольшого файла Excel, в котором коды магазинов сопоставляются с названиями и другой идентификационной информацией. Эти данные можно добавить на новую вкладку в окне PowerPivot. Можно воспользоваться копированием и вставкой, как описано ниже, либо создать связанную таблицу (см. следующий раздел), которая удобнее в применении.

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

1. Откройте рабочую книгу, содержащую диапазон, который связывает идентификаторы магазинов с названиями (рис. 15).

2. Выделите данные с помощью комбинации клавиш Ctrl+Shift*.

3. Скопируйте данные, нажав комбинацию клавиш Ctrl+C. 

4. Перейдите на вкладку PowerPivot в Excel.

5. Щелкните на кнопке Управление , чтобы открыть окно PowerPivot. Теперь вы сможете увидеть предварительно импортированный набор данных, включающий 1,8 млн. строк.

6. В левой части вкладки В начало окна PowerPivot щелкните на значке Вставить . На экране появится диалоговое окно Просмотр вставки .

7. Присвойте новой таблице более понятное имя, чем заданное по умолчанию имя Таблица, например, Магазины (рис. 16). Щелкните на кнопке ОК.

Рис. 15. Таблица кодов и названий магазинов

Рис. 16. Окно Просмотр вставки

В окне PowerPivot появилась новая вкладка Магазины , на которой находятся дополнительные сведения о магазинах. Обратите внимание: в нижней части окна PowerPivot находятся ярлычки рабочих листов (рис. 17). Данные, вставленные из буфера обмена, представляют собой статическую копию данных Excel. Если данные Excel изменяются, скопируйте их и выполните команду PowerPivot Вставить с заменой .

Рис. 17. Ярлычки рабочих листов окна PowerPivot

Добавление данных Excel с помощью связывания. В предыдущем разделе была добавлена таблица Магазины путем выполнения операций копирования и вставки. При этом фактически создаются две копии данных. Одна из них хранится на рабочем листе Excel, а вторая - в окне PowerPivot. Если изменяется исходный лист, содержимое окна PowerPivot остается неизменным. Если подобная ситуация вас не устраивает, свяжите данные из таблицы Excel с данными в окне PowerPivot:

1. Для начала, преобразуйте данные (как на рис. 15) в таблицу, встав на любую ячейку диапазона и нажав Ctrl+T.

2. Выберите контекстную вкладку Конструктор . В левой части ленты отображается название только что созданной таблицы - Таблица1. В этом поле введите новое имя, например, Код_магазина.

3. Перейдите на вкладку PowerPivot и в группе Таблицы кликните Добавить в модель данных . Создастся копия таблицы, которая отображается в окне PowerPivot (рис. 18).

Рис. 18. Новая таблица в PowerPivot – Код_магазина

Определение связей. Обычно для связывания двух таблиц в Excel используется функция ВПР. В PowerPivot эта задача решается гораздо проще:

1. В окне PowerPivot перейдите на вкладку В начало и щелкните на кнопке Представление диаграммы . Отобразятся две таблицы, находящиеся рядом друг с другом (рис. 19).

Рис. 19. Перетащите одно поле на другое для создания связи

2. Щелкните в поле Код в основной таблице (BigData) перетащите, и отпустите его, находясь над полем Код магазина области Магазины . Появятся стрелки, соответствующие установленной связи.

3. Чтобы вернуться к таблице PowerPivot, щелкните на значке Представление данных , находящемся на вкладке В начало окна PowerPivot .

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

1. Перейдите на закладку PowerPivot . Щелкните на кнопке Управление и в открывшемся окне щелкните на ярлычке первого рабочего листа – Продажи , находящемся в нижней части окна PowerPivot .

2. Крайний правый столбец называется Добавление столбца . Щелкните на первой ячейке этого пустого столбца.

3. Щелкните на значке fx , находящемся в левой части строки формул. На экране появится диалоговое окно Вставить функцию , включающее целый ряд категорий. Выберите категорию Дата и время . Обратите внимание: отображаемые в этом списке функции отличаются от функций из категории Дата и время в Excel.

4. Прокрутите список и выберите функцию YEAR и нажмите OK (рис. 20). Щелкните на заголовке столбца Дата заказа . Надстройка PowerPivot предлагает формулу =YEAR([Дата заказа]. Завершите создание формулы путем ввода закрывающей скобки и нажатия клавиши Enter . Excel заполняет столбец значениями года, связанного с датой.

5. Щелкните правой кнопкой мыши на столбце и в контекстном меню выберите параметр Переименовать столбец . Введите новое имя столбца, например, Год (рис. 21).

Рис. 20. Вставка функции YEAR

Рис. 21. Формула YEAR

Создание сводной таблицы:

1. Перейдите навкладку В начало ленты PowerPivot. Раскройте список, находящийся под кнопкой Сводная таблица и выберите пункт Сводная таблица (рис. 22).

2. В открывшемся окне выберите переключатель, определяющий вставку сводной таблицы на новый лист. Вы снова вернетесь в окно Excel. В списке полей сводной таблицы отобразятся все таблицы, содержащиеся в PowerPivot. Чтобы просмотреть поля, входящие в каждую таблицы, раскройте соответствующий таблице список (нажав на «треугольник»).

3. В списке полей PowerPivot откройте таблицу BigData и выберите поле Доход . Разверните таблицу Магазины о и выберите в ней поле Регион . Excel сформирует сводную таблицу, отображающую продажи по регионам (рис. 23). Итак, в вашем распоряжении оказалась сводная таблица, которая построена на основе 1,8 млн. строк данных и содержит виртуальную ссылку на связанную таблицу.

Рис. 22. Создание сводной таблицы в окне PowerPivot

Рис. 23. Эта сводная таблица суммирует 1,8 млн. строк, а также использует данные из двух таблиц

Далее можно воспользоваться инструментами из набора контекстных вкладок Работа со сводными таблицами для форматирования сводной таблицы. Например, можно применить валютный формат и переименовать поле Сумма по столбцу Доход , выбрать формат с чередующимися строками и т.п.

Различия между сводными таблицами PowerPivot и Excel. Если до сих пор вы создавали только обычные сводные таблицы Excel, сводные таблицы PowerPivot могут показаться вам неудобными. Причина появления многих проблем связана не с самой надстройкой PowerPivot , а с тем, что сводная таблица PowerPivot является сводной таблицей OLAP и ведет себя соответствующим образом. При работе со сводными таблицами PowerPivot следует учитывать, что:

· Отсутствует автоматическая сортировка по дням недели (понедельник, вторник, среда и т.д.). Для выполнения корректной сортировки выберите команду Дополнительные параметры сортировки g По возрастанию g Дополнительно . Отмените установку флажка Автосортировка , раскройте список Сортировка по первому ключу и выберите последовательность Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье.

· Для сортировки полей в обычных сводных таблицах можно воспользоваться следующим приемом (вместо перетаскивания). Выберите ячейку, содержащую, например, слово Пятница , и введите в эту ячейку слово Понедельник . После нажатия клавиши Enter данные из столбца Понедельник переместятся в новый столбец. Учтите, что этот прием неприменим при работе со сводными таблицами PowerPivot .

· В процессе ввода формул с помощью интерфейса Excel включаемые в них ячейки можно выбрать щелчком мыши либо с помощью клавиш управления курсором. Вероятно, надстройка PowerPivot создавалась фанатами мыши, поэтому при создании формул PowerPivot можно использовать только мышь.

· После щелчка на кнопке Обновить , находящейся на контекстной вкладке Анализ , Excel обновляет данные в сводной таблице. Подумайте, прежде чем делать это в Excel 2013. В рассматриваемом примере выполняется повторный импорт 1,8 млн. строк.

Два вида вычислений DAX

Только что мы рассматрели пример использования функции DAX (YEAR) для объявления вычисляемого столбца в таблице, которая отображается в окне PowerPivot . Для создания подобных столбцов используется 81 функция, большинство из которых копируются непосредственно из Excel. Многие из функций DAX аналогичны соответствующим функциям Excel за некоторыми исключениями, которые будут рассмотрены ниже. С помощью DAX также можно создавать новые вычисляемые поля в сводной таблице. Эти функции предназначены не для вычисления единственного значения ячейки, а для определения значений отфильтрованных строк, связанных с ячейками сводной таблицы (агрегирующие функции). В DAX имеется 54 таких функций. Реальная мощь PowerPivot заключается именно в этих функциях.

Использование функций DAX в вычисляемых столбцах. Такие функции весьма напоминают обычные функции Excel, поэтому для большинства из них не требуются дополнительные объяснения. Но некоторые функции DAX отличаются от функций Excel:

· Редко упоминаемая функция Excel РАЗНДАТ переименована в YEARFRAC, а ее код переписан. Собственно говоря, самой функции РАЗНДАТ нет в справке Excel. Более того нет ее и в мастере функций. И при наборе вручную первых букв названия функции Excel тоже не покажет подсказку в выпадающем списке. Объясняется это довольно просто. Эта функция изначально не является функцией Excel. Она всего лишь поддерживается Excel для совместимости с другими системами электронных таблиц. В Excel эта функция попала из электронных таблиц Lotus 1-2-3. Подробнее см. здесь.

· Функция Excel ТЕКСТ переименована в FORMAT.

· Функция СУММЕСЛИМН заменена усовершенствованной функцией CALCULATE.

· Вместо функции ВПР применяется более простая функция RELATED.

· В DAX появилась функция BLANK(). Поскольку некоторые из агрегирующих функций могут основывать вычисления на параметрах ALLN0NBLANKR0W либо FIRSTNONBLANK, функция BLANK() может применяться в качестве аргумента функции IF() для исключения некоторых строк при вычислениях мер.

· Функция ВЫБОР переименована в SWITCH. В то время как в качестве аргументов функции ВЫБОР используются числовые значения от 1 до 255, функцию SWITCH можно запрограммировать для работы с другими значениями.

Использование функции RELATED, чтобы вычисления в столбцах основывались на значениях другой таблицы. В ходе вычислений в таблице PowerPivot может понадобиться ссылаться на значения, находящиеся в других ячейках PowerPivot . В стандартной версии Excel в подобных случаях применяется функция ВПР. В PowerPivot используется функция RELATED.

В рассматриваемом примере используется таблица BigData, включающая поле Код [магазина] и Доход (сумма продаж за день). В отчетах о продажах часто используется такой показатель, как величина продаж на квадратный метр площади. В связанной таблице Магазины находятся поля Код магазина и Торговая площадь . В наборе этих полей находятся все данные, требуемые для выполнения вычислений.

Чтобы начать создание новой формулы, перейдите в таблицу PowerPivot и щелкните в пустой ячейке колонки Добавление столбца . Введите знак равенства и щелкните в ячейке, находящейся в столбце Доход . Начните вводить формулу в PowerPivot : = [Доход]. Введите знак косой черты, обозначающий деление. Теперь нужно получить доступ к полю Торговая площадь , находящемуся в таблице Магазины . Начните ввод функции RELATED(. Укажите несколько первых букв названия таблицы – Ма . Отобразится список полей в таблице Магазины (рис. 24). Дважды кликните в поле Торговая площадь . Завершите создание формулы вводом закрывающей круглой скобки и нажатием клавиши Enter. Щелкните правой кнопкой мыши на столбце и в контекстном меню выберите параметр Переименовать столбец . Присвойте новое имя, например, ПродажиНаКвМ .

Рис. 24. Создание вычисляемого столбца сводной таблицы PowerPivot с помощью функций DAX

Используя вычисляемые столбцы и связи, можно создать ряд интересных сводных таблиц. Вычисляемые столбцы просчитываются для каждой строки базовых данных. В результате формула Продажи на квадратный метр торговой площади выполняется 1,8 млн. раз в таблице PowerPivot . С помощью формул DAX можно создать новое вычисляемое поле, которое просчитывается один раз для каждой ячейки в финальной сводной таблице.

Создание вычисляемого поля в сводной таблице с помощью формул DAX. Вычисляемые поля DAX обладают рядом преимуществ по сравнению с обычными вычисляемыми полями. Одно из преимуществ заключается в том, что при использовании подобного поля вычисления выполняются один раз в каждой ячейке результирующей сводной таблицы. На рис. 25 показана сводная таблица, в ячейках В5:С12 которой находятся числовые значения. Созданное вычисляемое поле DAX будет вычисляться лишь для 16 числовых ячеек сводной таблицы. Это намного быстрее, чем вычисление значений, находящихся в 1,8 млн. ячеек, с последующим суммированием. Из-за американского формата дат в исходном файле BigData.txt ряд дат в модели PowerPivot отображается некорректно, что приводит к полю (пусто) в срезе дат. Прежде чем приступить к созданию первого вычисляемого поля, следует получить представление о фильтрах.

Рис. 25. Сводная таблица на основе модели PowerPivot

Применение заранее созданных фильтров в вычисляемых полях DAX. В вычисляемых полях DAX автоматически применяются фильтры, предварительно заданные в соответствующих ячейках. Сначала применяются все фильтры, а затем выполняются вычисления в полях DAX. Рассмотрим ячейку В6, представленную на рис. 25. Попробуем ответить на вопрос о том, сколько фильтров задано в ячейке В6. Вы скажете, что определено два фильтра. Я же думаю, что в этой ячейке определено четыре фильтра.

Наравне с обычными автофильтрами данные в ячейках могут фильтроваться с помощью срезов. После создания первого среза отображаются записи, находящиеся в ячейке В6, которые соответствуют 2006 году. Можно также просмотреть данные о продажах в магазинах Bellevue Square Managers, добавив второй срез. Эти два среза и формируют первые два фильтра. Также в качестве фильтра выступает заголовок строки Eyewear. Это будет третий фильтр. И наконец, четвертым фильтром выступает штат Вашингтон. В вычисляемых полях DAX сначала применяются ранее созданные фильтры, а затем вычисляется результат применения формулы DAX.

Создание вычисляемого поля ОАХ. Для создания вычисляемого поля перейдите на ленту Excel, выберите вкладку PowerPivot и выполните команду Вычисляемые поля g Создание вычисляемого поля . На экране появится диалоговое окно Вычисляемое поле . В поле Имя таблицы укажите название таблицы. Присвойте вычисляемому полю имя, например, КоличествоМагазинов . На панели ввода формул введите формулу. Для вставки названий функций щелкните на значке . В процессе ввода названий полей начните вводить несколько символов имени таблицы, а затем с помощью функции автозавершения выберите нужное поле.

После завершения ввода формулы щелкните на кнопке Проверить формулу , чтобы протестировать синтаксис формулы. Обратите внимание на подсказку формулы, которая отображается над панелью, показывающей результаты проверки формулы. Щелкните в поле Описание , чтобы скрыть подсказку. На экране появятся результаты проверки формулы. Если проверка формулы завершилась успешно, отобразится сообщение Формула не содержит ошибок (рис. 26). Щелкните ОК , чтобы добавить вычисляемое поле в список полей сводной таблицы. В таблице Магазины модели PowerPivot новое поле не появилось, а вот в сводной таблице оно есть (рис. 27). Совсем, как в обычной сводной таблице!

Рис. 26. Создание нового вычисляемого поля

Рис. 27. Новое вычисляемое поле в сводной таблице

Однажды созданное вычисляемое поле можно использовать для выполнения вычислений в будущем. Вычисляемое поле ПродажиМагазина (рис. 28) использует следующую формулу:

SUMX(BigData;BigData[Доход])/[КоличествоМагазинов]

Рис. 28. Поле ПродажиМагазина вычисляется на основе ранее созданного поля КоличествоМагазинов

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

Как отменить стандартную фильтрацию. А теперь рассмотрим следующую проблему. На рис. 29 выделена ячейка С5. В результате применения фильтров к этой ячейке отображаются записи, соответствующие торговцу по имени Амбер и дате продажи 01.06.2014. В этом и следующих разделах (вплоть до Практикума) используется Excel-файл Пример фильтра.xlsx

Рис. 29. К ячейке С5 неявно применены фильтры по дате и торговцу

Как уже упоминалось ранее, все фильтры, заданные к ячейке сводной таблицы, автоматически применяются к вычисляемому полю DAX. Во многих случаях это неприемлемо. В ячейке G6 отображается сумма проданных товаров, равная 165 долларам, которая не связана с каким-либо продавцом. Применяемая в данном случае политика заключается в том, чтобы сумма, равная 165 долларам, была назначена другим людям на основе их доли (в процентах) от суммы проданных товаров в этот же день, причем продавец Хьюз не участвует в продажах. Можно ли реализовать эту политику в данной сводной таблице?

Обратите внимание на то, что вычисления, выполняемые в ячейке С5, неявно фильтруются таким образом, чтобы отображать только продажи Амбера. Нужно создать формулу DAX, которая будет отменять фильтрацию данных. Эта формула будет отменять фильтр, отображающий соответствующие Амберу записи, и отображать записи, которые не связаны с Амбером. Функция DAX CALCULATE может удалять установленные фильтры и применять другие фильтры. Эта функция напоминает функцию СУММЕСЛИМН, но предоставляет пользователям больше возможностей.

Функция CALCULATE применяется для вычисления столбца итогов с учетом одного либо нескольких фильтров. Если для поля Продавец задать фильтр, он заменит фильтр, ранее заданный для этого поля. Если создать фильтр Продавец =Хьюз , DAX автоматически проигнорирует неявный фильтр Продавец =Амбер , что приведет к отображению всех записей, соответствующих Хьюзу. Если вам сложно с ходу научиться создавать формулы DAX, попробуйте поэтапную методику. Вместо многоэтажных формул сформируйте набор, состоящий из небольших формул. Формула, вычисляющая объем продаж Хьюза (рис. 30):

CALCULATE([Сумма по столбцу Продажи];Sls[Продавец]="Хьюз")

После задания вычисляемого поля можно использовать его в других вычисляемых полях.

Рис. 30. Формула DAX удаляет фильтр по полю Продавец и применяет другой фильтр

Задайте следующие вычисляемые поля:

Теперь пришла очередь применить фильтр к столбцу Продавец , чтобы скрыть долю Хьюза из сводной таблицы. В результате получим сумму продаж 911 долларов за 2 июня (значение в ячейке Н6, рис. 31), при том что доля Хьюза распределена между другими продавцами. Сравните значения по каждому отдельному продавцу и итоги по дням в таблицах на рис. 30 и 31. Подобного результата невозможно добиться с помощью вычисляемых полей, создаваемых в обычной сводной таблице.

Рис. 31. Продажи Хьюза распределены между другими продавцами


Похожая информация.