Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Данные:
- ДатаОперации
- Клиент
- СуммаДенег
Нужно построить табличку:
- Клиент
- СуммаДенег за выбранный МесяцГод
- СуммаДенег за предыдущий МесяцГод
Как правильно посчитать "СуммаДенег за предыдущий МесяцГод"?
Создал переменную ДатаОперации.M1, в которую положил
=max([ДатаОперации.autoCalendar.MonthsAgo])-1
Далее прописал формулу
Sum({1<[ДатаОперации.autoCalendar.MonthsAgo] = {'$(Transaction.operation_date.M1)'}
>} СуммаДенег)
При таком подходе все считается корректно при выборе Месяца и Года, но данная формула не учитывает поле Клиент.
Добавление условия Клиент = {'$(Клиент)'} не особо помогает
Года два назад аналогичная зада уже была. Мне понравилось решение с дополнительными полями в календаре, где каждый период (месяц, квартал и тд) со своей переменной.
Сделал в пересчёте календаря так:
-InMonth(Date($(minDate)+IterNo()-1), $(maxD), 0) as M0,
-InMonth(Date($(minDate)+IterNo()-1), $(maxD), -1) as M1,
....
Конечно не очень красиво, много полей, зато проблем с фильтрами нет.
Привет, я предпочитаю такой стиль
Пример данных:
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