Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
SergeyNazarkin
Contributor II
Contributor II

Динамика продаж. Сумма за предыдущий месяц

Данные:

- ДатаОперации

- Клиент

- СуммаДенег

Нужно построить табличку:

- Клиент

- СуммаДенег за выбранный МесяцГод

- СуммаДенег  за предыдущий МесяцГод

Как правильно посчитать "СуммаДенег за предыдущий МесяцГод"?

Создал переменную ДатаОперации.M1, в которую положил

=max([ДатаОперации.autoCalendar.MonthsAgo])-1

Далее прописал формулу

Sum({1<[ДатаОперации.autoCalendar.MonthsAgo] = {'$(Transaction.operation_date.M1)'}

        >} СуммаДенег)

При таком подходе все считается корректно при выборе Месяца и Года, но данная формула не учитывает поле Клиент.

Добавление условия Клиент = {'$(Клиент)'} не особо помогает

2 Replies
valerij_y
Contributor II
Contributor II

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

Сделал в пересчёте календаря так:

    -InMonth(Date($(minDate)+IterNo()-1), $(maxD), 0) as M0,

  -InMonth(Date($(minDate)+IterNo()-1), $(maxD), -1) as M1,

....

Конечно не очень красиво, много полей, зато проблем с фильтрами нет.

vkozlov
Partner - Creator
Partner - Creator

Привет, я предпочитаю такой стиль

Пример данных:

LOAD * INLINE [

    Year, Month, Sales

    2017, jul, 100

    2018, jul, 200

];

Делаем 2 выражения

1. - Считаем нужный KPI за год = MAX из текущей выборки - 1

     Метка: ='Sales '&$(=max(Year)-1)

     Формула: Sum({<Year={'$(=max(Year)-1)'}>}Sales)

2. - Считаем нужный KPI за год = MAX из текущей выборки

     Метка: ='Sales '&$(=max(Year))

     Формула: Sum({<Year={'$(=max(Year))'}>}Sales)

В качестве измерения - Month

Screenshot_17.pngScreenshot_18.pngScreenshot_20.png