Агрегаты - это способ группирования данных, свертывания данных и получения итоговых данных. В начале работы с необработанными данными из таблиц или других источников данных эти данные часто бывают неструктурированными, то есть представляют собой множество подробных данных, никак не упорядоченных и не сгруппированных. Такое отсутствие сводок или структуры может затруднить обнаружение закономерностей в данных. Таким образом, важную часть моделирования составляет определение агрегатов, которые упрощают и обобщают данные, выявляя закономерности, позволяющие решить поставленную бизнес-задачу.
Наиболее распространенные агрегаты, например, с помощью функции СРЗНАЧ , счёт , DistinctCount , Max , min или Sum , могут автоматически создаваться в измерении с помощью функции автосуммирования. Другие типы агрегатов, например AVERAGEX , COUNTX , CountRows или SUMX возвращают таблицу и требуют формулы, созданной с помощью выражений анализа данных (DAX) .
При агрегатной обработке данных они группируются по таким атрибутам, как продукт, цена, регион или дата, а затем определяется формула, работающая для всех данных в группе. Например, если создаются итоговые показатели за год, то это агрегат. Если создается соотношение этого года с предыдущим годом и данные представляются в виде процентов, то это другой тип агрегата.
Метод группировки данных определяется поставленным бизнес-вопросом. Например, агрегаты могут ответить на следующие вопросы.
Счетчики Сколько транзакций было выполнено за месяц?
Средние значения Какие показатели средних продаж в этом месяце у каждого менеджера по продажам?
Минимальные и максимальные значения Какие районы сбыта были в горячей пятерке по количеству проданного товара?
Чтобы создать вычисление, отвечающее на эти вопросы, необходимо иметь подробные данные с числами, которые следует подсчитать или суммировать, и эти числовые данные должны иметь определенную связь с группами, которые будут использоваться для сортировки результатов.
Если поступившие данные не содержат значений, которые можно использовать для группирования (таких как категория товара или географический регион, где расположен магазин), можно создать группы данных путем добавления категорий. При создании групп в Excel необходимо вручную ввести или выделить нужные группы из числа столбцов в рабочем листе. Однако в реляционных системах многие иерархии (например, категории продуктов) хранятся не в той таблице, где хранятся факты или значения. Обычно таблица категорий связана с данными фактов с использованием какого-либо ключа. Например, предположим, что в данных содержатся идентификаторы продуктов, но не их имена или категории. Чтобы добавить категорию в неструктурированный рабочий лист Excel, потребовалось бы скопировать столбец, содержащий названия категорий. Используя Power Pivot, можно импортировать таблицу с категориями продуктов в вашу модель данных, создать связь между таблицей с числовыми данными и списком категорий продуктов, затем использовать категории для группирования данных. Дополнительные сведения можно найти в разделе Создание связи между таблицами .
После определения и добавления групп необходимо решить, какие математические функции следует использовать для агрегирования. Часто слово "агрегат" используется в качестве синонима математических или статистических операций, применяемых в агрегатах, таких как суммирование, определение средних значений, определение минимума или подсчет. Тем не менее Power Pivot позволяет создавать пользовательские формулы для агрегирования в дополнение к стандартным агрегатам и в Power Pivot и в Excel.
Например, при наличии того же набора значений и группирований, использованных в предыдущих экземплярах, можно создать пользовательские агрегаты, которые могут ответить на следующие вопросы.
Фильтруемый подсчет Сколько транзакций было в течение месяца, исключая период профилактического обслуживания в конце месяца?
Соотношения, использующие средние значения за период времени Каков был процентный рост или снижение продаж по сравнению с тем же периодом прошлого года?
Сгруппированные минимальные и максимальные значения Какие районы сбыта были ведущими для каждой категории продукта или для каждого стимулирования сбыта?
Если вы в общих чертах представляете, как нужно сгруппировать данные и с какими значениями вы хотите работать, можно выбрать построение сводной таблицы или создание вычислений в самой таблице. Power Pivot расширяет и улучшает возможности Excel по созданию агрегатов, таких как суммирование, подсчет или определение средних значений. В Power Pivot нестандартные агрегаты можно создавать либо в окне Power Pivot, либо в области сводной таблицы Excel.
Во время разработки сводной таблицы в раздел столбцов и строк сводной таблицы для группирования данных перетаскиваются поля, представляющие группировки, категории или иерархии. Поля с числовыми значениями перетаскиваются в область значений, чтобы для них можно было выполнить подсчет, суммирование и определение среднего.
При добавлении в сводную таблицу категорий, данные которых не связаны с данными фактов, могут возникнуть ошибки или непредвиденные результаты. Обычно Power Pivot пытается устранить проблему, автоматически обнаруживая и предлагая связи. Дополнительные сведения см. в статье Работа со связями в сводных таблицах .
Также можно перетаскивать поля в срезы для выбора определенных групп данных для просмотра. Срезы позволяют в интерактивном режиме группировать, сортировать и фильтровать результаты в сводной таблице.
Группирования и категории также можно использовать для агрегатной обработки данных, хранимых в таблицах, путем создания связей между таблицами с последующим созданием формул, использующих данные связи для поиска связанных значений.
Иначе говоря, если нужно создать формулу, группирующую значения по категориям, сначала нужно использовать связь для соединения таблицы, содержащей подробные данные, с таблицей категорий, а затем создать формулу.
Дополнительные сведения о создании формул с подстановками см. в статье Подстановка в формулах PowerPivot .
Новой функцией Power Pivot является возможность применения фильтров к столбцам и таблицам данных не только в пользовательском интерфейсе и в сводной таблице или диаграмме, но также и в каждой формуле, используемой для вычисления агрегатов. Фильтры можно использовать в формулах в вычисляемых столбцах и в s.
Например, в новых агрегатных функциях DAX вместо задания значений для суммирования или подсчета в качестве аргумента вы можете указать целую таблицу. Если к данной таблице не были применены фильтры, то функция агрегата обработает все значения в заданном столбце таблицы. Однако в DAX можно создать динамический или статический фильтр для таблицы, чтобы агрегат работал относительно разных подмножеств данных в зависимости от условия фильтра и текущего контекста.
Сочетая условия и фильтры в формулах, можно создавать агрегаты, изменяющиеся в зависимости от значений, передаваемых формулами, или в зависимости от выбора заголовков строк и столбцов в сводной таблице.
Дополнительные сведения см. в статье Фильтрация данных в формулах .
В следующей таблице приводятся некоторые стандартные агрегатные функции, доступные в Excel, и указываются ссылки на реализацию этих функций в Power Pivot. DAX-версия этих функций во многом похожа на Excel-версию с незначительными различиями в синтаксисе и обработке некоторых типов данных.
Использование |
|
---|---|
Возвращает среднее арифметическое всех чисел из столбца. |
|
Функция возвращает среднее (арифметическое) всех значений в столбце. Обрабатывает текстовые и нечисловые значения. |
|
Функция подсчитывает количество числовых значений в столбце. |
|
Функция подсчитывает количество непустых значений в столбце. |
|
Возвращает наибольшее числовое значение из столбца. |
|
Функция возвращает наибольшее значение из набора выражений, вычисленных в таблице. |
|
Возвращает наименьшее числовое значение в столбце. |
|
Функция возвращает наименьшее значение из набора выражений, вычисленных в таблице. |
|
Функция добавляет все числа в столбец. |
В DAX включены агрегатные функции, позволяющие указать таблицу, в которой следует выполнить статистическую обработку. Таким образом, эти функции вместо простого сложения значений в столбце или определения среднего позволяют создавать выражение, которое динамически определяет данные для статистической обработки.
В следующей таблице перечислены агрегатные функции, доступные в DAX.
Использование |
|
---|---|
Функция определяет среднее арифметическое для набора выражений, вычисленных в таблице. |
|
Функция подсчитывает набор выражений, вычисленных в таблице. |
|
Функция подсчитывает количество пустых значений в столбце. |
|
Функция подсчитывает общее количество строк в таблице. |
|
Функция подсчитывает количество строк, возвращенных вложенной табличной функцией, такой как функция фильтра. |
|
Функция возвращает сумму набора выражений, вычисленных в таблице. |
Несмотря на то, что эти функции имеют те же имена, что и их аналоги Excel, они используют обработчик аналитики из памяти Power Pivot и были переписаны для работы с таблицами и столбцами. Нельзя использовать формулу DAX в книге Excel и наоборот. Они могут использоваться только в окне Power Pivot и в сводных таблицах, основанных на данных Power Pivot. Кроме того, несмотря на то, что у функций одинаковые имена, поведение может слегка отличаться. Дополнительные сведения можно найти в справочных материалах по отдельным функциям.
Способ вычисления столбцов в статистическом выражении также отличается от способа обработки статистических выражений в Excel. Проиллюстрировать это поможет пример.
Предположим, требуется получить сумму значений в столбце Amount таблицы Sales, для чего создается следующая формула:
SUM("Sales")
В самом простом случае функция возвращает значения из одного неотфильтрованного столбца, и результат будет таким же, как в приложении Excel, в котором всегда просто суммируются значения в столбце Amount. Тем не менее в Power Pivot формула интерпретируется как "Получить значение в столбце Amount для каждой строки таблицы Sales и затем сложить эти отдельные значения". Power Pivot вычисляет каждую строку, для которой выполняется агрегирование, и вычисляет единичное скалярное значение для каждой строки, а затем агрегирует эти значения. Поэтому результат формулы может быть разным, если к таблице применялись фильтры или если значения вычислялись на основе других агрегатов, где могли использоваться фильтры. Дополнительные сведения см. в статье Контекст в формулах DAX .
В дополнение к табличным статистическим функциям, описанным в предыдущем разделе, в DAX присутствуют агрегатные функции, работающие с задаваемыми датами и временем, для предоставления встроенной логики операций со временем. Эти функции используют диапазоны дат для получения связанных значений и их статистической обработки. Сравнение значений по диапазонам дат также возможно.
Таблица ниже содержит функции логики операций со временем, которые можно использовать для статистической обработки.
Другие функции в разделе "функция логикиопераций со временем" - функции, которые можно использовать для получения дат или настраиваемых диапазонов дат для использования в агрегате. Например, с помощью функции DATESINPERIOD можно получить диапазон дат и использовать этот набор дат в качестве аргумента другой функции для вычисления пользовательского агрегата только по этим датам.
В данной статье мы расскажем о процессе установки PowerPivot для Excel и познакомим с основными элементами данной надстройки.
Чтобы установить вам понадобиться 32-х или 64-х битная версия Excel 2010 и старше, работающая на операционной системе Windows.
Для загрузки надстройки PowerPivot доступны две версии: 32-х и 64-х битная.
Если вы не уверены, какая разрядность у вашей версии, зайдите в Excel, перейдите по вкладке Файл -> Учетная запись –> О программе Excel. В появившемся диалоговом окне, вы найдете интересующую вас информацию.
Для Excel 2010, необходимо скачать пакет установки с официального сайта Microsoft.
Убедитесь, что все Office программы закрыты и запустите установщик. Через несколько минут установка завершится. При первом запуске Excel, вы увидите краткое уведомление, что Microsoft регистрирует PowerPivot. В последующие запуски вы не заметите никакой задержки связанной с надстройкой.
Для Excel 2013 ничего скачивать не надо, так как он уже содержит PowerPivot в своей комплектации. Перейдите по вкладке Файл –> Параметры –> Надстройки. В диалоговом окне выберите Надстройки COM –> Перейти. Впоявившемся окне поставьте галочку напротив Microsoft Office PowerPivot for Excel 2013 и нажмите OK.
После установки на ленте справа вы увидите новую вкладку PowerPivot, которая содержит необычный набор иконок. Некоторые из них продублированы в приложении PowerPivot.
Окно PowerPivot. Вызывает приложение PowerPivot.
Создать меру. После того, как вы создадите сводную таблицу, у вас появится возможность воспользоваться языком формул DAX для создания вычисляемого поля. В PowerPivot такие поля называются мерой.
Создание связанной таблицы. Есть два путиполучения данных с листа Excel в PowerPivot. Первый, копирование и вставка данных для обработки в приложении. Второй, создание связи с реальной таблицей. Для этих целей вам и понадобится эта икнока.
Список полей. Список полей для PowerPivot не совсем такой же, как для сводных таблиц. Команда разработчиков превратила список полей OLAP в более дружественный вид PowerPivot. Вы можете скрывать его с помощью этой иконки.
Обнаружение связей. Этот переключатель позволяет автоматически обнаруживать связи между таблицами.
Когда вы щелкните по кнопке Окно PowerPivot, находящееся в левой части ленты, вы попадете в приложение PowerPivot, которое будет иметь 4 вкладки ленты.
В начало. Здесь находятся инструменты импорта данных в PowerPivot, создания сводных таблиц и инструменты фильтрации и сортировки.
Конструктор. Инструменты управления отношениями между таблицами.
Связанные таблицы. Инструменты управленияссылкамис листа Excel.
Все пункты вкладки Файл связаны с Excel. Щелчок на Сохранить как вернет вас в Excel и откроет диалоговое окно сохранения. Щелчок на Закрыть просто вернет вас в Excel.
В правой части вкладки В начало находятся инструменты, связанные с импортом данных в PowerPivot. Вы можете воспользоваться буфером обмена, чтобы вставить новую таблицу, либо добавить или заменить строки в уже существующей. Вы также можете импортировать данные с баз данных, из отчета SharePoint, из канала данных ATOM или текстового файла.
В правой части вкладки В начало находятся инструменты связанные с отображением данных в окне PowerPivot.
Во вкладке Конструктор вы сможете добавить новые колонки или создать связи между таблицами. К тому же в данной вкладке можно вводить формулы DAX и создавать вычисляемы столбцы.
Данная вкладка доступна только тогда, когда у вас есть связанная с Excel таблица. Здесь вы можете воспользоваться иконками для обновления данных, либо для переключения режимов обновления: автоматический или ручной.
Бесплатно распространяемая надстройка PowerPivot появилась в версии Excel 2010. Она включает шесть весьма полезных инструментов и создана независимыми разработчиками. В Excel 2013 функции PowerPivot наряду с моделью данных встроены непосредственно в ядро программы.
Модель данных, которая рассматривалась , предоставляет доступ лишь к некоторым возможностям PowerPivot, а для получения доступа ко всем инструментам придется установить саму надстройку PowerPivot, входящую в комплект поставки Office 2013 Professional Plus. Надстройку можно также получить, подписавшись на Office 365 Business. Если же вы пользуетесь версией Office 2013 Home and Student либо Standard, механизм PowerPivot по-прежнему доступен, однако окно PowerPivot заблокировано, а доступ к некоторым возможностям закрыт.
Скачать заметку в формате или , примеры в (содержит несколько файлов Excel и базу данных в формате txt)
Преимущества и недостатки PowerPivot и модели данных
Начнем с рассмотрения трех основных возможностей PowerPivot и проанализируем, каким образом они реализованы в каждой версии Excel.
Создание сводных таблиц на основе нескольких исходных таблиц без использования функции ВПР. Эта возможность доступна во всех версиях Excel 2013. В версии Standard вы не увидите слово PowerPivot (вместо него используется фраза модель данных ). Если же установлена надстройка PowerPivot, создание связей между таблицами легко выполняется с помощью графического представления.
Импорт 100 млн. строк в рабочую книгу. Таблицы PowerPivot могут включать неограниченное число строк. Мне приходилось видеть подобные таблицы, состоящие из 100 млн. строк. Единственное ограничение - размер файла книги, равный 2 Гбайт, и объем оперативной памяти. Благодаря использованию алгоритма сжатия VertiPaq текстовый файл объемом 50 Мбайт сжимается до 4 Мбайт, занимаемых файлом с таблицей PowerPivot. Если количество столбцов в подобной таблице равно 10, количество строк будет составлять 950 млн. Эта возможность доступна во всех версиях Excel 2013. В версии Office Standard можно импортировать записи из таблицы PowerPivot и создавать сводные таблицы, но при этом не допускается просмотр записей. Для выполнения просмотра следует установить надстройку PowerPivot. Невозможность просмотра записей сводной таблицы является серьезным неудобством, поскольку перед созданием любого отчета будет нелишним просмотреть входящую в этот отчет информацию.
Создание улучшенных формул с помощью языка формул DAX. недоступен в стандартных версиях Excel 2013. Чтобы получить доступ ко всем инструментам этого языка, позволяющим создавать новые формулы в таблицах PowerPivot и добавлять новые вычисляемые столбцы в сводные таблицы, установите надстройку PowerPivot. Язык формул DAX предоставляет пользователю разнообразные возможности, хотя и не слишком прост в освоении.
Преимущества модели данных PowerPivot, доступные во всех версиях Excel. Ниже приведен ряд дополнительных преимуществ, обеспечиваемых моделью данных:
Рис. 2. Включение в итоги ранее отфильтрованных значений: (а) итоги включают доход по 10 лучшим заказчикам; (б) итоги включают доход по всем заказчиках, хотя отражены в сводной таблице только первые 10
Преимущества надстройки PowerPivot в версии Excel Pro Plus. Если вы пользуетесь версией Excel Pro Plus, которая поддерживает надстройку PowerPivot, вы получите следующие преимущества:
Ограничения модели данных. Модель данных позволяет встраивать обычные данные Excel в модель OLAP. Эта операция сопряжена с некоторыми преимуществами и недостатками. Разработчики Excel 2013 постарались устранить ограничения и недостатки модели данных, но некоторые из них все равно остались:
Объединение нескольких таблиц с помощью модели данных в Excel 2013
Специалисты из компании Microsoft внедрили лучшие инструменты PowerPivot в Excel 2013. Также доступна версия Office Pro Plus с полнофункциональными модулями PowerPivot, Power View и Inquire. В стандартных версиях Excel 2013 базовые возможности PowerPivot реализованы с помощью модели данных. На рис. 1 представлено диалоговое окно Создание сводной таблицы . Наличие в этом окне флажка означает, что вы имеете дело с PowerPivot. Подробнее об объединении нескольких таблиц в одной сводной с помощью модели данных см. . Эта функция работает как в том случае, когда у вас установлен модуль PowerPivot, так и в случае использования встроенных возможностях Excel.
Использование экспресс-просмотра. После выбора произвольной ячейки сводной таблицы, созданной на основе модели данных, появится значок экспресс-просмотра (рис. 3). Этот значок могут видеть только пользователи Excel 2013, и он отображается только в том случае, если сводная таблица создана на основе модели данных. Экспресс-просмотр предназначен для оказания помощи пользователю, который собирается изменить сводную таблицу. После щелчка на этом значке появится окно, в котором отображаются подсказки по изменению сводной таблицы.
В данном случае подсказки, отображаемые в окне экспресс-просмотра, не слишком полезны. На рис. 4 показан результат детализации дохода по регионам.
Рис. 4. Получившаяся сводная таблица не слишком полезна для менеджеров, но во многих случаях экспресс-просмотр поможет сформировать более информативную сводную таблицу
Создание новой сводной таблицы на основе существующей модели данных. Эта операция немного сложнее, чем при работе с обычными сводными таблицами:
Подсчет количества различных элементов. Одна из таких возможностей сводных таблиц - подсчет количества уникальных записей. В сводных таблицах Excel могут подсчитываться текстовые значения. Типичный пример подобной сводной таблицы показан на рис. 6. В этой таблице поле Сектор находится в области СТРОКИ, а поля Заказчик и Доход - в области ЗНАЧЕНИЯ. Итоговое количество заказчиков, отображаемое этой сводной таблицей, равно 563, что не соответствует действительности. На самом деле в данном случае речь идет о 563 непустых записях, соответствующим заказчикам, которые могут повторяться. Подобная накладка связана с ограничениями обычных сводных таблиц.
Если сводная таблица основана на модели данных, выполните следующие действия.
Использование надстройки PowerPivot в Excel 2013 Pro Plus
Если ваша версия Excel 2013 поддерживает надстройку PowerPivot, вы сможете:
Если вы планируете обрабатывать миллионы записей, установите 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. Чтобы активизировать эту надстройку, выполните следующие действия:
После установки надстройки на ленте Excel 2013 появится вкладка PowerPivot (рис. 8).
Импорт текстового файла. Исходная таблица включает 1,8 млн. записей, находящихся в файле BigDatal.txt (часть файла в окне программы Блокнот показана на рис. 10). Заголовки столбцов находятся в первой строке файла. Может потребоваться удаление нестандартных строк, находящихся в верхней части файла, дабы избежать проблем при их обработке с помощью надстройки PowerPivot. К сожалению, даты в файле имеют американский формат, поэтому в дальнейшем обрабатываются некорректно.
Для импорта файла, содержащего 1,8 млн. строк, в PowerPivot выполните следующие действия.
1. Перейдите вкладку PowerPivot. Щелкните на значке Управление . На экране появится окно приложения PowerPivot, в котором отображается собственная лента (рис. 11). В этом окне центральное место занимает таблица, с помощью которой можно просматривать данные в модели PowerPivot. В окне PowerPivot находятся следующие три вкладки: В начало , Конструктор и Дополнительно .
Рис. 11. Щелкните на значке Управление, находящемся на вкладке PowerPivot ленты Excel, чтобы открыть окно надстройки PowerPivot, в котором отображается собственная лента
2. Импортируйте таблицу из файла BigDatal.txt. Для этого в группе Получение внешних данных щелкните на кнопке Из других источников . На экране появится диалоговое окно Мастер импорта таблиц .
3. В окне Мастер импорта таблиц выберите самый нижний пункт Текстовый файл . Щелкните на кнопке Далее .
4. Введите в поле Понятное имя соединения имя для своего соединения.
5. Щелкните на кнопке Обзор и найдите текстовый файл. Если данные включают заголовки, PowerPivot обнаружит их.
6. Проверьте, чтобы в качестве разделителя была выбрана запятая. В раскрывающемся списке Разделитель столбцов отображается ряд стандартных разделителей, таких как запятая, точка с запятой, вертикальная черта и др.
7. Если хотите отказаться от импорта какого-либо столбца, отмените установку соответствующих флажков. Текстовый файл готов к загрузке в оперативную память. Учтите, что можно существенно уменьшить объем используемой оперативной памяти, если исключить лишние столбцы, особенно когда они включают длинные текстовые значения. Для этого сбросьте флажки, соответствующие скрываемым столбцам (рис. 12).
8. Обратите внимание: каждому полю соответствуют раскрывающиеся списки фильтров. С помощью этих списков можно сортировать и фильтровать наборы данных, включающие десятки и сотни тысяч записей (например, исключать определенные данные из отчета). Только учтите, что при большом количестве записей эти операции выполняются очень медленно.
9. После щелчка на кнопке Готово PowerPivot начинает загружать файл в память. При этом отображается количество строк, загруженное в настоящий момент (рис. 13).
10. После завершения импорта файла отображается количество загруженных строк. Щелкните на кнопке Закрыть , чтобы вернуться в окно PowerPivot.
11. В окне PowerPivot отображается 1,8 млн. записей. Для их просмотра можно воспользоваться вертикальной полосой прокрутки. Можно также выполнить сортировку, изменить числовой формат либо применить фильтр (рис. 14).
Назначьте столбцам числовой формат. Поле даты предназначено для хранения даты и времени. Если исходные данные не включают компонент времени, выберите заголовок даты и воспользуйтесь раскрывающимся списком Формат , находящимся в группе Форматирование вкладки В начало ленты PowerPivot. Выберите формат 14.03.2001. К столбцу Доход примените формат валюты. Если не хотите, чтобы в сводной таблице отображались цифры после запятой, уменьшите до нуля количество цифр после запятой.
Если щелкнуть на столбце правой кнопкой мыши, отобразится контекстное меню, с помощью которого можно переименовывать, фиксировать и копировать столбцы. С помощью этого меню можно скрывать столбец из списка полей сводной таблицы в Excel.
Несмотря на то что PowerPivot выглядит как Excel, на самом деле это не Excel. Вы не сможете изменять отдельные ячейки. Если в ячейку Е1 добавить формулу, вычисляющую сумму, эта формула будет автоматически скопирована во все строки. Если отформатировать значение в одной ячейке, все ячейки в этом столбце будут также отформатированы.
Чтобы изменить ширину столбцов, перетащите границу между названиями столбцов (как в Excel).
Итак, у вас есть 1,8 млн. записей, которые можно сортировать, фильтровать и объединять в сводные таблицы. Обратите внимание на то, что 1,8 млн. строк, импортированных из текстового файла, хранятся в книге Excel. Можно скопировать файл.xlsx на новый компьютер, после чего все строки окажутся на новом компьютере. Исходный текстовый файл имеет размер 58 Мбайт, а сжатый файл Excel имеет размер всего лишь 4 Мбайт.
Добавление данных Excel методом копирования и вставки. В нашем примере таблицы PowerPivot информация о магазине ограничивалась лишь полем Код [магазина]. Сведения о названии либо местоположении магазина отсутствовали. Проблему можно устранить с помощью небольшого файла Excel, в котором коды магазинов сопоставляются с названиями и другой идентификационной информацией. Эти данные можно добавить на новую вкладку в окне PowerPivot. Можно воспользоваться копированием и вставкой, как описано ниже, либо создать связанную таблицу (см. следующий раздел), которая удобнее в применении.
Чтобы воспользоваться операциями копирования и вставки, выполните следующие действия:
Рис. 16. Окно Просмотр вставки
В окне PowerPivot появилась новая вкладка Магазины , на которой находятся дополнительные сведения о магазинах. Обратите внимание: в нижней части окна PowerPivot находятся ярлычки рабочих листов (рис. 17). Данные, вставленные из буфера обмена, представляют собой статическую копию данных Excel. Если данные Excel изменяются, скопируйте их и выполните команду PowerPivot Вставить с заменой .
Добавление данных Excel с помощью связывания. В предыдущем разделе была добавлена таблица Магазины путем выполнения операций копирования и вставки. При этом фактически создаются две копии данных. Одна из них хранится на рабочем листе Excel, а вторая - в окне PowerPivot. Если изменяется исходный лист, содержимое окна PowerPivot остается неизменным. Если подобная ситуация вас не устраивает, свяжите данные из таблицы Excel с данными в окне PowerPivot:
Рис. 18. Новая таблица в PowerPivot – Код_магазина
Определение связей. Обычно для связывания двух таблиц в Excel используется функция ВПР. В PowerPivot эта задача решается гораздо проще:
1. В окне PowerPivot перейдите на вкладку В начало и щелкните на кнопке Представление диаграммы . Отобразятся две таблицы, находящиеся рядом друг с другом (рис. 19).
2. Щелкните в поле Код в основной таблице (BigData) перетащите, и отпустите его, находясь над полем Код магазина области Магазины . Появятся стрелки, соответствующие установленной связи.
3. Чтобы вернуться к таблице PowerPivot, щелкните на значке Представление данных , находящемся на вкладке В начало окна PowerPivot .
Добавление вычисляемых столбцов с помощью DAX. Один из недостатков сводных таблиц, созданных на основе данных PowerPivot, заключается в том, что они не могут обеспечить автоматическую группировку ежедневных данных по годам. Поэтому перед созданием сводной таблицы воспользуйтесь языком формул DAX для добавления нового вычисляемого столбца в таблицу PowerPivot.
Создание сводной таблицы:
Рис. 22. Создание сводной таблицы в окне PowerPivot
Далее можно воспользоваться инструментами из набора контекстных вкладок Работа со сводными таблицами для форматирования сводной таблицы. Например, можно применить валютный формат и переименовать поле Сумма по столбцу Доход , выбрать формат с чередующимися строками и т.п.
Различия между сводными таблицами PowerPivot и Excel. Если до сих пор вы создавали только обычные сводные таблицы Excel, сводные таблицы PowerPivot могут показаться вам неудобными. Причина появления многих проблем связана не с самой надстройкой PowerPivot , а с тем, что сводная таблица PowerPivot является сводной таблицей OLAP и ведет себя соответствующим образом. При работе со сводными таблицами PowerPivot следует учитывать, что:
Два вида вычислений DAX
Только что мы рассматрели пример использования функции DAX (YEAR) для объявления вычисляемого столбца в таблице, которая отображается в окне PowerPivot . Для создания подобных столбцов используется 81 функция, большинство из которых копируются непосредственно из Excel. Многие из функций DAX аналогичны соответствующим функциям Excel за некоторыми исключениями, которые будут рассмотрены ниже. С помощью DAX также можно создавать новые вычисляемые поля в сводной таблице. Эти функции предназначены не для вычисления единственного значения ячейки, а для определения значений отфильтрованных строк, связанных с ячейками сводной таблицы (агрегирующие функции). В DAX имеется 54 таких функций. Реальная мощь PowerPivot заключается именно в этих функциях.
Использование функций DAX в вычисляемых столбцах. Такие функции весьма напоминают обычные функции Excel, поэтому для большинства из них не требуются дополнительные объяснения. Но некоторые функции DAX отличаются от функций Excel:
Использование функции RELATED, чтобы вычисления в столбцах основывались на значениях другой таблицы. В ходе вычислений в таблице PowerPivot может понадобиться ссылаться на значения, находящиеся в других ячейках PowerPivot . В стандартной версии Excel в подобных случаях применяется функция ВПР. В PowerPivot используется функция RELATED.
В рассматриваемом примере используется таблица BigData, включающая поле Код [магазина] и Доход (сумма продаж за день). В отчетах о продажах часто используется такой показатель, как величина продаж на квадратный метр площади. В связанной таблице Магазины находятся поля Код магазина и Торговая площадь . В наборе этих полей находятся все данные, требуемые для выполнения вычислений.
Чтобы начать создание новой формулы, перейдите в таблицу PowerPivot и щелкните в пустой ячейке колонки Добавление столбца . Введите знак равенства и щелкните в ячейке, находящейся в столбце Доход . Начните вводить формулу в PowerPivot : = [Доход]. Введите знак косой черты, обозначающий деление. Теперь нужно получить доступ к полю Торговая площадь , находящемуся в таблице Магазины . Начните ввод функции RELATED(. Укажите несколько первых букв названия таблицы – Ма . Отобразится список полей в таблице Магазины (рис. 24). Дважды кликните в поле Торговая площадь . Завершите создание формулы вводом закрывающей круглой скобки и нажатием клавиши Enter. Щелкните правой кнопкой мыши на столбце и в контекстном меню выберите параметр Переименовать столбец . Присвойте новое имя, например, ПродажиНаКвМ .
Используя вычисляемые столбцы и связи, можно создать ряд интересных сводных таблиц. Вычисляемые столбцы просчитываются для каждой строки базовых данных. В результате формула Продажи на квадратный метр торговой площади выполняется 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.
Создание вычисляемого поля DAX. Для создания вычисляемого поля перейдите на ленту Excel, выберите вкладку PowerPivot и выполните команду Вычисляемые поля — Создание вычисляемого поля . На экране появится диалоговое окно Вычисляемое поле . В поле Имя таблицы укажите название таблицы. Присвойте вычисляемому полю имя, например, КоличествоМагазинов . На панели ввода формул введите формулу. Для вставки названий функций щелкните на значке fх . В процессе ввода названий полей начните вводить несколько символов имени таблицы, а затем с помощью функции автозавершения выберите нужное поле.
После завершения ввода формулы щелкните на кнопке Проверить формулу , чтобы протестировать синтаксис формулы. Обратите внимание на подсказку формулы, которая отображается над панелью, показывающей результаты проверки формулы. Щелкните в поле Описание , чтобы скрыть подсказку. На экране появятся результаты проверки формулы. Если проверка формулы завершилась успешно, отобразится сообщение Формула не содержит ошибок (рис. 26). Щелкните ОК , чтобы добавить вычисляемое поле в список полей сводной таблицы. В таблице Магазины модели PowerPivot новое поле не появилось, а вот в сводной таблице оно есть (рис. 27). Совсем, как в обычной сводной таблице!
Однажды созданное вычисляемое поле можно использовать для выполнения вычислений в будущем. Вычисляемое поле ПродажиМагазина (рис. 28) использует следующую формулу:
SUMX(BigData;BigData[Доход])/[КоличествоМагазинов]
Рис. 28. Поле ПродажиМагазина вычисляется на основе ранее созданного поля КоличествоМагазинов
Чтобы упростить структуру сводной таблицы, можно не отображать поля Сумма по столбцу Доход и КоличествоМагазинов , оставив поле ПродажиМагазина .
Как отменить стандартную фильтрацию. А теперь рассмотрим следующую проблему. На рис. 29 выделена ячейка С5. В результате применения фильтров к этой ячейке отображаются записи, соответствующие торговцу по имени Амбер и дате продажи 01.06.2014. В этом и следующих разделах (вплоть до Практикума) используется Excel-файл Пример фильтра. xlsx
Как уже упоминалось ранее, все фильтры, заданные к ячейке сводной таблицы, автоматически применяются к вычисляемому полю DAX. Во многих случаях это неприемлемо. В ячейке G6 отображается сумма проданных товаров, равная 165 долларам, которая не связана с каким-либо продавцом. Применяемая в данном случае политика заключается в том, чтобы сумма, равная 165 долларам, была назначена другим людям на основе их доли (в процентах) от суммы проданных товаров в этот же день, причем продавец Хьюз не участвует в продажах. Можно ли реализовать эту политику в данной сводной таблице?
Обратите внимание на то, что вычисления, выполняемые в ячейке С5, неявно фильтруются таким образом, чтобы отображать только продажи Амбера. Нужно создать формулу DAX, которая будет отменять фильтрацию данных. Эта формула будет отменять фильтр, отображающий соответствующие Амберу записи, и отображать записи, которые не связаны с Амбером. Функция DAX CALCULATE может удалять установленные фильтры и применять другие фильтры. Эта функция напоминает функцию СУММЕСЛИМН, но предоставляет пользователям больше возможностей.
Функция CALCULATE применяется для вычисления столбца итогов с учетом одного либо нескольких фильтров. Если для поля Продавец задать фильтр, он заменит фильтр, ранее заданный для этого поля. Если создать фильтр Продавец =Хьюз , DAX автоматически проигнорирует неявный фильтр Продавец =Амбер , что приведет к отображению всех записей, соответствующих Хьюзу. Если вам сложно с ходу научиться создавать формулы DAX, попробуйте поэтапную методику. Вместо многоэтажных формул сформируйте набор, состоящий из небольших формул. Формула, вычисляющая объем продаж Хьюза (рис. 30):
CALCULATE([Сумма по столбцу Продажи];Sls[Продавец]= " Хьюз ")
После задания вычисляемого поля можно использовать его в других вычисляемых полях.
Задайте следующие вычисляемые поля:
Теперь пришла очередь применить фильтр к столбцу Продавец , чтобы скрыть долю Хьюза из сводной таблицы. В результате получим сумму продаж 911 долларов за 2 июня (значение в ячейке Н6, рис. 31), при том что доля Хьюза распределена между другими продавцами. Сравните значения по каждому отдельному продавцу и итоги по дням в таблицах на рис. 30 и 31. Подобного результата невозможно добиться с помощью вычисляемых полей, создаваемых в обычной сводной таблице.
ПРАКТИКУМ: Вычисление диапазона цен на товары
Вычисляемые поля, заданные в обычной сводной таблице, всегда просчитываются по строкам исходного набора данных. Один из подписчиков сайта MrExcel попытался вычислить диапазон цен на товары с помощью формулы МАКС(Цена) – МИН(Цена) , заданной в обычной сводной таблице. При создании вычисляемого поля в сводной таблице Excel просматривает каждую строку исходных данных, и вычисляет максимальное значение в этой строке (рис. 32). Поскольку в каждой строке отображается лишь единственное значение цены, максимальное значение в каждой строке исходных данных будет соответствовать единственному значению цены. То же самое можно сказать и о минимальном значении. Другими словами, МАКС – МИН = Цена – Цена , то бишь 0. В результате для каждого товара, отображаемого в сводной таблице, разница между наибольшей и наименьшей ценами будет равно нулю. Этот абсолютно некорректный результат получен из-за правил, присущих вычисляемым полям в обычных сводных таблицах (рис. 33).
Воспользуйтесь возможностями DAX для решения этой задачи.
Создание вычисляемых полей DAX путем добавления полей в область ЗНАЧЕНИЯ. После добавления поля Цена в область ЗНАЧЕНИЯ и выбора функции Минимум PowerPivot автоматически создает вычисляемое поле DAX, отображающее полученный результат. Благодаря этому вам не придется использовать формулу =MINX(‘Продажи’;’Продажи"[Цена]). Можно просмотреть неявные вычисляемые поля в окне PowerPivot. Выполните команду PowerPivot — Управление и на вкладке Дополнительно щелкните на кнопке Показать неявные вычисляемые поля . Новые поля появятся в строках, отображенных в нижней части окна (рис. 35).
Если установить указатель мыши над нижней частью окна, появится подсказка «PowerPivot автоматически сформировал это вычисляемое поле путем добавления поля к области значений в списке полей Excel. Поле доступно только для чтения и будет автоматически удалено при удалении столбца».
При создании формулы DAX проще временно добавить поле в область значений, чтобы сгенерировать неявное поле. Это поле может использоваться при создании других формул DAX. После создания новой формулы в сводной таблице можно удалить неявное поле из нее. Эти поля остаются в окне PowerPivot, поскольку на них ссылаются новые меры DAX.
Чтобы вычислить диапазон цен, можно создать следующую формулу DAX:
Мах(‘Продажи’; ‘Продажи"[Цена])-Minx(‘Продажи’; ‘Продажи"[Цена])
Использование функций работы со временем
В DAX существует набор функций работы со временем. Для использования этих функций требуется специальная таблица, включающая даты (календарная таблица). Любая таблица может включать поле даты. Дата, отображаемая в исходном наборе данных, будет появляться в единственной строке таблицы дат. Если нужны дополнительные столбцы, идентифицирующие дату как относящуюся к определенному году, месяцу или дню недели, добавьте эти столбцы в календарную таблицу. Существует множество способов формирования подобных таблиц, но пользователи Excel обычно создают их в среде Excel:
Начиная с этого раздела и до конца заметки используются данные из Excel-файла Пример календарь.xlsx.
Добавление данных в таблицу PowerPivot и выполнение форматирования. В этом заключительном примере главы будет рассмотрено несколько дополнительных действий, направленных на улучшение заключительного отчета. Начнем с добавления таблиц Продажи и Календарь в PowerPivot:
Теперь выполним форматирование этих двух таблиц в окне PowerPivot:
Рис. 37. Создание связи между таблицами Продажи и Календарь
В PowerPivot не поддерживается автоматическая сортировка по пользовательским спискам. Я большой поклонник PowerPivot и пишу книги соответствующей тематики с 2009 года. И в первой книге по PowerPivot я несколько раз упоминал о том, что в PowerPivot не выполняется автоматическая сортировка по названиям месяцев (в последовательности «январь, февраль, март…»). В сводных таблицах PowerPivot названия месяцев сортируются по алфавиту (апрель, август, июль…), и эта проблема не устранена даже в версии PowerPivot for Excel 2013.
В обычных сводных таблицах, использующих стандартный кеш, выполняется автоматическая сортировка всех полей на основе пользовательских списков. Но, увы, эта сортировка недоступна для сводных таблиц PowerPivot. Чтобы преодолеть это:
Создание сводной таблицы с расширенными возможностями. В окне PowerPivot выберите таблицу Продажи . На вкладке В начало раскройте список Сводная таблица и выберите пункт Сводная таблица . Вы вернетесь в Excel и в списке полей сводной таблицы отобразятся поля таблицы Календарь и таблицы Продажи . Установите указатель мыши над полем Дата и раскройте список. Выберите пункт Фильтры по дате , позволяющий получить доступ ко всем фильтрам по дате, которые используются в обычных сводных таблицах (рис. 39).
Рис. 39. Благодаря тому, что таблица Календарь была объявлена как таблица дат, появилась возможность получать доступ ко всем фильтрам по дате
Выполните следующие действия, чтобы добавить поля в сводную таблицу:
Результат только что выполненных действий показан на рис. 40. Поскольку была выполнена сортировка дней недели по номерам, дни недели в окне среза отображаются в правильной последовательности.
Если вы видите окно PowerPivot впервые, вряд ли вы будете впечатлены его возможностями. Если же вы работали с PowerPivot в предыдущих версиях Excel, то сможете по достоинству оценить корректную сортировку дней недели.
«Умные» функции времени. После выполнения предварительной работы пришло время вплотную заняться «умными» функциями времени. Начните с реорганизации сводной таблицы, изображенной на рис. 40:
В результате будет получена сводная таблица, показанная на рис. 41. Объем продаж за 2 июня 2015 года составил 937 долларов.
А сейчас мы создадим вычисляемые поля DAX, с помощью которых сравним объем продаж текущего дня с объемом продаж такого же дня предыдущего года. Ранее уже упоминалось, что эта задача не столь уж проста, поскольку к ячейке С9 применен фильтр, отображающий записи с датой 2.06.2015. Поэтому нужно отменить фильтр по полю даты, а затем применить новый фильтр, который позволит отобразить записи прошлого года.
Чтобы отменить фильтр, примененный к полю даты, необходимо воспользоваться функцией CALCULATE. Но что делать, если нужно отобразить записи, соответствующие прошлому году? Воспользуйтесь одной из более чем 30 «умных» функций времени, поддерживаемых в DAX, а именно - функцией DATEADD.
Чтобы выбрать точно такой же день ровно год назад, воспользуйтесь формулой DATEADD (‘Календарь"[Дата];–1;year). В качестве третьего аргумента может использоваться day, month либо year. Учтите, что эти аргументы являются перечисляемыми (т.е. при программировании в Excel определяются в качестве глобальных переменных, которые при выполнении программы преобразуется в числовой код), поэтому не заключаются в кавычки подобно текстовым аргументам.
Функция DATEADD используется при создании многих формул, вычисляющих периоды времени. Например, чтобы просмотреть дневной объем продаж, который имел место три месяца назад, воспользуйтесь формулой =DATEADD(‘Календарь"[Дата];–3;month). И не забывайте о том, что функция DATEADD - всего лишь одна из 34 «умных» функций, предназначенных для работы со временем. Например, еще одна функция из этой категории используется в формуле DATESMTD (‘Календарь"[Дата]), которая отображает все даты вплоть до текущего дня месяца.
Предположим, что в вашей модели данных столбец даты находится в таблице Продажи и в таблице Календарь . «Умные» функции времени будут всегда корректно работать, если используется ссылка на поле ‘Календарь"[Дата]. И они же будут работоспособны лишь в 10% случаев, если сослаться на поле ‘Продажи"[Дата]. Если хотите поломать голову над сложной задачей, попробуйте создать формулу DAX со ссылкой на поле ‘Продажи"[Дата]. После проверки корректности синтаксиса на экране появится бодрое сообщение об отсутствии ошибок, и тем не менее сводная таблица отображает некорректные результаты. Я не могу обнаружить причину подобного странного поведения формулы. Но если формула будет применена к полю ‘Календарь"[Дата], будут получены корректные результаты.
Итак, в вашем распоряжении имеется функция DATEADD, которая позволяет идентифицировать дату, которая ровно на год отстоит от даты, указанной в строке сводной таблицы. Чтобы отобразить объем продаж на эту дату, воспользуйтесь функцией CALCULATE, которая переопределяет существующие неявные фильтры. Поскольку в строке 9 сводной таблицы используется неявный фильтр, отображающий записи, соответствующие дате 2 июня 2015 года, воспользуйтесь следующей формулой, включающей функцию CALCULATE:
CALCULATE([Сумма по столбцу Продажи];DATEADD(‘Календарь"[Дата];-1;year))
Выполните следующие действия:
Чтобы завершить анализ, добавьте второе вычисляемое поле, которое будет использоваться для подсчета динамики изменений в процентах. Для этого выполните следующие действия:
Получившаяся сводная таблица показана на рис. 43.
Теперь можно удалить из сводной таблицы поля Продажи и ПродажиЗаПоследнийГод , оставив поле ПроцентноеИзменение и добавить имя продавцов (поле Торговец ) в область КОЛОННЫ (рис. 44). В каждой ячейке сводной таблицы показана динамика продаж по сравнению с прошлым годом (странно, но мне не встречалось, чтобы анализировали ежедневную динамику).
Рис. 44. Сводная таблица с вычисляемым полем ПроцентноеИзменение
Чтобы получить таблицу, показанную на рис. 44, выполните следующие действия:
Чтобы получить дополнительные сведения о DAX, посетите блог Роба Колли http://www.powerpivotpro.com/ (я купил книжку Колли, так что предвижу замечательное чтение).
Использование ключевых показателей эффективности
Ключевые показатели эффективности (КПЭ) появились в текущей версии PowerPivot . В настоящее время они функционируют с ошибками, поскольку реализованы не идеально. Чтобы воспользоваться КПЭ, следует создать хотя бы одно вычисляемое поле DAX, которое будет использоваться в качестве базового. Дополнительно можно также создать второе вычисляемое поле DAX, которое послужит в качестве целевого значения.
Настройка КПЭ для абсолютного целевого значения. Чтобы задать и отобразить КПЭ в сводной таблице, выполните следующие действия.
Заметка написана на основе книги Джелен, Александер. . Глава 10.
Сведения
1049\ReadMe_PowerPivot.htm
1049\x64\PowerPivot_for_Excel_amd64.msi
1049\x86\PowerPivot_for_Excel_x86.msi
Дата публикации:
Примечание. Windows Azure Marketplace DataMarket - это удобный поставщик доверенных платных и общедоступных данных. В разделе DataMarket можно найти данные, изображения и онлайн-услуги от ведущих коммерческих поставщиков данных и из официальных открытых источников данных. Информационные работники могут использовать DataMarket для поиска, покупки и управления платными подписками на данные. Кроме того, они могут просматривать наборы данных в DataMarket, используя богатые возможности представления данных, и находить приложения сторонних разработчиков, построенные на базе этих наборов данных.
Наиболее свежую версию документации по PowerPivot можно найти в Дополнительные статьи, блоги и другое содержимое, созданное пользователями, можно найти на
Внимание!
Следует учитывать, что PowerPivot для Microsoft Excel работает только с последней версией Microsoft Office 2010. Чтобы загрузить или приобрести пакет Microsoft Office 2010, перейдите
Требования к системе
Поддерживаемая операционная система
Windows 7; Windows Server 2008 R2; Windows Server 2008 Service Pack 2; Windows Vista Service Pack 2
Инструкции по установке
В следующих нескольких разделах рассматриваются примеры использования файла ChlOWeatherMashup.xlsx, в котором находятся сведения о продажах по дням и набор данных о точках продажи. Компания продает продукты в супермаркете и в аэропорту. Две торговые точки находятся менее чем в 10 милях друг от друга, но при этом демонстрируют различные тенденции продаж.
С помощью веб-запроса и макроса загружаются сведения о погоде на каждый день в течение трех лет. Рассматриваются примеры мер DAX, которые представляют собой совокупность метеопрогнозов и данных о продажах. Подобная совокупность позволяет определить связь между погодой и объемом продаж.
В процессе создания рабочей книги используется язык формул DAX для создания следующих вычисляемых столбцов.
Многие пользователи выражают свое недовольство, когда узнают, что сводные таблицы PowerPivot не поддерживают пользовательские списки, отображающие дни недели, и им приходится создавать вычисляемый столбец WeekdayID.
Затем вычисляется уровень продаж в зависимости от численности персонала торговых точек. Две имеющиеся торговые точки обеспечивают различные уровни продаж по дням недели. В торговой точке, находящейся в аэропорту, обычно работает один продавец, но в дни наибольшего трафика (пятница, воскресенье и понедельник) количество продавцов увеличивается до двух. В торговой точке, находящейся в торговом центре, дополнительный персонал появляется по пятницам и субботам. Для вычисления численности персонала в заданный день недели нужно выполнить конкатенацию значений, находящихся в полях 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.