Mdx в excel что это

1. Получаем разрешение на доступ к OLAP-кубу SQL Server Analysis Services (SSAS)
2. На вашем компьютере должен быть установлен MS Excel 2016 / 2013 / 2010 (можно и MS Excel 2007, но в нем работать не удобно, и совсем бедная функциональность MS Excel 2003)
3. Открываем MS Excel, запускаем мастер настройки соединения с аналитической службой:

Инициация подключения к серверу Microsoft Analysis Services

3.1 Указываем имя или IP-адрес действующего сервера OLAP (иногда требуется указать номер открытого порта, например, 192.25.25.102:80); используется доменная аутентификация:

Подключение к серверу Microsoft Analysis Services

3.2 Выбираем многомерную базу данных и аналитический куб (в случае наличия прав доступа к кубу):

Выбор многомерной базы и куба Microsoft Analysis Services

3.3 Настройки соединения с аналитической службой будут сохранены в odc-файле на Вашем компьютере:

Сохранение подключения к серверу Microsoft Analysis Services в odc-файле

3.4 Выбираем вид отчета (сводная таблица/график) и указываем место для его размещения:

Выбор вида OLAP-отчета

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

4. Успешно подключились к кубу, можно приступать к интерактивному анализу данных:

Структура OLAP-куба - поля сводной таблицы

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

Каждый раз, когда изменяется сводная таблица, на сервер OLAP автоматически отправляется MDX-инструкция, по исполнении которой возвращаются данные. Чем больше и сложнее объем обрабатываемых данных, рассчитываемых показателей, тем дольше время исполнения запроса. Отменить исполнение запроса можно нажатием клавиши Escape. Последние выполненные операции можно отменить (Ctrl+Z) или вернуть (Ctrl+Y).

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

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

После размещения иерархии в области строк / столбцов возможно скрыть отдельные уровни:

Скрытие атрибутов иерархии в сводной таблице

У ключевых атрибутов (реже — для атрибутов выше по иерархии) измерений могут быть свойства — описательные характеристики, которые могут отображаться как во всплывающих подсказках, так и в виде полей:

Отображение свойств атрибута измерения в сводной таблице

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

Пакетное отображение свойств атрибута измерения в сводной таблице

Определяемые пользователем наборы

В Excel 2010 появилась возможность интерактивного создания собственных (определяемых пользователем) наборов из элементов измерения:

Интерактивное создание пользовательских наборов элементов измерения

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

Пользовательские наборы элементов измерения в структуре сводной таблицы

Продвинутые пользователи могут создавать наборы, используя MDX конструкции:

Создание пользовательских наборов элементов измерения посредством MDX запроса

Настройка свойств сводной таблицы

Посредством пункта «Параметры сводной таблицы…» контекстного меню (щелчок правой кнопкой мыши в рамках сводной таблицы) предоставляется возможность настройки сводной таблицы, например:
— вкладка «Вывод», параметр «Классический макет сводной таблицы» — сводная таблица становится интерактивной, можно перетаскивать поля (Drag&Drop);
— вкладка «Вывод», параметр «Показывать элементы без данных в строках» — в сводной таблице будут отображаться пустые строки, не содержащие ни одного значения показателя по соответствующим элементам измерений;
— вкладка «Разметка и формат», параметр «Сохранять форматирование ячеек при обновлении» — в сводной таблице можно переопределить и сохранить формат ячеек при обновлении данных;

Настройка свойств сводной таблицы OLAP

Создание сводных диаграмм

Для имеющейся сводной OLAP-таблицы можно создать сводную диаграмму – круговую, линейчатую, гистограмму, график, точечную и другие виды диаграмм:

Вставка сводной диаграммы OLAP

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

Создание информационных панелей

Выделим исходную сводную таблицу, скопируем ее в буфер обмена (Ctrl+C) и вставим её копию (Ctrl+V), в которой изменим состав показателей:

Объединение OLAP-таблиц в информационную панель

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

Вставка срезов (глобальных фильтров) в сводную таблицу OLAP

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

Настройка срезов сводных таблиц OLAP

Исполнение MDX запроса из Excel

  1. Прежде всего, необходимо выполнить операцию DRILLTHROUGH на каком-нибудь показателе, т.е. спуститься к детализированным данным (детализированные данные отображаются на отдельном листе), и открыть список подключений;
  2. Открыть свойства подключения, перейти на вкладку «Определение»;
  3. Выбрать тип команды по умолчанию, а в поле текста команды разместить заранее подготовленный MDX запрос;
  4. При нажатии кнопки после проверки правильности синтаксиса запроса и наличия соответствующих прав доступа запрос исполнится на сервере, а результат будет представлен в текущем листе в виде обычной плоской таблицы.
    Посмотреть текст MDX-запроса, генерируемого Excel, можно с помощью установки бесплатного дополнения OLAP PivotTable Extensions, которое предоставляет также и другие дополнительные функциональные возможности.

Как выполнить MDX запрос из Excel

Перевод на другие языки

Аналитический куб поддерживает локализацию на русский и английский языки (при необходимости возможна локализация на другие языки). Переводы распространяются на наименования измерений, иерархий, атрибутов, папок, мер, а также элементы отдельных иерархий в случае наличия для них переводов на стороне учетных систем/ хранилища данных. Чтобы сменить язык, необходимо открыть свойства подключения и в строке подключения добавить следующую опцию:
Extended Properties=»Locale=1033″
где 1033 — локализация на английский язык
1049 — локализация на русский язык

Поддержка других языков в сводной таблице OLAP

Дополнительные расширения Excel для Microsoft OLAP

Возможности работы с OLAP-кубами Microsoft возрастут, если использовать дополнительные расширения, например, OLAP PivotTable Extensions, благодаря которому можно пользоваться быстрым поиском по измерению:

OLAP PivotTable Extensions



Энергия идеи

  dvbi.ru

          
