Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 06:09:44 am

Автор Тема: продажи за предыдущий день мера  (Прочитано 2111 раз)

Оффлайн 100tsky

  • Новичок
  • *
  • Сообщений: 14
  • Рейтинг: +3/-0
    • Просмотр профиля
продажи за предыдущий день мера
« : Февраль 01, 2015, 03:25:01 pm »
добрый день!

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

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

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

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

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

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

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

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

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

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

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

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: продажи за предыдущий день мера
« Ответ #1 : Февраль 01, 2015, 04:58:30 pm »
Изучаем Анализ множеств

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

Оффлайн 100tsky

  • Новичок
  • *
  • Сообщений: 14
  • Рейтинг: +3/-0
    • Просмотр профиля
Re: продажи за предыдущий день мера
« Ответ #2 : Февраль 02, 2015, 06:30:46 am »
спасибо!

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


Неофициальный форум пользователей QlikView & Qlik Sense

Re: продажи за предыдущий день мера
« Ответ #2 : Февраль 02, 2015, 06:30:46 am »

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: продажи за предыдущий день мера
« Ответ #3 : Февраль 02, 2015, 07:23:55 am »
Можно и на русском спросить в официальной группе

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: продажи за предыдущий день мера
« Ответ #4 : Февраль 02, 2015, 09:02:38 am »
Добрый день.

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

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

  • Новичок
  • *
  • Сообщений: 14
  • Рейтинг: +3/-0
    • Просмотр профиля
Re: продажи за предыдущий день мера
« Ответ #5 : Февраль 02, 2015, 10:05:11 am »
Да, видно, что рабочее решение
спасибо большое

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

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: продажи за предыдущий день мера
« Ответ #6 : Февраль 02, 2015, 10:29:26 am »
Если строить таблицу по другому измерению, то по формуле через анализ множеств работает.
Скажем,
подразделение, сумма сегодня, сумма вчера, сумма по фильтру, сумма по фильтру-1 день назад.

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

Неофициальный форум пользователей QlikView & Qlik Sense

Re: продажи за предыдущий день мера
« Ответ #6 : Февраль 02, 2015, 10:29:26 am »

Оффлайн 100tsky

  • Новичок
  • *
  • Сообщений: 14
  • Рейтинг: +3/-0
    • Просмотр профиля
Re: продажи за предыдущий день мера
« Ответ #7 : Февраль 03, 2015, 03:03:17 am »
братство кольца предложило 3 варианта

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

спасибо

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

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: продажи за предыдущий день мера
« Ответ #8 : Февраль 03, 2015, 09:11:50 am »
Можно еще и так:
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={'Вчера'}>}Сумма)