Post-Image

Подготовка прогноза

Рвав-рвав, собака Смайл готов к обеду!

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

Пример:

  • Таблица “План” содержит необходимые сведения об операции на календарный год, а именно, дату формирования плана, статью, сумму и направление транзакции:

    art_015_screen_1

  • Таблица “Факт” построена аналогичным образом, и содержит необходимые сведения об операции за прошедший период времени (по количеству полных месяцев):

    art_015_screen_2

  • В качестве отдельной таблицы выделен календарь.

    Задача:

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

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

    Процесс разработки:

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

    Обновленная таблица “План”, в результате данных действий, приобретет следующий вид:

    art_015_screen_3

  • Обновленная таблица “Факт” станет выглядеть следующим образом:

    art_015_screen_4

  • После разметки имеющихся данных остается только произвести их слияние, создав для этого таблицу “Прогноз” с использованием следующей конструкции:

    Прогноз = 
    UNION (
        'Факт',
        FILTER ( 'План', MONTH ( 'План'[Дата формирования плана] ) >= MONTH ( TODAY () ) )
    )

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

    art_015_screen_5

  • Дальше все относительно просто, поскольку у нас получилась именно “физическая” таблица. Мера для прогноза по месяцам выглядит следующим образом:

    Прогноз по месяцам = 
    SUM ( 'Прогноз'[Количество] )

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

    Прогноз накопительным итогом = 
    CALCULATE (
        SUM ( 'Прогноз'[Количество] ),
        FILTER (
            ALL ( 'Прогноз' ),
            'Прогноз'[Дата прогноза] <= MAX ( 'Прогноз'[Дата прогноза] )
        ),
        VALUES ( 'Прогноз'[Статья отчета] )
    )

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

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

    Цветовая метка прогноза = 
    SWITCH (
        SELECTEDVALUE ( 'Прогноз'[Метка данных] ),
        "План", "#00B9FF",
        "Факт", "#85BB65",
        "#FFFFFF"
    )

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

    Ваш Смайл

    ДЛЯ ЛЮБИТЕЛЕЙ ПОНАЖИМАТЬ НА КНОПОЧКИ