Ежегодное Сравнение

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

Это называется Ежегодное сравнение (YoY).

При таком сравнении, можно, например, сравнить продажи в текущем месяце с продажами за этот же месяц в прошлом году. Или если Вы хотите избежать колебаний из-за более или мене удачных месяцев, то можете посмотреть накопленные продажи в текущем году по сравнению с аналогичным периодом прошлого года. Нужно посмотреть показатель Год-Дата (YTD).

Но как его вычислить? Как написать простую формулу, чтобы выбрать подмножество операций с прошлого года и сравнить их с соответствующими трансакциями в текущем году?

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

Рис. 1

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

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

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

Вот как это делается:

В Мастер Календаре Вам нужно будет определить флаги — Булевское поле — которые определяют, должен ли конкретная дата быть включена в расчет:

If( DayNumberOfYear(Date) <= DayNumberOfYear(Today()), 1, 0 ) as IsInYTD,

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

Затем Вы можете использовать этот флаг в простом выражении Set Analysis:

   Sum( {$<IsInYTD={1}>} Amount )

Выражение Set Analysis выберет правильные даты и таким образом правильные транзакции для сравнения. Кроме того, это выражение может быть объединено с любым измерением.

Рис. 2

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

   If( DayNumberOfQuarter(Date) <= DayNumberOfQuarter(Today()), 1, 0) as IsInQTD,
   If( Day(Date) <= Day(Today()), 1, 0) as IsInMTD,
   If( Month(Date) = Month(Today()), 1, 0) as IsCurrentMonth,
   If( Month(AddMonths(Date,1)) = Month(Today()), 1, 0) as IsLastMonth,

Краткое изложение: Создайте необходимые флаги в Мастер Календаре. Это значительно упростит выражения Set Analysis.

 

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

64 queries in 0,198 seconds