2011-01-11 16:57:00Z       
Последнее изменение: 2021-12-12 22:27:25Z
       
Возрастная аудитория: 14-70
       
Комментариев:  0

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

Вычисляемые объекты в службах Excel

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

Если книга содержит вычисляемые объекты, вы можете предоставить к ней общий доступ, передав ее в библиотеку SharePoint. В зависимости от настроек среды SharePoint, в окне браузера можно просматривать книги, содержащие вычисляемые объекты, а также работать с ними. Но в отдельных случаях эта возможность не поддерживается.

Если ваша организация использует Office Web Apps сервер вместе с SharePoint Server 2013 (локальным), то для отрисовки книг в окне браузера используется либо службы Excel (SharePoint server 2013), либо Excel Web App (Office Web Apps Server). Это решение может повлиять на то, будут ли книги, которые содержат вычисляемые поля (созданные с помощью Power Pivot для Excel), просматриваться в окне браузера.

В таблице ниже приведены сведения о том, поддерживаются ли вычисляемые элементы в службах Excel (SharePoint Server 2013), Excel Web App (Office Web Apps Server) и Excel в Интернете (в SharePoint).

Вычисляемый объект

Службы Excel в локальной версии SharePoint Server 2013

Excel Web App (локальная версия Office Web Apps)

Excel в Интернете (в SharePoint Online )

Вычисляемые показатели

Да

Да

Да, если используемые источники данных поддерживаются в SharePoint. Ознакомьтесь с использованием внешних данных в книгах в SharePoint.

Вычисляемые элементы

Да

Да

Да, если используемые источники данных поддерживаются в SharePoint. Ознакомьтесь с использованием внешних данных в книгах в SharePoint.

Вычисляемые поля

Да

Нет

Возможности Power Pivot, в том числе создание вычисляемых полей и моделей данных, в Office Web Apps Server (локальной версии) не поддерживаются.

Да, если используемые источники данных поддерживаются в SharePoint. Ознакомьтесь с использованием внешних данных в книгах в SharePoint.

Дополнительные сведения можно найти в следующих статьях:

  • Сравнение служб Excel в SharePoint с
    Excel Web App

  • Бизнес-аналитика в Excel и службах Excel (SharePoint Server) (это относится к локальным средам)

  • Возможности бизнес-аналитики в Power BI для Microsoft 365, Excel и SharePoint (это относится к Microsoft 365 ным средам)

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

К началу страницы

Что такое вычисляемые показатели?

Вычисляемый показатель — настраиваемое вычисление, которое вы можете создать в Excel при работе с многомерными данными, хранящимися в службах SQL Server Analysis Services. Вычисляемые показатели удобно использовать при задании вычислений, которые могут отсутствовать в базе данных. Примеры настраиваемых вычислений:

  • показатель торговой квоты, использующий определенную формулу;

  • процент от общего итога для элементов группы;

  • валовая прибыль, которая рассчитывается с помощью сложного запроса;

  • показатель дохода, использующий сумму валового дохода и себестоимости продукции.

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

Создание вычисляемого показателя в Excel

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

  2. На вкладке Анализ группы Вычисления выберите Средства OLAP > Вычисляемая мера многомерного выражения. Откроется диалоговое окно Создание вычисляемой меры.

  3. Введите имя вычисляемого показателя в поле Имя.

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

    • С помощью списка Группа показателей укажите, как вычисляемый показатель будет располагаться в списке Поля сводной таблицы или Поля сводной диаграммы. Если группа показателей не указана, вычисляемый показатель будет отображаться в группе Значения.

    • В поле Папка введите имя папки для вычисляемого показателя.

  5. Перетащите элемент (например, показатель) с вкладки Поля и элементы на панель MDX.

  6. Добавьте оператор, например +, -, / или *, после элемента на панели MDX.

  7. Перетащите второй элемент с вкладки Поля и элементы на панель MDX.

  8. Повторяйте шаги 5–7, пока не будут добавлены все элементы формулы.
    Например, если вы создаете вычисляемую меру с именем «доход», то на панели MDX может быть запрос, похожий на
    [Measures].[Product Cost]+[Measures].[Gross Profit]

  9. Нажмите кнопку Проверить MDX, чтобы убедиться, что запрос работает правильно.

  10. Чтобы создать вычисляемый показатель, нажмите кнопку ОК.

  11. Чтобы использовать вычисляемый показатель в отчете, выберите его в списке Поля сводной таблицы или Поля сводной диаграммы. Ее расположение было указано в шаге 4.

Примечание: Так как вычисляемая мера многомерных выражений в Excel используется для создания вычислений для источника данных служб SQL Server Analysis Services, вычисляемое измерение будет ограничено сеансом и используемым подключением к источнику данных. Узнайте больше о том, как создавать вычисляемые элементы с областью действия сеанса.

К началу страницы

Что такое вычисляемые элементы?

Вычисляемый элемент — это набор элементов, который вы можете определить в Excel при работе с многомерными данными, хранящимися в службах SQL Server Analysis Services. Вычисляемые элементы удобно использовать для определения наборов элементов, которых еще нет в базе данных. Примеры пользовательских наборов:

  • территория, состоящая из таких географических единиц, как страны, регионы и штаты;

  • группа продуктов, учитываемых в квоте торгового представителя;

  • набор рекламных задач, относящихся к определенной маркетинговой кампании.

По аналогии с вычисляемыми показателями при создании вычисляемого элемента определяется MDX-запрос. Это легко сделать с помощью диалогового окна «Вычисляемый элемент» в Excel, которое позволяет настроить запрос с помощью функций перетаскивания.

Примечание: При работе со сводной таблицей в Excel или использовании средств OLAP для добавления вычисляемого элемента вы не сможете отменить его выбор в раскрывающемся списке полей, если источник данных связан с сервером, на котором работает SQL Server 2008 или более ранней версии. Если источник данных связан с сервером, на котором работает SQL Server 2008 R2 или более поздней версии, можно выбирать вычисляемый элемент и отменять его выбор в раскрывающемся списке фильтра.

