Данная тема косвенно затрагивалась здесь, но ответа я так и не нашла.
Допустим есть следующие данные по продажам:
янв фев мар
Товар1 10000р. 12000р. 15000р.
Товар2 5000 4000 5000
Необходимо рассчитать динамику продаж по каждому товару в марте, относительно февраля и января, т.е.:
мар-фев мар-янв
Товар1 3000 5000
Товар2 1000 0
Как это реализовать в QlikView? Как лучше всего работать с датами, как задавать предыдущие недели, месяца, года относительно выбранных?
Добрый день.
Вот Вы и добрались до анализа множеств.
Рекомендую почитать на эту тему в официальной документации по Qlikview и по Sense на сайте help.qlik.com
Вариантов решения может быть несколько, в зависимости от задачи.
Можно задать интервал дат:
Sum({1<[Date] = {">=01.02.2014<=28.02.2014"}>} Количество)
Если используется календарь, то можно задать и так:
Sum({1<[_MonthSerial]={'2'},[Year]={'2014'}>} Количество)
Т.е. вычислить разницу между месяцами можно так:
Sum({1<[_MonthSerial]={'3'},[Year]={'2014'}>} Количество)-Sum({1<[_MonthSerial]={'1'},[Year]={'2014'}>} Количество)
или так:
Sum({1<[YearMonth] = {'201403'}>} Количество)-Sum({1<[YearMonth] = {'201401'}>} Количество)
Или так:
Sum({1<[Date] = {">=01.03.2014<=31.03.2014"}>} Количество)-Sum({1<[Date] = {">=01.01.2014<=31.01.2014"}>} Количество)
Но эти выражения заданы с явным указанием дат, и не реагируют на выборки в приложении.
Следовательно, в выражение надо внести изменения, вычисления необходимых параметров в зависимости от выборки, например:
Sum({<[Date] = {">=$(=MonthStart(AddMonths(Max([Date]),-1)))<=$(=monthend(AddMonths(Max([Date]),-1)))"} >} Количество)
при текущем выборе дат марта 2014, даст период - ">=01.02.2014<=28.02.2014"
Рекомендую также ознакомиться с перечнем функций дат и времени.
Если требуется отслеживать, к примеру последние периоды от даты обновления данных, можно формировать флаги в календаре. Тогда условие для фильтра будет проще, например LastMonth={'-2'},и т.п. Все сводится к заданию условия фильтров.
Отладку условий рекомендую производить в текстовом объекте, задав условие в выражении для текста, например:
=MonthStart(AddMonths(Max([Date]),-1))
Спасибо за Ваши варианты, буду осваивать =)
Не подскажите, где можно ознакомиться с перечнем функций дат и времени?
Описание всех функций доступно во встроенной справке Qlikview по F1, в строке поиска наберите "Функции даты".
Очень много информации в Справочном руководстве по Qlikview в формате PDF. Также поиском "Функции даты).
В интернете также присутствует эта информация в справке по QLIK SENSE (http://help.qlik.com/sense/ru-RU/online/#../Subsystems/WorkingWith/Content/Scripting/DateAndTimeFunctions/DateAndTimeFunctions.htm%3FTocPath%3D%25D0%25A0%25D0%25B0%25D0%25B1%25D0%25BE%25D1%2582%25D0%25B0%2520%25D1%2581%2520Qlik%2520Sense%7C%25D0%25A1%25D0%25B8%25D0%25BD%25D1%2582%25D0%25B0%25D0%25BA%25D1%2581%25D0%25B8%25D1%2581%2520%25D1%2581%25D0%25BA%25D1%2580%25D0%25B8%25D0%25BF%25D1%2582%25D0%25B0%2520%25D0%25B8%2520%25D1%2584%25D1%2583%25D0%25BD%25D0%25BA%25D1%2586%25D0%25B8%25D0%25B8%2520%25D0%25B4%25D0%25B8%25D0%25B0%25D0%25B3%25D1%2580%25D0%25B0%25D0%25BC%25D0%25BC%25D1%258B%7C%25D0%25A4%25D1%2583%25D0%25BD%25D0%25BA%25D1%2586%25D0%25B8%25D0%25B8%2520%25D0%25B2%2520%25D1%2581%25D0%25BA%25D1%2580%25D0%25B8%25D0%25BF%25D1%2582%25D0%25B0%25D1%2585%2520%25D0%25B8%2520%25D0%25B2%25D1%258B%25D1%2580%25D0%25B0%25D0%25B6%25D0%25B5%25D0%25BD%25D0%25B8%25D1%258F%25D1%2585%2520%25D0%25B4%25D0%25B8%25D0%25B0%25D0%25B3%25D1%2580%25D0%25B0%25D0%25BC%25D0%25BC%25D1%258B%7C%25D0%25A4%25D1%2583%25D0%25BD%25D0%25BA%25D1%2586%25D0%25B8%25D0%25B8%2520%25D0%25B4%25D0%25B0%25D1%2582%25D1%258B%2520%25D0%25B8%2520%25D0%25B2%25D1%2580%25D0%25B5%25D0%25BC%25D0%25B5%25D0%25BD%25D0%25B8%7C_____0)