добрый день!
помогите, вопрос простой, а ответа не могу найти :)
загружаем таблицу:
дата подразделение продажи
1/1/15 А 100
2/1/15 А 110
можно ли со стороны qlik sense
построить так:
1. выбираем фильтр и добавляем в него измерение "дата"
2. добавляем таблицу и выбираем измерения "дата", "подразделение"
и меры "продажи" и "продажи за вчера"
3. щелкаем в фильтре дату "2/1/15"
4. в таблице получаем результат вида:
дата подразделение продажи продажи за вчера
2/1/15 А 110 100
вот что такого нужно написать в мере "продажи за вчера", чтобы там было 100
спасибо большое!
Изучаем Анализ множеств (http://help.qlik.com/sense/ru-RU/online/#../Subsystems/WorkingWith/Content/ChartFunctions/SetAnalysis/AnalyzeSetsOfData.htm%3FTocPath%3D%25D0%25A0%25D0%25B0%25D0%25B1%25D0%25BE%25D1%2582%25D0%25B0%2520%25D1%2581%2520Qlik%2520Sense%7C%25D0%25A1%25D0%25BE%25D0%25B7%25D0%25B4%25D0%25B0%25D0%25BD%25D0%25B8%25D0%25B5%2520%25D0%25B2%25D0%25B8%25D0%25B7%25D1%2583%25D0%25B0%25D0%25BB%25D0%25B8%25D0%25B7%25D0%25B0%25D1%2586%25D0%25B8%25D0%25B9%7C%25D0%2598%25D1%2581%25D0%25BF%25D0%25BE%25D0%25BB%25D1%258C%25D0%25B7%25D0%25BE%25D0%25B2%25D0%25B0%25D0%25BD%25D0%25B8%25D0%25B5%2520%25D0%25B2%25D1%258B%25D1%2580%25D0%25B0%25D0%25B6%25D0%25B5%25D0%25BD%25D0%25B8%25D0%25B9%2520%25D0%25B2%2520%25D0%25B2%25D0%25B8%25D0%25B7%25D1%2583%25D0%25B0%25D0%25BB%25D0%25B8%25D0%25B7%25D0%25B0%25D1%2586%25D0%25B8%25D1%258F%25D1%2585%7C%25D0%2590%25D0%25BD%25D0%25B0%25D0%25BB%25D0%25B8%25D0%25B7%2520%25D0%25BD%25D0%25B0%25D0%25B1%25D0%25BE%25D1%2580%25D0%25B0%2520%25D0%25B4%25D0%25B0%25D0%25BD%25D0%25BD%25D1%258B%25D1%2585%2520%25E2%2580%2594%2520%25D0%25B0%25D0%25BD%25D0%25B0%25D0%25BB%25D0%25B8%25D0%25B7%2520%25D0%25BC%25D0%25BD%25D0%25BE%25D0%25B6%25D0%25B5%25D1%2581%25D1%2582%25D0%25B2%7C_____0)
В этой теме (http://qlikview-forum.ru/qvf/index.php/topic,464.0.html)косвенно уже затрагивали эту тему.
Например:
Sum({$
<
Date = {'$(=Date(Max(Date)-1))'}
>} [Value])
Вот только если измерение Дата, то этот вариант не пройдет.
Надо подумать.
спасибо!
написал вот сюда, может ответят :D
http://community.qlik.com/message/705170#705170 (http://community.qlik.com/message/705170#705170)
Current Day Sales Vs Previous Day Sales
Можно и на русском спросить в официальной группе (http://community.qlik.com/groups/qlikview-%D1%80%D0%BE%D1%81%D1%81%D0%B8%D1%8F-%D0%B8-%D1%81%D0%BD%D0%B3-%D0%BF%D0%B0%D1%80%D1%82%D0%BD%D0%B5%D1%80%D1%8B)
Добрый день.
По вашей задаче у меня напрашивается решение на уровне скрипта.
Потребуется создать таблицу с рассчитанными показателями по предшествующим датам.
В этом случае никаких вопросов с формулой не возникнет.
Sales:
LOAD * INLINE [
Дата, Код, Сумма
01.01.2015, A, 100
01.01.2015, B, 233
01.01.2015, C, 342
02.01.2015, A, 763
02.01.2015, B, 234
02.01.2015, C, 21
03.01.2015, A, 467
03.01.2015, B, 23
03.01.2015, C, 211
];
load Дата, Код, if(Код=Previous(Код),Previous(Сумма)) As LastValue
Resident Sales
Order by Код, Дата;
Да, видно, что рабочее решение
спасибо большое
просто я думал, что есть in-memory решение
но не до жиру :D
еще раз, спасибо!
Если строить таблицу по другому измерению, то по формуле через анализ множеств работает.
Скажем,
подразделение, сумма сегодня, сумма вчера, сумма по фильтру, сумма по фильтру-1 день назад.
Было бы интересно посмотреть решение без формирования таблицы в скрипте, формулой.
братство кольца предложило 3 варианта
мне пока проще был подход с "previous" при загрузке
отработало ок
спасибо
надо учиться ух-ух
про asoftable еще ничего не читал :(
Можно еще и так:
Sales:
LOAD *, 'Сегодня' as Status INLINE [
Дата, Код, Сумма
01.01.2015, A, 100
01.01.2015, B, 233
01.01.2015, C, 342
02.01.2015, A, 763
02.01.2015, B, 234
02.01.2015, C, 21
03.01.2015, A, 467
03.01.2015, B, 23
03.01.2015, C, 211
];
//left join load Дата, Код, if(Код=Previous(Код),
// Previous(Сумма)) As LastValue
//Resident Sales
//Order by Код, Дата;
load date(Дата+1) As Дата, Код, Сумма,
'Вчера' as Status Resident Sales;
И формулы для всех выражений придется писать с учетом статуса:
Sum ({<Status={'Сегодня'}>}Сумма)
Sum ({<Status={'Вчера'}>}Сумма)