Создание вычисляемого элемента в Excel

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

  2. На вкладке Анализ группы Вычисления выберите Средства OLAP > Вычисляемый элемент многомерного выражения. Откроется диалоговое окно Создание вычисляемого элемента.

  3. Введите имя вычисляемого элемента в поле Имя.

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

  5. Перетащите элемент (например, иерархию измерения) с вкладки Поля и элементы на панель MDX.

  6. Затем на панель Многомерное выражение добавьте операцию, например «+», «-«, «/», или «*».

  7. Перетащите второй элемент с вкладки Поля и элементы на панель MDX.

  8. Повторяйте действия 5–7 до тех пор, пока не создадите формулу со всеми нужными элементами.
    Например, если вы создаете вычисляемый элемент «основные продукты», включающий все категории продуктов (кроме двух), в области многомерных выражений может появиться запрос, подобный
    [Product].[Product Categories]-[Product].[Product Categories].[Category].&[4]-[Product].[Product Categories].[Category].&[3]

  9. Нажмите кнопку Проверить MDX, чтобы убедиться, что запрос работает правильно.

  10. Чтобы создать вычисляемый элемент, нажмите кнопку ОК.

  11. Чтобы добавить вычисляемый элемент в отчет сводной таблицы или сводной диаграммы, сделайте следующее:

    1. убедитесь, что для отчета выбран хотя бы один показатель;

    2. в списке Поля сводной таблицы или Поля сводной диаграммы раскройте родительское измерение, указанное в шаге 4;

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

  12. (Это действие не является обязательным.) Чтобы в отчете отображались только сведения вычисляемого элемента, сделайте следующее:

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

    2. когда появится стрелка вниз, щелкните или коснитесь ее, чтобы открыть диалоговое окно Выбор поля;

    3. снимите флажки всех элементов, кроме созданного вычисляемого элемента.

К началу страницы

Вычисляемые поля

Вычисляемые поля удобно использовать, когда нужно создать вычисляемый объект в сводной таблице или отчете, в которых используются не многомерные данные, хранящиеся в службах аналитики, а модель данных, созданная с помощью Power Pivot в Excel. Значения в вычисляемых полях могут изменяться в зависимости от контекста. Контекст определяется выбранными строками, столбцами, фильтрами или пользовательской формулой Data Analysis Expressions (DAX), созданной в PowerPivot.

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

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

Подробнее о создании и использовании вычисляемых полей см. в статьях:

  • Вычисляемые поля в PowerPivot

  • Создание вычисляемого поля в Power Pivot

К началу страницы

Кубы данных OLAP (Online Analytical Processing — оперативный анализ данных) позволяют эффективно извлекать и анализировать многомерные данные. В отличие от других типов баз данных, базы данных OLAP разработаны специально для аналитической обработки и быстрого извлечения из них всевозможных наборов данных. На самом деле существует несколько ключевых различий между стандартными реляционными базами данных, такими как Access или SQL Server, и базами данных OLAP. [1]

Рис. 1. Для подключения куба OLAP к книге Excel воспользуйтесь командой Из служб аналитики

Рис. 1. Для подключения куба OLAP к книге Excel воспользуйтесь командой Из служб аналитики

Скачать заметку в формате Word или pdf

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

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

Основная же разница между реляционными базами данных и базами данных OLAP заключается в способе хранения информации. Данные в кубе OLAP редко представлены в общем виде. Кубы данных OLAP обычно содержат информацию, представленную в заранее разработанном формате. Таким образом, операции группировки, фильтрации, сортировки и объединения данных в кубах выполняются перед заполнением их информацией. Это делает извлечение и вывод запрашиваемых данных максимально упрощенной процедурой. В отличие от реляционных баз данных, нет необходимости в упорядочении информации должным образом перед выводом ее на экран.

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

Подключение к кубу данных OLAP

Чтобы получить доступ к базе данных OLAP, сначала нужно установить подключение к кубу OLAP. Начните с перехода на вкладку ленты Данные. Щелкните на кнопке Из других источников и выберите в раскрывающемся меню команду Из служб аналитики (рис. 1).

При выборе указанной команды на экране появится диалоговое окно мастера подключения к данным (рис. 2). Основная его задача — это помочь вам установить соединение с сервером, который будет использован программой Excel при управлении данными.

1. Сначала нужно предоставить Excel регистрационную информацию. Введите в полях диалогового окна имя сервера, регистрационное имя и пароль доступа к данным, как показано на рис. 2. Щелкните на кнопке Далее. Если вы подключаетесь с помощью учетной записи Windows, то установите переключатель Использовать проверку подлинности Windows.

Рис. 2. Введите регистрационные данные

Рис. 2. Введите регистрационные данные

2. Выберите в раскрывающемся списке базу данных, с которой будете работать (рис. 3). В текущем примере используется база данных Analysis Services Tutorial. После выбора этой базы данных в расположенном ниже списке предлагается импортировать все доступные в ней кубы OLAP. Выберите необходимый куб данных и щелкните на кнопке Далее.

Рис. 3. Выберите рабочую базу данных и куб OLAP

Рис. 3. Выберите рабочую базу данных и куб OLAP, который планируете применять для анализа данных

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

Рис. 4. Измените описательную информацию о соединении

4. Щелкните на кнопке Готово, чтобы завершить создание подключения. На экране появится диалоговое окно Импорт данных (рис. 5). Установите переключатель Отчет сводной таблицы и щелкните на кнопке ОК, чтобы начать создание сводной таблицы.

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

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

Структура куба OLAP

