Использование вычислений в отчетах Prognoz Platform

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

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

Для определения вычисляемых элементов используется редактор формул.

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

Синтаксис выражений

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

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

Арифметика

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

{Выручка от реализации продукции, услуг[t]} — {Производственная себестоимость отгруженной продукции (работ, услуг) — всего[t]}

Обратите внимание, что при вставке элементов в формулу платформа обозначает их вместе с индексом t на конце. Данный индекс означает расчет в текущей точке измерения времени.

После добавления элемента Прибыль мы получим следующий результат:

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

{X[2012-01]} + {X[2012-02]} + {X[2012-03]}

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

После того, как элемент создан, его можно разместить в желаемой позиции иерархии, используя редактор иерархии, доступный по команде Иерархия -> Редактировать на ленте инструментов. Переместим элемент в начало иерархии:

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

Время

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

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

({Выручка от реализации продукции, услуг[t]} — {{Facts}|{Товары}|Выручка от реализации продукции, услуг|{Предприятия}[t-1]}) / {Выручка от реализации продукции, услуг[t-1]} * 100

Аналогичные расчеты можно выполнять, используя функции навигации по иерархии времени lead и lag на заданное число позиций:

({Выручка от реализации продукции, услуг[t]} — lag({Выручка от реализации продукции, услуг[t]}, 1)) / lag({Выручка от реализации продукции, услуг[t]}) * 100

Чтобы результат расчета был корректным, важен порядок выполнения вычислений в отчете. Агрегация данных выполняется первой, а затем агрегированные значения используются в формуле для элемента Прирост. Для контроля и управления порядком вычислений в отчете доступна команда Конструктор -> Цепочка вычислений. В открывающемся диалоге вычисления можно переупорядочивать, после чего все вычисляемые элементы будут пересчитаны.

Фильтрация

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

Для этого создадим вычисляемый элемент Выручка (Бензин):

{Выручка от реализации продукции, услуг[t]}

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

Мы получим следующий результат:

Для корректного вычисления данного элемента порядок должен быть обратным – сначала должен вычисляться наш элемент Выручка (Бензин) с учетом фильтра, а затем выполняться агрегация.

Условные выражения

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

if(contains({Выручка (бензины).ТОВАРЫ.NAME[t]}, «Бензин»), {Выручка от реализации продукции, услуг[t]}, Null)

Обратите внимание на особенность обращения к атрибутам измерений – для текущего вычисляемого элемента через точку указывается имя интересующего измерения и далее его атрибут.

Мы получим результат, аналогичный предыдущему примеру:

Автоматические вычисления

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

Мы получим следующий результат:

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

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

Читайте также

Комментарии

Подробнее о политике использования персональных данных