Size: a a a

2021 March 28

ЕС

Евгений Стучалкин... in Qlik BI chat
Ekaterina Grigorenko
очень интересно
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
Базовая формула: Sum(Sum)
Формула предыдущего месяца: aggr({1} nodistinct above (Sum(Sum)),Month)
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
Хотя, если честно этот пример работает только если не применяется флиьтрация по другим измерениям, кроме месяца)
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
Чтобы такая логика работала в формуле визуального слоя, нужно прописывать измерение, по которому фильтруете в aggr, и сам aggr брать в сумму

sum((aggr({1} nodistinct above (Sum(Sum)),(Dim,(Numeric,Ascending)),(Month))))
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
Месяц обязательно должен идти последним измерением
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
Эта формула работает только с одним измерением
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
поэтому если надо такую динамику фильтровать по разным полям (но только по одному за раз), можно воспользоваться переменными для подстановки значений на место измерения Dim в aggr
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
я пробовал вот с таким набором данных.

load * inline [
Month,Sum, Dim, Dim2
1,500,1,1
2,600,1,1
3,700,1,1
4,400,1,2
5,350,1,2
1,1500,2,2
2,2600,2,2
3,1700,2,3
4,2400,2,3
5,1350,2,3


];
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
месяцы в aggr возможно тоже надо сортировать, у меня просто порядок загрузки идет подряд, это по идее влияет
источник

ЕС

Евгений Стучалкин... in Qlik BI chat
А вообще по хорошему чтобы нормально работать с данными за пределами выбранных периодов, нужно в модели данных вот такую штуку делать

https://community.qlik.com/t5/Qlik-Design-Blog/The-As-Of-Table/ba-p/1466130
источник
2021 March 29

IB

Igor Burobin in Qlik BI chat
Ekaterina Grigorenko
C above вот так пишу и без модификатора разницы: = Sum([Трудозатраты, часы])  - Above(Sum ([Трудозатраты, часы])). Результат тот же
Вот небольшой пример:

// Генерируем данные в скрипте
Продажи:
LOAD
   MonthName(date(MakeDate(2020,1,1) + floor(rand() * 365))) as Месяц,
   rand() * 50000 as Продажи
AUTOGENERATE 10000;

Далее для простоты в таблице используем Above, обратите внимание на заголовки - в них формулы мер
источник

IB

Igor Burobin in Qlik BI chat
источник

IB

Igor Burobin in Qlik BI chat
и в других визуализациях Above будет работать
источник

IB

Igor Burobin in Qlik BI chat
источник

IB

Igor Burobin in Qlik BI chat
но есть важный нюанс - измерение у меня только одно
источник

IB

Igor Burobin in Qlik BI chat
если измерения будет 2 (например месяц и группа товаров) то уже придется мучатся с AGGR, RangeSum и тд. А лучше для случая с двумя измерениями будет в скрипте сделать по паттерну As-Of Table
источник

EG

Ekaterina Grigorenko in Qlik BI chat
Но так получается январь пустой
источник

IB

Igor Burobin in Qlik BI chat
А что в нем должно быть?
источник

IB

Igor Burobin in Qlik BI chat
Если 0 то тогда надо написать alt(SUM(Продажи),0)
источник

EG

Ekaterina Grigorenko in Qlik BI chat
Igor Burobin
А что в нем должно быть?
Дельта с декабрем
источник