В процессе создания сводной таблицы на основе базы данных OLAP вы заметите, что окно области задач Поля сводной таблицы будет отличаться от такового для обычной сводной таблицы. Причина кроется в упорядочении сводной таблицы так, чтобы максимально близко отобразить структуру куба OLAP, присоединенного к ней. Чтобы максимально быстро перемещаться по кубу OLAP, необходимо детально ознакомиться с его компонентами и способами их взаимодействия. На рис. 6 показана базовая структура типичного куба OLAP.

Рис. 6. Базовая структура куба данных OLAP

Рис. 6. Базовая структура куба данных OLAP

Как видите, основные компоненты куба OLAP – это размерности, иерархии, уровни, члены и меры:

  • Размерности. Основная характеристика анализируемых элементов данных. К наиболее общим примерам размерностей относятся Products (Товары), Customer (Покупатель) и Employee (Сотрудник). На рис. 6 показана структура размерности Products.
  • Иерархии. Заранее определенная агрегация уровней в указанной размерности. Иерархия позволяет создавать сводные данные и анализировать их на различных уровнях структуры, не вникая во взаимосвязи, существующие между этими уровнями. В примере, показанном на рис. 6, размерность Products имеет три уровня, которые агрегированы в единую иерархию Product Categories (Категории товаров).
  • Уровни. Уровни представляют собой категории, которые агрегируются в общую иерархию. Считайте уровни полями данных, которые можно запрашивать и анализировать отдельно друг от друга. На рис. 6 представлены всего три уровня: Category (Категория), SubCategory (Подкатегория) и Product Name (Название товара).
  • Члены. Отдельный элемент данных в пределах размерности. Доступ к членам обычно реализуется через OLАР-структуру размерностей, иерархий и уровней. В примере на рис. 6 члены заданы для уровня Product Name. Другие уровни имеют свои члены, которые в структуре не показаны.
  • ­Меры — это реальные данные в кубах OLAP. Меры сохраняются в собственных размерностях, которые называются размерностями мер. С помощью произвольной комбинации размерностей, иерархий, уровней и членов можно запрашивать меры. Подобная процедура называется «нарезкой» мер.

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

Рис. 7. Список полей сводной таблицы OLAP

Рис. 7. Список полей сводной таблицы OLAP

В списке полей сводной таблицы OLAP меры выводятся первыми и обозначаются значком суммирования (сигма). Это единственные элементы данных, которые могут находиться в области ЗНАЧЕНИЯ. После них в списке указываются размерности, обозначенные значком с изображением таблицы. В нашем примере используется размерность Customer. В эту размерность вложен ряд иерархий. После развертывания иерархии можно ознакомиться с отдельными уровнями данных. Для просмотра структуры данных куба OLAP достаточно перемещаться по списку полей сводной таблицы.

Ограничения, накладываемые на сводные таблицы OLAP

Работая со сводными таблицами OLAP, следует помнить, что взаимодействие с источником данных сводной таблицы осуществляется в среде Analysis Services OLAP. Это означает, что каждый поведенческий аспект куба данных, начиная с размерностей и заканчивая мерами, которые включены в куб, также контролируется аналитическими службами OLAP. В свою очередь, это приводит к ограничениям, накладываемым на операции, которые можно выполнять в сводных таблицах OLAP:

  • нельзя поместить в область ЗНАЧЕНИЯ сводной таблицы поля, отличные от мер;
  • невозможно изменить функцию, применяемую для подведения итогов;
  • нельзя создать вычисляемое поле или вычисляемый элемент;
  • любые изменения в именах полей отменяются сразу же после удаления этого поля из сводной таблицы;
  • не допускается изменение параметров поля страницы;
  • недоступна команда Показать страницы;
  • отключен параметр Показывать подписи элементов при отсутствии полей в области значений;
  • отключен параметр Промежуточные суммы по отобранным фильтром элементам страницы;
  • недоступен параметр Фоновый запрос;
  • после двойного щелчка в поле ЗНАЧЕНИЯ возвращаются только первые 1000 записей из кеша сводной таблицы;
  • недоступен флажок Оптимизировать память.

Создание автономных кубов данных

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

Если все же нужно анализировать OLAP-данные при отсутствии подключения к сети, создайте автономный куб данных. Это отдельный файл, который представляет собой кеш сводной таблицы. В этом файле хранятся OLAP-данные, просматриваемые после отключения от локальной сети. Чтобы создать автономный куб данных, сначала создайте сводную таблицу OLAP. Поместите курсор в сводную таблицу и щелкните на кнопке Средства OLAP контекстной вкладки Анализ, входящей в набор контекстных вкладок Работа со сводными таблицами. Выберите команду Автономный режим OLAP (рис. 8).

Рис. 8. Создание автономного куба данных

Рис. 8. Создание автономного куба данных

На экране появится диалоговое окно Настройка автономной работы OLAP (рис. 9). Щелкните на кнопке Создать автономный файл данных. На экране появится первое окно мастера создания файла куба данных. Щелкните на кнопке Далее, чтобы продолжить процедуру.

Рис. 9. Начальное окно мастера создания автономного куба данных

Рис. 9. Начальное окно мастера создания автономного куба данных

На втором шаге (рис. 10), укажите размерности и уровни, которые будут включаться в куб данных. В диалоговом окне необходимо выбрать данные, импортируемые из базы данных OLAP. Нужно выделить только те размерности, которые понадобятся после отключения компьютера от локальной сети. Чем больше размерностей укажете, тем больший размер будет иметь автономный куб данных.

Рис. 10. Укажите размерность и уровни, включаемые в автономный куб данных

Рис. 10. Укажите размерность и уровни, включаемые в автономный куб данных

Щелкните на кнопке Далее для перехода к третьему шагу (рис. 11). В этом окне нужно выбрать члены или элементы данных, которые не будут включаться в куб. Если флажок не установлен, указанный элемент не будет импортироваться и занимать лишнее место на локальном жестком диске.

Рис. 11. He устанавливайте флажки для элементов данных, которые не должны включаться в автономный куб данных

