продажи за предыдущий день мера

Автор 100tsky, февраля 01, 2015, 03:25:01 pm

« предыдущая - следующая »

100tsky

февраля 01, 2015, 03:25:01 pm Последнее редактирование: февраля 02, 2015, 08:04:21 pm от admin
добрый день!

помогите, вопрос простой, а ответа не могу найти  :)

загружаем таблицу:

дата          подразделение   продажи
1/1/15          А                          100
2/1/15          А                          110

можно ли со стороны qlik sense
построить так:

1. выбираем фильтр и добавляем в него измерение "дата"

2. добавляем таблицу и выбираем измерения "дата", "подразделение"
и меры "продажи" и "продажи за вчера"

3. щелкаем в фильтре дату "2/1/15"

4. в таблице получаем результат вида:

дата      подразделение  продажи     продажи за вчера
2/1/15            А                110                      100

вот что такого нужно написать в мере "продажи за вчера", чтобы там было 100

спасибо большое!

admin

февраля 01, 2015, 04:58:30 pm #1 Последнее редактирование: февраля 01, 2015, 06:46:16 pm от admin
Изучаем Анализ множеств

В этой теме косвенно уже затрагивали эту тему.
Например:
Sum({$
<
Date = {'$(=Date(Max(Date)-1))'}
>} [Value])

Вот только если измерение Дата, то этот вариант не пройдет.
Надо подумать.

100tsky

спасибо!

написал вот сюда, может ответят  :D
http://community.qlik.com/message/705170#705170
Current Day Sales Vs Previous Day Sales


admin


admin

февраля 02, 2015, 09:02:38 am #4 Последнее редактирование: февраля 02, 2015, 09:16:29 am от admin
Добрый день.

По вашей задаче у меня напрашивается решение на уровне скрипта.
Потребуется создать таблицу с рассчитанными показателями по предшествующим датам.
В этом случае никаких вопросов с формулой не возникнет.


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 Код, Дата;

100tsky

Да, видно, что рабочее решение
спасибо большое

просто я думал, что есть in-memory решение
но не до жиру  :D
еще раз, спасибо!

admin

Если строить таблицу по другому измерению, то по формуле через анализ множеств работает.
Скажем,
подразделение, сумма сегодня, сумма вчера, сумма по фильтру, сумма по фильтру-1 день назад.

Было бы интересно посмотреть решение без формирования таблицы в скрипте, формулой.

100tsky

братство кольца предложило 3 варианта

мне пока проще был подход с "previous" при загрузке
отработало ок

спасибо

надо учиться ух-ух
про asoftable еще ничего не читал  :(

admin

Можно еще и так:

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={'Вчера'}>}Сумма)

Рейтинг@Mail.ru Яндекс.Метрика