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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: banan22vo от 11 декабря 2018, 11:31:55

Название: Недельный график
Отправлено: banan22vo от 11 декабря 2018, 11:31:55
Добрый день!
У меня есть график с показателями Отгрузки (в рублях), денежных поступлений, дебиторской задолженности (ДЗ)  и Просроченной ДЗ (ПДЗ).
(https://cdn1.savepice.ru/uploads/2018/12/11/5a5e2cac62140b73e854c64aeaae0886-full.jpg)
Вопрос, как нужно задать параметры для ДЗ и ПДЗ на аналогичном графике, но с недельным анализом.
Проблема в том, что:
SUM([ПДЗ]) суммирует все показатели за неделю - очень большое число
AVG([ПДЗ]) выводит среднее среди всех КОНТРАГЕНТОВ, а не дат - слишком маленькое число
MAX([ПДЗ]) опять же анализирует внутри КОНТРАГЕНТА
Пока что сделал так: Sum([ПДЗ])/7, но сами понимаете, что на действующую неделю это работает не корректно.
Помогите пожалуйста.

И ещё вопрос, хочу сделать меру, которая берёт ДЗ у крайней даты и делит на сумму последних 30 поступлений. Крайняя дата у меня в переменной имеется (lastdate), а вот со второй частью задачи проблемка... HELP  ::)
ЦитироватьSum({<[Период]={'$(lastdate)'}>}[ДЗ]) / Sum(**30 крайних дней, ни больше ни меньше**[Поступление])
Название: Re: Недельный график
Отправлено: admin от 11 декабря 2018, 07:26:40
Привет.
С данными ДЗ/ПДЗ понедельно-помесячно история интересная.
Если надо выводить среднее значение - придется вычислять с помощью функции агрегирования aggr().
Либо выводить крайнюю на неделю цифру, ведь оборачиваемость ДЗ вы считаете не от средней.
А для второго выражения , я так понимаю надо сложить движения за 30 суток.
Вариантов несколько, либо в выражении анализа множеств вычислить, либо использовать флаг календаряю
Мне второй нравится больше.
В календаре каждый день считаются флаги, Например ДнейНазад,  в котором сегодня или крайняя дата=0
Вчера =1 и т.д.
Следовательно в формуле будет sum({<ДнейНазад={'>0<30'}>} #ПолеМеры)
Название: Re: Недельный график
Отправлено: banan22vo от 12 декабря 2018, 09:30:58
С первым понятно, попробую.

ЦитироватьВариантов несколько, либо в выражении анализа множеств вычислить, либо использовать флаг календаряю
Мне второй нравится больше.
В календаре каждый день считаются флаги, Например ДнейНазад,  в котором сегодня или крайняя дата=0
Вчера =1 и т.д.
Следовательно в формуле будет sum({<ДнейНазад={'>0<30'}>} #ПолеМеры)

А вот с этим не совсем.  :-\ Можно пожалуйста по подробнее.
В календаре, это в смысле autoCalendar, который в коде загрузки присутствует?
________________
Отчаявшись, думал просуммировать [lastdate-1;lastdate-2;...;lastdate-30],
но "не понос так золотуха", теперь у меня по каким-то причинам не задаётся отбор в скрипте...
Sum({<[Период]={'$(lastdate)'}>}[ПДЗ])
Тут же всё корректно написано... Почему может не выводиться с параметрами?
________________
Всё спасибо! Этот вопрос уладил!
Дело было в формате даты (01/01/2018 не равно 1/1/2018) как выяснилось...
Но опять же, это всё работает при выключенных фильтрах, оборачиваемость на выбранную дату не высчитывается, только на крайнюю ???
Название: Re: Недельный график
Отправлено: banan22vo от 12 декабря 2018, 10:18:56
Цитата: admin от 11 декабря  2018, 07:26:40  
С данными ДЗ/ПДЗ понедельно-помесячно история интересная.
Если надо выводить среднее значение - придется вычислять с помощью функции агрегирования aggr().
Либо выводить крайнюю на неделю цифру, ведь оборачиваемость ДЗ вы считаете не от средней.

А как вывести крайнюю на неделю цифру? Интересует понедельник.
Нашел функцию weekday={0}.
В таблице с датами отбор работает корректно.
if(weekday([Период])='Mon', sum([ПДЗ]))
Переношу на недельный график - не отображается  >:( >:( >:(