Рис. 11. He устанавливайте флажки для элементов данных, которые не должны включаться в автономный куб данных

Укажите расположение и имя куба данных (рис. 12). Файлы кубов данных имеют расширение .cub.

Рис. 12. Укажите имя и расположение файла куба данных

Рис. 12. Укажите имя и расположение файла куба данных

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

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

Применение функций куба данных в сводных таблицах

Функции куба данных, которые применяются в базах данных OLAP, могут запускаться и из сводной таблицы. В устаревших версиях Excel вы получали доступ к функциям кубов данных только после установки надстройки Пакет анализа. В Excel 2013 данные функции встроены в программу, а потому доступны для применения. Чтобы в полной мере ознакомиться с их возможностями, рассмотрим конкретный пример.

Один из самых простых способов изучения функций куба данных заключается в преобразовании сводной таблицы OLAP в формулы куба данных. Эта процедура очень простая и позволяет быстро получить формулы куба данных, не создавая их «с нуля». Ключевой принцип — заменить все ячейки в сводной таблице формулами, которые связаны с базой данных OLAP. На рис. 13 показана сводная таблица, связанная с базой данных OLAP.

Рис. 13. Обычная сводная таблица OLAP

Рис. 13. Обычная сводная таблица OLAP

Поместите курсор в любом месте сводной таблицы, щелкните на кнопке Средства OLAP контекстной вкладки ленты Анализ и выберите команду Преобразовать в формулы (рис. 14).

Рис. 14. Преобразование сводной таблицы в формулы куба данных

Рис. 14. Преобразование сводной таблицы в формулы куба данных

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

Рис. 15. В Excel можно преобразовать фильтры данных сводной таблицы в статические формулы

Рис. 15. В Excel можно преобразовать фильтры данных сводной таблицы в статические формулы

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

Рис. 16. Взгляните на строку формул, в ячейках содержатся формулы куба данных

Рис. 16. Взгляните на строку формул: в ячейках содержатся формулы куба данных

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

Добавление вычислений в сводные таблицы OLAP

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

В Excel 2013 появились новые инструменты OLAP — вычисляемые меры и вычисляемые элементы многомерных выражений. Теперь вы не ограничены использованием мер и элементов в кубе OLAP, предоставленных администратором базы данных. Вы получаете дополнительные возможности анализа путем создания пользовательских вычислений.

Знакомство с MDX. При использовании сводной таблицы вместе с кубом OLAP вы отсылаете базе данных запросы MDX (Multidimensional Expressions — многомерные выражения). MDX — это язык запросов, применяемый для получения данных из многомерных источников (например, из кубов OLAP). В случае изменения или обновления сводной таблицы OLAP соответствующие запросы MDX передаются базе данных OLAP. Результаты выполнения запроса возвращаются обратно в Excel и отображаются в области сводной таблицы. Таким образом обеспечивается возможность работы с данными OLAP без локальной копии кеша сводных таблиц.

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

Создание вычисляемых мер. Вычисляемая мера представляет собой OLAP-версию вычисляемого поля. Идея заключается в создании нового поля данных на основе некоторых математических операций, выполняемых по отношению к существующим полям OLAP. В примере, показанном на рис. 17, используется сводная таблица OLAP, которая включает перечень и количество товаров, а также доход от продажи каждого из них. Нужно добавить новую меру, которая будет вычислять среднюю цену за единицу товара.

Рис. 17. В сводную таблицу OLAP будет добавлена мера, вычисляющая среднюю цену единицы товара

Рис. 17. В сводную таблицу OLAP будет добавлена мера, вычисляющая среднюю цену единицы товара

Поместите курсор в любом месте сводной таблицы и выберите контекстную вкладку Анализ из набора контекстных вкладок Работа со сводными таблицами. В раскрывающемся меню Средства OLAP выберите пункт Вычисляемая мера многомерного выражения (рис. 18).

Рис. 18. Выберите пункт меню Вычисляемая мера многомерного выражения

Рис. 18. Выберите пункт меню Вычисляемая мера многомерного выражения

На экране появится диалоговое окно Создание вычисляемой меры (рис. 19).

Рис. 19. В данном окне создается вычисляемая мера

Рис. 19. В данном окне создается вычисляемая мера

Выполните следующие действия:

1. Присвойте вычисляемой мере имя.

2. Выберите группу мер, в которой будет находиться новая вычисляемая мера. Если этого не сделать, Excel автоматически поместит новую меру в первую доступную группу мер.

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

IIF (

[Measures].[Internet Sales-Order Quantity] = 0

,NULL

,[Measures].[Internet Sales-Sales Amount]/

[Measures].[Internet Sales-Order Quantity]

)

4. Кликните ОК.

Обратите внимание на кнопку Проверить MDX, которая находится в правой нижней части окна. Щелкните на этой кнопке, чтобы проверить корректность синтаксиса многомерного выражения. Если синтаксис содержит ошибки, отобразится соответствующее сообщение.

После завершения создания новой вычисляемой меры перейдите в список Поля сводной таблицы и выберите ее (рис. 20).

Рис. 20. Добавьте в сводную таблицу OLAP новую вычисляемую меру

Рис. 20. Добавьте в сводную таблицу OLAP новую вычисляемую меру

Только что созданная вычисляемая мера добавила еще один уровень анализа в сводную таблицу (рис. 21).

Рис. 21. В сводной таблице появилась новая вычисляемая мера

Рис. 21. В сводной таблице появилась новая вычисляемая мера

Область действия вычисляемой меры распространяется только на текущую книгу. Другими словами, вычисляемые меры не создаются непосредственно в кубе OLAP сервера. Это означает, что никто не сможет получить доступ к вычисляемой мере, если только вы не откроете общий доступ к рабочей книге либо не опубликуете ее в Интернете.

