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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: Ирина от 02 февраля 2015, 02:55:16

Название: Создание сложной диаграммы в Qlikview
Отправлено: Ирина от 02 февраля 2015, 02:55:16
Подскажите, пожалуйста, как создать такую диаграмму https://yadi.sk/i/dg319auoeQdWY
[smg id=66 width=400 type=preview]
Чтобы считалась доля продаж товаров (в шт.), в зависимости от их цены.

В измерениях идет Дата, а вот как прописать выражение, где одновременно задать создание ценовых диапазонов и подсчет количества продаж по этим диапазонам?
Название: Re: Создание сложной диаграммы (Классификация с помощью переменной с параметром)
Отправлено: admin от 02 февраля 2015, 03:26:39
Добрый день.
Функция class() в этом случае может не устроить. Следовательно необходимо классифицировать цены по диапазонам самостоятельно, например с использованием переменной с параметром.
Примерно так:

set vFuncTest="
if($1<1000,'Менее 1000',
if($1<2500,'от 1000 до 2500','Более 2500'
))
";

LOAD *, $(vFuncTest(F2)) as [Диапазон] INLINE [
    F1, F2
    1, 400
    2, 1000
    3, 1500
    4, 5000
    5, 10000
    6, 2000
    7, 3400
    8, 522
    9, 920
    10, 1004
];


В диаграмме ставим в  измерения Диапазон, и в выражении подсчитываем количество продаж.
Название: Re: Создание сложной диаграммы
Отправлено: Ирина от 02 февраля 2015, 04:16:58
А если я в измерении поставлю диапазон, то куда я буду ставить даты? Или получается будет 2 измерения?
Название: Re: Создание сложной диаграммы
Отправлено: admin от 02 февраля 2015, 04:39:42
Да, два измерения.
Первое Дата, второе диапазон.
Название: Re: Создание сложной диаграммы
Отправлено: Ирина от 02 февраля 2015, 04:42:17
Понятно. Скажите, а как быть если диапазоны должны быть настраиваемыми? Менять каждый раз в скрипте не вариант...
Ведь для одних товаров могут быть одни диапазоны, а для других другие.
Название: Re: Создание сложной диаграммы
Отправлено: admin от 02 февраля 2015, 07:11:51
Следует проанализировать все варианты, найти общее решение.
Если много условий, и создается громоздкая цепочка условий можно использовать макрос.
Можно без макроса использовать еще один параметр в переменной.
Можно найти общий знаменатель, разбить на поддиапазоны функцией class(), затем применив mapping table по таблице необходимых диапазонов получить требуемый результат.

Название: Re: Создание сложной диаграммы
Отправлено: Ирина от 03 февраля 2015, 12:25:25
Понятно, с этой задачей оказалось не все так просто, буду обдумывать какой вариант мне более всего подходит. Спасибо!

А еще такой вопрос по сводной таблице c диапазонами цен. Выглядит вот так https://yadi.sk/i/qwHe-YiVeS76g
[smg id=67 width=400 type=previrew]
Диапазон задаю ползунком через переменную.
Измерения выглядят вот так https://yadi.sk/i/uLx7Qdk-eS7Cp
[smg id=68  width=400 type=previrew]
Вопрос - никак не могу понять, как рассчитать долю в процентах для каждого диапазона по строчке....
Т.е. таким образом я буду понимать, что по такой-то акции 40% купленных товаров приходятся на диапазон цен от 0 до 1000 руб.
Название: Re: Создание сложной диаграммы
Отправлено: admin от 03 февраля 2015, 01:07:15
Добрый день.
В свойствах диаграммы, на вкладке Выражения есть опция "Доля", устанавливающая режим отображения результата в процентах.
[smg id=69 width=300 type=preview]
Название: Re: Создание сложной диаграммы
Отправлено: admin от 03 февраля 2015, 02:19:49
Извиняюсь, не сразу обратил внимание что у вас сводная таблица.
В этом случае следует рассчитывать долю в выражении и настроить отображение в процентах на вкладке "Номер" свойств диаграммы.
Долю считать примерно так - sum(поле)/sum( TOTAL поле)
Название: Re: Создание сложной диаграммы
Отправлено: Ирина от 11 февраля 2015, 01:38:24
Так не работает ((( Мне нужна доля по строке!
Подскажите, пожалуйста как подсчитать долю?
Название: Re: Создание сложной диаграммы
Отправлено: admin от 11 февраля 2015, 07:58:13
Попробуйте так:
sum(поле)/sum( TOTAL <ID акции на сайте> поле)
В вашем случае скорей всего count, но смысл в том, чтобы в знаменателе считать сумму по всем записям текущего измерения.
Название: Re: Создание сложной диаграммы
Отправлено: admin от 12 февраля 2015, 10:23:50
Смотрим описание функции SUM() (http://help.qlik.com/sense/ru-RU/online/#../Subsystems/Hub/Content/Scripting/AggregationFunctions/sum.htm?Highlight=sum), параметр TOTAL
Название: Re: Создание сложной диаграммы
Отправлено: Ирина от 12 февраля 2015, 12:06:22
Большое спасибо, теперь все считается!!!  :D :D :D
Название: Re: Создание сложной диаграммы в Qlikview
Отправлено: IpS от 26 января 2016, 11:07:11
Добрый день. Чтобы не плодить новую тему, спрошу здесь.

Как сделать что то подобное в Qlik Sense Desktop ?

Нужно построить горизонтальную гистограмму с двумя измерениями, но в процентном соотношении.
То есть несколько организаций (первое измерение), в каждой организации есть группы расходов (второе измерение), и сами расходы (мера).
Задача: нарисовать гистограмму, на которой было бы видно процент расходов по группам расходов для каждой организации.
В количественном виде все хорошо получается, а в процентном - не могу понять, как сделать.
В итоге нужно получить что то наподобие этого: https://yadi.sk/i/6OOUwdebnkBih (https://yadi.sk/i/6OOUwdebnkBih)
Название: Re: Создание сложной диаграммы в Qlikview
Отправлено: admin от 26 января 2016, 07:00:11
Привет.
Ну раз Sense не может вычислить процент сам, надо ему помочь  :)
Например, выражение :
Sum([Сумма])/Sum( total<[Организация]> [Сумма])
использованное в линейчатой диаграмме дает требуемый результат.
[smg id=82  type=preview]
Название: Re: Создание сложной диаграммы в Qlikview
Отправлено: IpS от 27 января 2016, 09:56:06
Спасибо! Все получилось.