Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Ноябрь 21, 2017, 07:27:35 am

Автор Тема: Как сравнить среднее значение по подгруппе(Total) с каждым значением  (Прочитано 305 раз)

Оффлайн mslobogan

  • Новичок
  • *
  • Сообщений: 5
  • Страна: ua
  • Рейтинг: +1/-0
    • Просмотр профиля
Добрый день,
подскажите пож. как можно в Qlik осуществить следующее.

1) как сравнить среднее значение(цена) по подгруппе со значениями(цены) в группе, для выявления кто купил по большей цене чем средняя(Avg(Total)) или меньшей.

я написал такую формулу:

if ([цена без ПДВ]>=Aggr (Avg(TOTAL ([цена без ПДВ]),[ID Access]), 'выше среднего', 'ниже среднего'))

но Qlik по ходу не берет в расчет Total, а сравнивает все значения в группе.

Заранее благодарен.

Оффлайн Oleg

  • Новичок
  • *
  • Сообщений: 5
  • Страна: ua
  • Рейтинг: +2/-0
    • Просмотр профиля
Приветствую!
Не совсем понятно зачем Вы используете Aggr() в данном выражении. Более того, зачем его использовать снаружи Avg(). Таким образом, Вы можете получить более 1го среднего значения цены для каждого допустимого ID Access значения.
И похоже что у Вас неправильный синтаксис: Avg(TOTAL ([цена без ПДВ]) - лишняя круглая скобка перед словом "цена".
Рекомендую либо поменять местами Avg и Aggr - если все же нужно учитывать ID Access значения.
Либо убрать Aggr вовсе.
Также формулу Avg можно прописать следующим образом:
Avg(TOTAL <[ID Access]> [цена без ПДВ]) - это выражение будет Вам возвращать среднюю цену внутри каждого значения [ID Access], при условии что ID Access используется как Измерение в диаграмме/таблице.

Оффлайн mslobogan

  • Новичок
  • *
  • Сообщений: 5
  • Страна: ua
  • Рейтинг: +1/-0
    • Просмотр профиля
Добрый день,
подскажите пож. как можно в Qlik осуществить следующее.

1) как сравнить среднее значение(цена) по подгруппе со значениями(цены) в группе, для выявления кто купил по большей цене чем средняя(Avg(Total)) или меньшей.

я написал такую формулу:

if ([цена без ПДВ]>=Aggr (Avg(TOTAL ([цена без ПДВ]),[ID Access]), 'выше среднего', 'ниже среднего'))

но Qlik по ходу не берет в расчет Total, а сравнивает все значения в группе.

Заранее благодарен.

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


Оффлайн mslobogan

  • Новичок
  • *
  • Сообщений: 5
  • Страна: ua
  • Рейтинг: +1/-0
    • Просмотр профиля
Добрый день,
 я прикрепил файл, с тем что я делал. Если прописать формулу Avg(TOTAL <[ID Access]> [цена без ПДВ]) как Вы говорите , то она возвращает среднюю цену общюю не включая группы.

А мне необходимо сравнить среднюю цену в группе( я вычислил) с каждой ценой в группе

Оффлайн millik

  • Наставник
  • **
  • Сообщений: 53
  • Страна: by
  • Рейтинг: +22/-0
    • Просмотр профиля
я написал такую формулу:

if ([цена без ПДВ]>=Aggr (Avg(TOTAL ([цена без ПДВ]),[ID Access]), 'выше среднего', 'ниже среднего'))

но Qlik по ходу не берет в расчет Total, а сравнивает все значения в группе.

Заранее благодарен.

1)
Сразу что бросается в глаза это ошибки в скобках. В конце должна стоять только одна скобка, т.к. закрывается только If. Ещё одна лишняя скобка перед [цена без ПДВ] в функции Avg(). Зато не хватает  скобки после [ID Access], т.к. Aggr не закрыт.

2)
Когда вы используете Aggr() эта функция не видит вашу внешнюю таблицу. Она строит свою временную таблицу. В данном случае из 2 полей: измерения [ID Access] и меры Avg(TOTAL ([цена без ПДВ]).
В данной временной таблице префикс TOTAL работает только на [ID Access].
Попробуйте дописать в эту временную таблицу ещё одно измерение подгруппы, а в префиксе TOTAL исключить поле [ID Access]
Aggr(Avg(TOTAL<[ID Access]> [цена без ПДВ]),[ID Access],[Подгруппа])

3)
Не совсем понятно использование Aggr(), если все измерения и так есть в выходной таблице. Можно оставить просто Avg() расширив блок исключений TOTAL на необходимые измерения.
Aggr() обычно используется когда в конечной таблице другой набор измерений, не тот что нужен для вычисления меры.
 


Оффлайн mslobogan

  • Новичок
  • *
  • Сообщений: 5
  • Страна: ua
  • Рейтинг: +1/-0
    • Просмотр профиля
вы говорите что скобки стоят не правильно, но когда я пишу формулу то Qlik говорит что "Expression ok", второй момент я все перепробовал но результат тот же.
В документации написано что если сравнивать множество с подмножеством и наоборот, то среднее значение "Total" по каждой подгруппе не будет учитываться, а будет браться среднее по всей таблице.

а мне необходимо что бы было так:

цена без ПДВ       об'єм/тара     Avg цена без ПДВ   новая формула
1                                1мл                   4.5                       меньше
2                                1мл                                               меньше
3                                1мл                                               меньше
4                                1мл                                               меньше
5                                1мл                                               больше
6                                1мл                                               больше
7                                1мл                                               больше
8                                1мл                                               больше

есть вариант с екселем, но здесь мне кажется быстрее, если правильно написать формулу.

Оффлайн millik

  • Наставник
  • **
  • Сообщений: 53
  • Страна: by
  • Рейтинг: +22/-0
    • Просмотр профиля
Подготовьте, пожалуйста, небольшой пример скрипта загрузки с тестовыми данными и окончательную таблицу какую вам нужно получить из этих данный.
На словах очень трудно понять, какая у вас вообще модель данных и что вы в итоге хотите увидеть.

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


Оффлайн mslobogan

  • Новичок
  • *
  • Сообщений: 5
  • Страна: ua
  • Рейтинг: +1/-0
    • Просмотр профиля
во вложении ексель.

заранее благодарен