Создание вычисляемых элементов многомерных выражений. Вычисляемый элемент многомерного выражения представляет собой OLAP-версию обычного вычисляемого элемента. Идея заключается в создании нового элемента данных, основанного на некоторых математических операциях, выполняемых по отношению к существующим элементам OLAP. В примере, показанном на рис. 22, используется сводная таблица OLAP, включающая сведения о продажах за 2005–2008 годы (с поквартальной разбивкой). Предположим, нужно выполнить агрегирование данных, относящихся к первому и второму кварталам, создав новый элемент First Half of Year (Первая половина года). Также объединим данные, относящиеся к третьему и четвертому кварталам, сформировав новый элемент Second Half of Year (Вторая половина года).

Рис. 22. Мы собираемся добавить новые вычисляемые элементы многомерных выражений

Рис. 22. Мы собираемся добавить новые вычисляемые элементы многомерных выражений, First Half of Year и Second Half of Year

Поместите курсор в любом месте сводной таблицы и выберите контекстную вкладку Анализ из набора контекстных вкладок Работа со сводными таблицами. В раскрывающемся меню Средства OLAP выберите пункт Вычисляемый элемент многомерного выражения (рис. 23).

Рис. 23. Создание нового вычисляемого элемента многомерного выражения

Рис. 23. Создание нового вычисляемого элемента многомерного выражения

На экране появится диалоговое окно Создание вычисляемого элемента (рис. 24).

Рис. 24. Окно Создание вычисляемого элемента

Рис. 24. Окно Создание вычисляемого элемента

Выполните следующие действия:

1. Присвойте вычисляемой мере имя.

2. Выберите родительскую иерархию, для которой создаются новые вычисляемые элементы. Настройке Родительский элемент присвойте значение Все. Благодаря этой настройке Excel получает доступ ко всем элементам родительской иерархии при вычислении выражения.

3. В окне Многомерное выражение введите синтаксис многомерного выражения. Чтобы немного сэкономить время, воспользуйтесь отображенным слева списком для выбора существующих элементов, используемых в многомерном выражении. Дважды щелкните на выбранном элементе, и Excel добавит его в окно Многомерное выражение. В примере, показанном на рис. 24, вычисляется сумма первого и второго кварталов:

[Ship Date].[Calendar Quarter].&[2005]&[1] +

[Ship Date].[Calendar Quarter]. &[2005]& [2] +

[Ship Date].[Calendar Quarter]. &[2006]&[1] + …

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

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

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

На рис. 26 иллюстрируется аналогичный процесс, применяемый для создания вычисляемого элемента Second Half of Year.

Рис. 26. Повторите описанный ранее процесс для создания других вычисляемых элементов многомерного выражения

Рис. 26. Повторите описанный ранее процесс для создания других вычисляемых элементов многомерного выражения

Обратите внимание: Excel даже не пытается удалить исходные элементы многомерного выражения (рис. 27). В сводной таблице по-прежнему отображаются записи, соответствующие 2005–2008 годам с поквартальной разбивкой. В рассматриваемом случае это не страшно, но в большинстве сценариев следует скрывать «лишние» элементы во избежание появления конфликтов.

Рис. 27. Excel отображает созданный вычисляемый элемент многомерного выражения наравне с исходными элементами

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

Помните: вычисляемые элементы находятся только в текущей рабочей книге. Другими словами, вычисляемые меры не создаются непосредственно в кубе OLAP сервера. Это означает, что никто не сможет получить доступ к вычисляемой мере либо вычисляемому элементу, если только вы не откроете общий доступ к рабочей книге либо не опубликуете ее в Интернете.

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

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

  • Создать. Создание новой вычисляемой меры или вычисляемого элемента многомерного выражения.
  • Изменить. Изменение выбранного вычисления.
  • Удалить. Удаление выделенного вычисления.

Рис. 28. Диалоговое окне Управление вычислениями

Рис. 28. Диалоговое окне Управление вычислениями

Выполнение анализа «что, если» по данным OLAP. В Excel 2013 можно выполнять анализ «что, если» для данных, находящихся в сводных таблицах OLAP. Благодаря этой новой возможности можно изменять значения в сводной таблице и повторно вычислять меры и элементы на основании внесенных изменений. Можно также распространить изменения обратно на куб OLAP. Чтобы воспользоваться возможностями анализа «что, если», создайте сводную таблицу OLAP и выберите контекстную вкладку Анализ, находящуюся в наборе контекстных вкладок Работа со сводными таблицами. В раскрывающемся меню Средства OLAP выберите команду Анализ «что, если» –> Включить анализ «что, если» (рис. 29).

Рис. 29. После включения анализа «что, если» можно изменять данные в сводной таблице

Рис. 29. После включения анализа «что, если» можно изменять данные в сводной таблице

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

Рис. 30. Выберите пункт Учесть изменение при расчете сводной таблицы

Рис. 30. Выберите пункт Учесть изменение при расчете сводной таблицы, чтобы внести изменения в сводную таблицу

По умолчанию правки, внесенные в сводную таблицу в режиме анализа «что, если», являются локальными. Если же вы хотите распространить изменения на сервер OLAP, выберите команду для публикации изменений. Выберите контекстную вкладку Анализ, находящуюся в наборе контекстных вкладок Работа со сводными таблицами. В раскрывающемся меню Средства OLAP выберите пункты Анализ «что, если» – > Опубликовать изменения (рис. 31). В результате выполнения этой команды включится «обратная запись» на сервере OLAP, что означает возможность распространения изменений на исходный куб OLAP. (Чтобы распространять изменения на сервер OLAP, нужно обладать соответствующими разрешениями на доступ к серверу. Обратитесь к администратору баз данных, который поможет вам получить разрешения на доступ в режиме записи к базе данных OLAP.)

Рис. 31. В Excel 2013 можно распространить изменения обратно на исходный куб OLAP

Рис. 31. В Excel 2013 можно распространить изменения обратно на исходный куб OLAP

