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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: piton от 17 ноября 2016, 04:29:05

Название: Лишнее количество в итоге. (QlikView)
Отправлено: piton от 17 ноября 2016, 04:29:05
Добрый день!
У меня ситуация следующая. Есть отчет, если проще то группа, в ней энное количество товара. Далее за выбранный период отображаются в сводной таблице сколько продалось товара, и остаток только на товар где продаж больше нуля. Реализовано функцией IF() продажи больше чем ноль то остаток показываем, если меньше или равно нулю, то остаток показываем ноль. А в настройках стоит, что позиции с нулевым выражением скрываем. Проблема в том, что итоги показывают остаток больше, так как итог сначала суммирует общее количество продаж и только потом проверяется функция IF().
Можно как-то заставить итог по остаткам отображать правильную сумму?
Название: Re: Лишнее количество в итоге. (QlikView)
Отправлено: admin от 17 ноября 2016, 07:52:16
Привет.
Вместо If пользуйтесь анализом множеств ( на эту тему сегодня  новая статья вышла (http://blog.atkcg.ru/analiz-mnozhestv-v-qlikview-zvezdnye-ravenstva/))
Попробуйте
sum({<[#Сумма]={'>0'}>} [#Сумма остатка])
Название: Re: Лишнее количество в итоге. (QlikView)
Отправлено: piton от 18 ноября 2016, 09:37:05
В моем случае ситуация сложнее. Пример я привел упрошенный.
В отчете продажи считаются так:
Sum({<[Дата] = {">=$(=[ДатаС])<=$(=[ДатаПо])"}>}[Кол-во движения товара реализация])
-
Sum({<[Дата] = {">=$(=[ДатаС])<=$(=[ДатаПо])"}>}[Кол-во движения товара реализация_интернет])

По мимо этого есть еще столбцы с данными.
И в итоге остаток высчитывается так:
if (  [Приход / Кол-во]=0 and [Торг. реал-ция / Кол-во]=0 and [Неторг. выбытие / Кол-во]=0 and [Вн.перем. между БЕ / Кол-во]=0 //Перечисление полей в функции if(), это название столбцов.
  , 0 ,
Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара прихода])
- Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара реализация])
- Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара выбытие])
- Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара перемещение])
+ Sum({<[Дата] = {"<$(=[ДатаС])"}>}[Кол-во движения товара исходящий остаток])

Как в данном случае применить анализ множеств я не совсем представляю.
Название: Re: Лишнее количество в итоге. (QlikView)
Отправлено: admin от 18 ноября 2016, 08:37:30
В скрипт не думали перевести расчеты?
Название: Re: Лишнее количество в итоге. (QlikView)
Отправлено: Prive от 06 декабря 2016, 05:39:47
Цитата: piton от 17 ноября  2016, 04:29:05  
Добрый день!
У меня ситуация следующая. Есть отчет, если проще то группа, в ней энное количество товара. Далее за выбранный период отображаются в сводной таблице сколько продалось товара, и остаток только на товар где продаж больше нуля. Реализовано функцией IF() продажи больше чем ноль то остаток показываем, если меньше или равно нулю, то остаток показываем ноль. А в настройках стоит, что позиции с нулевым выражением скрываем. Проблема в том, что итоги показывают остаток больше, так как итог сначала суммирует общее количество продаж и только потом проверяется функция IF().
Можно как-то заставить итог по остаткам отображать правильную сумму?
Можете поробвовать прописать свои итоги, используя функцию  Dimensionality() :
IF( Dimensionality()>=1,
     формула показателя,
     формула итого)