Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: derzit от 07 марта 2017, 01:40:05

Название: Динамика на графиках
Отправлено: derzit от 07 марта 2017, 01:40:05
Добрый день всем!
Помогите, пожалуйста, решить проблему: необходимо на графике выводить динамику значения показателя помесячно за 12 предыдущих месяцев от выбранного (точнее, за выбранный и 11 предыдущих). То есть, если выбран март текущего года, на графике должны быть значения за апрель предыдущего года, май, июнь, и т.д., февраль текущего, март текущего. Без наложенной выборки должны отображаться месяцы от максимального загруженного. Помогите реализовать, пожалуйста. Где то читала, что это делается через concat в вычисляемом измерении, но не могу сделать(((
Название: Re: Динамика на графиках
Отправлено: admin от 09 марта 2017, 03:48:13
Привет.

Приведу несколько ссылок, надеюсь они помогут:
https://community.qlik.com/blogs/qlikviewdesignblog/2015/11/02/the-as-of-table
https://community.qlik.com/servlet/JiveServlet/download/4821-3-72485/TIME%20ANALYSIS_ENG.pdf

И набор библиотек, в котором реализована функция Qvc.AsOfTable (_dateField)
https://github.com/RobWunderlich/Qlikview-Components
Название: Re: Динамика на графиках
Отправлено: millik от 10 марта 2017, 11:52:20
Цитата: derzit от 07 марта  2017, 01:40:05  
Добрый день всем!
Помогите, пожалуйста, решить проблему: необходимо на графике выводить динамику значения показателя помесячно за 12 предыдущих месяцев от выбранного (точнее, за выбранный и 11 предыдущих). То есть, если выбран март текущего года, на графике должны быть значения за апрель предыдущего года, май, июнь, и т.д., февраль текущего, март текущего. Без наложенной выборки должны отображаться месяцы от максимального загруженного. Помогите реализовать, пожалуйста. Где то читала, что это делается через concat в вычисляемом измерении, но не могу сделать(((

Данную задачу можно решить с помощью SetAnalysis.
Например:
Sum({$<Месяц=P({1<Дата={">=$(=MonthStart(AddMonths(Max(Дата),-12)))<=$(=MonthEnd(Max(Дата)))"}>}Месяц)>}СуммаПродажи)

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