[1] Заметка написана на основе книги Джелен, Александер. Сводные таблицы в Microsoft Excel 2013. Глава 9.

Блеск и нищета сводных таблиц

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

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

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

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

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

Пользователи получили в свое распоряжение мощные аналитические системы с наглядными интерфейсами, значительно превосходящие по возможностям стандартные сводные таблицы. Разработка несложных кубов в таких средах занимает мало времени и, что самое приятное, не требует серьезной теоретической подготовки. Иными словами, она доступна всем и каждому. И здесь критичной неожиданно становится другая проблема: как воспользоваться всей этой расширенной функциональностью? Общее направление движения нам уже известно — MDX-выражения. Осталось лишь понять, каким образом можно обойтись без программирования клиентских компонентов, используя только стандартные средства Microsoft Excel.

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

Предположим, что перед нами стоит задача анализа результатов продаж компании за определенный период, представленных «плоской» таблицей (см. таблицу) с тремя атрибутами:

  • дата;
  • дирекция;
  • услуга.

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

Типовой подход к решению задачи — составить сводный отчет, как показано на рис. 1, затем выбрать месяцы, в которых итоговые суммы продаж дирекции № 2 больше 400, — апрель и июнь. Остальные месяцы при этом скрыть, установив соответствующие фильтры для поля «Месяц» отчета.

Рисунок

Рис. 1. Анализ при помощи сводной таблицы

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

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

Во­вторых, отбор нужных элементов измерения «Период» пришлось выполнять вручную. На малых интервалах (квартал, полгода) такая операция выглядит оправданной. Но как быть, если мы хотим проанализировать работу дирекций за 5 лет? Ведь в этом случае придется просматривать уже не 6, а 60 столбцов. Если же измерение содержит несколько сотен или, что еще хуже, много тысяч элементов, задача отбора нужных элементов становится практически невыполнимой.

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

Альтернативный вариант напрашивается сам собой — произвести необходимую настройку программным способом. Представьте, насколько удобнее и быстрее просто отдать команду «оставить в строке отчета “Месяцы” только те, в которых продажи Дирекции № 2 оказались больше 400 единиц». Понятно, что при таком подходе число месяцев (6, 60 или 600) уже совершенно несущественно, их количество будет влиять лишь на размер финальной таблицы.

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

Таблица с данными из нашего примера в OLAP-хранилище представляется трехмерным кубом (рис. 2), в котором атрибуты таблицы (столбцы) являются одноименными осями измерений (Dimension). Обычно хранилище проектируется таким образом, чтобы каждое измерение содержало все уникальные значения соответствующего атрибута, а также дополнительный элемент (ALL). Элемент (ALL) — агрегатное значение измерения, которое обычно рассчитывается как сумма всех значений элементов измерения.

Рисунок

Рис. 2. Хранение данных в OLAP

Любое измерение всегда представляет собой иерархию, на верхнем уровне которой располагается элемент (ALL), а на нижнем — значения атрибута. В OLAP возможно создание много­уровневых иерархий на базе нескольких атрибутов. Типичный пример — иерархия «Дата» All > Квартал > Месяц (рис. 3).

Рисунок

Рис. 3. Многоуровневая иерархия

Узлы дерева иерархии играют важную роль в MDX. Во­первых, в них хранятся агрегаты — факты, обобщающие значения подчиненных элементов. Во­вторых, узловые значения используются для навигации внутри OLAP-куба, что очень пригодится нам в дальнейшем.

Измерения и меры являются базовыми сущностями многомерных вычислений. MDX-запросы на основе этих объектов формируют Отчеты (Reports). Отчеты содержат «Оси» (Axes), на которых располагаются «Наборы» (Sets), являющиеся подмножествами куба. Наборы могут быть двух типов:

  • набором элементов — экземпляры относятся к одному измерению:

{

([Дирекция].[Дир_1]),

([Дирекция].[Дир_2])

}

  • набором кортежей — упорядоченных последовательностей элементов из нескольких измерений:

{

([Дирекция].[Дир_1], [Дата].[Янв]),

([Дирекция].[Дир_1], [Дата].[Фев]),

([Дирекция].[Дир_2], [Дата].[Янв]).

}

Как уже было сказано, все измерения являются иерархиями. Данное обстоятельство позволяет создавать наборы не только путем прямого перечисления входящих в него элементов, но и аналитическим способом. Например, набор {([Дирекция].[Дир_1]), ([Дирекция].[Дир_2])}, представляющий собой все дирекции компании, может быть задан гораздо проще — посредством использования функции Children. Функция Children показывает всех потомков выбранного элемента измерения. В случае ее применения для элемента (ALL) в одноуровневой иерархии будут показаны все элементы измерения: {[Дирекция].[All].Children}.

Функции MDX, формирующие наборы, можно вызывать последовательно, что очень помогает для задания различных ограничений на множество элементов. Допустим, нам требуется показать только те месяцы из измерения «Дата», в которых содержатся данные о фактических продажах. Если измерение «Дата» имеет структуру, как показано на рис. 3, то сначала придется отобрать всех потомков элемента (ALL), расположенных на уровне «Месяц». Делается это при помощи функции DESCENDANTS, которая выводит всех потомков элемента измерения для выбранного уровня иерархии — DESCENDANTS( [Дата].[All], [Дата].[Месяц]). Набор элементов, полученный в результате вызова функции DESCENDANTS, может выступать в роли входных аргументов для другой функции MDX, в частности NONEMPTY. Поэтому последовательный вызов функций NONEMPTY и DESCENDANTS в конструкции NONEMPTY({DESCENDANTS ([Дата].[All], [Дата].[Месяц])}) сначала отберет все месяцы измерения, а затем оставит лишь те из них, в которых содержатся фактические значения. Понятно, что полученный результат также является набором и может, в свою очередь, выступать входным аргументом для следующей функции MDX.

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

