Сравнение показателей за текущий и прошлый период

Автор Наташа, 23 апреля 2018, 12:01:26

« назад - далее »

Наташа


Добрый день!

Недавно начала изучать программирование на QlikView.
Столкнулась на работе со след.задачей: есть данные за текущий год (Выручка).
Необходимо вывести такие же показатели за прошлый годы.

Выручка на тек.год рассчитывается след.образом:

=if(ValueList('Выручка, BYN', 'Выручка, USD', 'Средний чек, BYN', 'Средний чек, USD', 'Количество чеков') = 'Выручка, BYN',

    num (Sum (Aggr(NODISTINCT sum(Сумма_со_скидкой-$(vBonusWith))/
   
     Count({<%Код_чека= {"=Count(%Код_чека)<>0"}>} DISTINCT  %Дата )
*
(Day(MonthEnd(max({$}%Дата)))-(Count({<ТипПродаж=>} DISTINCT %Дата) -Count({<%Код_чека= {"=Count(%Код_чека)<>0"}>} DISTINCT  %Дата )))
,Наименование_магазина))

,'# ##0,00'))

Нашла подходящий пример применения Set Analysis
sum({$<Year = {$(#=Only(Year)-1)}>} Sales)
возвращает продажи для предыдущего года в отношении текущей выборки. Здесь расширение со знаком доллара используется для расчета предыдущего года;

НО почему-то, когда я добавляю данное выражение {$<Year = {$(#=Only(Year)-1)}>} в расчеты, то у меня значение показателя остается без изменения (все равно выводит тек.год).

=if(ValueList('Выручка, BYN', 'Выручка, USD', 'Средний чек, BYN', 'Средний чек, USD', 'Количество чеков') = 'Выручка, BYN',

    num (Sum ({$<Year = {$(#=Only(Year)-1)}>} Aggr(NODISTINCT sum(Сумма_со_скидкой-$(vBonusWith))/
   
     Count({<%Код_чека= {"=Count(%Код_чека)<>0"}>} DISTINCT  %Дата )
*
(Day(MonthEnd(max({$}%Дата)))-(Count({<ТипПродаж=>} DISTINCT %Дата) -Count({<%Код_чека= {"=Count(%Код_чека)<>0"}>} DISTINCT  %Дата )))
,Наименование_магазина))

,'# ##0,00'))

Подскажите, пожалуйста, как правильно добавить данное выражение, чтобы поменялись расчеты?


Добрый день!

Недавно начала изучать программирование на QlikView.
Столкнулась на работе со след.задачей: есть данные за текущий год (Выручка).
Необходимо вывести такие же показатели за прошлый годы.

Выручка на тек.год рассчитывается след.образом:

=if(ValueList('Выручка, BYN', 'Выручка, USD', 'Средний чек, BYN', 'Средний чек, USD', 'Количество чеков') = 'Выручка, BYN',

    num (Sum (Aggr(NODISTINCT sum(Сумма_со_скидкой-$(vBonusWith))/
   
     Count({<%Код_чека= {"=Count(%Код_чека)<>0"}>} DISTINCT  %Дата )
*
(Day(MonthEnd(max({$}%Дата)))-(Count({<ТипПродаж=>} DISTINCT %Дата) -Count({<%Код_чека= {"=Count(%Код_чека)<>0"}>} DISTINCT  %Дата )))
,Наименование_магазина))

,'# ##0,00'))

Нашла подходящий пример применения Set Analysis
sum({$<Year = {$(#=Only(Year)-1)}>} Sales)
возвращает продажи для предыдущего года в отношении текущей выборки. Здесь расширение со знаком доллара используется для расчета предыдущего года;

НО почему-то, когда я добавляю данное выражение {$<Year = {$(#=Only(Year)-1)}>} в расчеты, то у меня значение показателя остается без изменения (все равно выводит тек.год).

=if(ValueList('Выручка, BYN', 'Выручка, USD', 'Средний чек, BYN', 'Средний чек, USD', 'Количество чеков') = 'Выручка, BYN',

    num (Sum ({$<Year = {$(#=Only(Year)-1)}>} Aggr(NODISTINCT sum(Сумма_со_скидкой-$(vBonusWith))/
   
     Count({<%Код_чека= {"=Count(%Код_чека)<>0"}>} DISTINCT  %Дата )
*
(Day(MonthEnd(max({$}%Дата)))-(Count({<ТипПродаж=>} DISTINCT %Дата) -Count({<%Код_чека= {"=Count(%Код_чека)<>0"}>} DISTINCT  %Дата )))
,Наименование_магазина))

,'# ##0,00'))

Подскажите, пожалуйста, как правильно добавить данное выражение, чтобы поменялись расчеты?

admin

Добрый день.
Для начала проверьте работу выражения на данных без расчетов.
Т.е. вместо
{$<Year = {$(#=Only(Year)-1)}>}  (решетку уберите)
Подставьте значение
{$<Year = {'2018'}>} , работает?
тогда пропишем
{$<[Year ]={$(=max(Year )-1)}>} и должны получить результат для прошлого года относительного максимального в текущей выборке.
Если у вас в выборке более одного года, то Only(Year) растеряется и ничего не покажет.
Поэтому используем max().

Наташа

Цитата: admin от 23 апреля  2018, 12:18:10  
Подставьте значение
{$<Year = {'2018'}>} , работает?


Подставила {$<Year = {'2017'}>}
Нет, не срабатывает.
Выводит значения за текущий год.

admin

Ок, следовательно проблема может быть в том, что поле Year не связано с набором данных.
Проверьте модель данных, в какой таблице находится Year, по какому полю установлена связь?
Обычно, все календарные измерения собраны в одной таблице и связаны по полю Дата.
Как у Вас?

Наташа

Цитата: admin от 23 апреля  2018, 01:19:45  
Ок, следовательно проблема может быть в том, что поле Year не связано с набором данных.

Да, проблема была в связи.
Внесла поправки и все заработало. Спасибо.

Яндекс.Метрика