
Подготовка прогноза
Рвав-рвав, собака Смайл готов к обеду!
Сегодня мы рассмотрим такую популярную вещь, имеющуюся практически в любой компании, как прогноз, представляющий собой некий симбиоз плановых и фактических данных.
Пример:
Таблица “План” содержит необходимые сведения об операции на календарный год, а именно, дату формирования плана, статью, сумму и направление транзакции:
Таблица “Факт” построена аналогичным образом, и содержит необходимые сведения об операции за прошедший период времени (по количеству полных месяцев):
В качестве отдельной таблицы выделен календарь.
Задача:
На основе представленных данных построить помесячный прогноз компании, дополнительно рассчитав значения накопительным итогом.
Рвав-рвав, применительно к обозначенной задаче, мы будем строить отдельную “физическую” таблицу на уровне модели, поскольку так проще с точки зрения дальнейшей поддержки, и нагляднее для конечного пользователя.
Процесс разработки:
Поскольку мы планируем сделать симбиоз плановых и фактических данных, предварительно необходимо промаркировать соответствующие данные. Это делается путем добавления дополнительного расчетного столбца в соответствующих таблицах.
Обновленная таблица “План”, в результате данных действий, приобретет следующий вид:
Обновленная таблица “Факт” станет выглядеть следующим образом:
После разметки имеющихся данных остается только произвести их слияние, создав для этого таблицу “Прогноз” с использованием следующей конструкции:
Прогноз =
UNION (
'Факт',
FILTER ( 'План', MONTH ( 'План'[Дата формирования плана] ) >= MONTH ( TODAY () ) )
)
Затем необходимо связать данные между собой, схема модели представлена на следующем рисунке:
Дальше все относительно просто, поскольку у нас получилась именно “физическая” таблица. Мера для прогноза по месяцам выглядит следующим образом:
Прогноз по месяцам =
SUM ( 'Прогноз'[Количество] )
Мера для прогноза, показывающая накопительный итог, формируется следующим образом:
Прогноз накопительным итогом =
CALCULATE (
SUM ( 'Прогноз'[Количество] ),
FILTER (
ALL ( 'Прогноз' ),
'Прогноз'[Дата прогноза] <= MAX ( 'Прогноз'[Дата прогноза] )
),
VALUES ( 'Прогноз'[Статья отчета] )
)
Рвав-рвав, собственно, на этом все, конечная остановка, все на выход) Поскольку все остальные элементы отчета можно воспринимать исключительно как обогащение полученных данных.
Например, в качестве некоего украшательства было сделано условно форматирование, маркирующее плановые и фактические данными разными цветами. При этом условное форматирование было сделано мерой, возвращающий цвет:
Цветовая метка прогноза =
SWITCH (
SELECTEDVALUE ( 'Прогноз'[Метка данных] ),
"План", "#00B9FF",
"Факт", "#85BB65",
"#FFFFFF"
)
Рвав-рвав, в общем, совестливый собакен не счел возможным выложить «голый» отчет, но жара постепенно сводит с ума, и описывать очень простые вещи типа получения отклонения мы тут не будем.
Ваш Смайл
ДЛЯ ЛЮБИТЕЛЕЙ ПОНАЖИМАТЬ НА КНОПОЧКИ