FILTER({DESCENDANTS ([Дата].[Дата].[All], [Дата].[Дата].[Месяц])},

([Дирекция].[Дирекция].[Дир_2])>400)

В данной конструкции для каждого месяца из исходного набора проверяется уровень продаж по ракурсу «Дирекция_2». В результирующем множестве остаются только те месяцы, которые удовлетворяют условию «Продажи Дирекции № 2 больше 400 единиц».

Создадим теперь отчет, на оси строк Rows которого отложим полученный набор:

SELECT

{[Measures].[Сумма]} ON СOLUMNS,

FILTER ({DESCENDANTS ([Дата].[Дата].[All], [Дата].[Дата].[Месяц])},

([Дирекция].[Дирекция].[Дир_2])>400) ON ROWS

FROM [PF]

Как видно из рис. 4, в отчете присутствуют только нужные нам месяцы (апрель и июнь), однако значения в столбце «Сумма» пока соответствуют суммарным продажам двух дирекций.

Рисунок

Рис. 4. Применение
функции FILTER

Чтобы получить детализацию доходов по дирекциям, на оси Rows нужно разместить сразу два измерения — «Дата» и «Дирекции». Такая операция выполняется при помощи функции CrossJoin (рис. 5):

Рисунок

Рис. 5. Применение
функции CrossJoin

SELECT

{[Measures].[Сумма]} ON СOLUMNS,

CROSSJOIN(

FILTER ({DESCENDANTS ([Дата].[Дата].[All], [Дата].[Дата].[Месяц])},

([Дирекция].[Дирекция].[Дир_2])>400)

,

[Дирекция].[Дирекция].[All].Children

)

ON ROWS

FROM [PF]

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

Итак, первая часть задачи благополучно решена — сформирована выборка из OLAP-базы, удовлетворяющая поставленным условиям и подходящая для создания сводной таблицы (рис. 6). Осталось получить такую же таб­лицу в Microsoft Excel. Идея основана на организации в среде Microsoft Excel OLE DB-подключения к аналитической базе данных с возможностью изменения текста команды на запрос данных.

Рисунок

Рис. 6. Выборка из OLAP-базы
для создания сводной таблицы

Для начала изучим параметры источника данных, которые задаются по умолчанию при подключении сводной таблицы к кубу OLAP. Для этого выделим сводную таблицу, затем на ленте быстрого доступа Microsoft Excel на вкладке Данные в разделе Подключения выберем элемент Свойства. Перейдя на закладку Определение, можно увидеть поле Текст команды. Данное поле содержит текст запроса, посылаемого на сервер. В случае подключения сводной таблицы к аналитической базе в поле указывается название одного из хранящихся в ней кубов. Тип возвращаемого объекта задается в поле Тип команды, которое имеет предопределенное значение Куб и недоступно для выбора.

Задача сводится к созданию такого источника данных, в котором поле Тип команды будет разблокировано. Делается это довольно просто. В параметрах сводной таблицы разрешаем выполнение операции DrillDown — на закладке Данные включаем опцию Разрешить отображение деталей. После этого дважды кликаем по любой ячейке с данными из сводного отчета. На отдельном листе книги должна появиться таблица, детализирующая выбранную нами сумму. Такая таблица является результатом MDX-запроса по текущему ракурсу сводного отчета и, что особенно ценно, имеет собственный источник данных.

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

Прорвавшись сквозь дебри интерфейса Microsoft Excel, попадаем на форму определения свойств подключения. Дадим подключению более удобное и понятное имя, например My_MDX (рис. 7). Отметим, что на вкладке Определение поле Тип команды имеет теперь значение По умолчанию.

Рисунок

Рис. 7. Настройка пользовательского подключения

На листе со сводным отчетом выберем одну из ячеек и присвоим ей имя — MDX_Command. Напишем в ней одной строкой составленный ранее MDX-запрос:

SELECT {[Measures].[Сумма]} ON СOLUMNS, CROSSJOIN(FILTER ({DESCENDANTS ([Дата].[Дата].[All], [Дата].[Дата].[Месяц])}, ([Дирекция].[Дирекция].[Дир_2])>400), [Дирекция].[Дирекция].[All].Children) ON ROWS FROM [PF]

Перейдем в редактор Visual Basic, добавим к проекту модуль и вставим в него новую процедуру:

Sub My_MDX_Query()

ActiveWorkbook.Connections(«My_MDX»).OLEDBConnection.CommandText = Range(«MDX_Command»).Value

ActiveWorkbook.Connections(«My_MDX»).Refresh

End Sub

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

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

Рисунок

Рис. 8. Результаты MDX-запроса

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

***

Предложенная в статье методика позволяет значительно повысить мощность стандартных сводных отчетов Microsoft Excel за счет составления собственных MDX-запросов к аналитическим кубам. Альтернативный подход заключается в использовании семейства функций КУБ(), обсуждению которых будут посвящены следующие статьи цикла.

КомпьютерПресс 03’2011

Добрый вечер!
Работаю с финансовым кубом в экселе, нужно посчитать показатель, которого нет в измерении «Показатели», но состоит он из двух имеющихся показателей.
На вкладке Анализ — Средства OLAP — Создать вычисляемый элемент создаю вычисляемый показатель и открывается окно для написание mdx-запроса.

Есть справочник «Показатели», в тексте запроса пишу следующее:
[Показатели].[Показатель].&[10] + [Показатели].[Показатель].&[11]

Создается мера (как на рисунке выше мера1) и когда вытягиваю ее в соответствующее поле сводной таблицы «Значение», отчет не перестраивается, как будто мера не применилась

Подскажите, как в моем случае правильней написать тело запроса mdx-выражения и потом его применить в отчете.
Спасибо!

Изменено: Дмитрий Осипов31.08.2021 21:03:05

Like this post? Please share to your friends:
  • Mdeterm excel на русском
  • Mdb в excel программа
  • Mdb to excel file
  • Mdb export to excel
  • Mcr famous last word перевод