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

Форум разработчиков QlikView и Qlik Sense. Получи любые ответы на вопросы по QlikView и Qlik Sense в течении нескольких часов!

Вы не вошли.

Готовые решения на платйорме QlikView

#1 2015-08-24 17:08:22

Buzovskiy777
Участник
Зарегистрирован: 2015-08-24
Сообщений: 3
Windows 7Chrome 44.0.2403.157

Сортировка месяцев

Друзья, возникла проблема. В исходном экселевском файл, откуда подгружаю данные месяцы забиты обычным текстом в виде "Jan", "Feb'' и т.д. Qlick их распознает как текст и не сортирует по порядку от января до декабря, соответственно диаграммы получаются некорректные. Если забивать в экселевском файле месяцы в формате дат, то Qlick выдает очень много дат в списке, то есть за каждый год свой январь, февраль и т.д., а на диаграммах даты отображает в виде кол-ва дней с 1899 год, то есть, например, 42505 и т.д.
Нужен один список с месяцами в виде Jan Feb Mar Apr и т.д., чтобы данные по ним корректно отображались. Кто-нибудь может с этим помочь?

Неактивен

#2 2015-08-25 13:17:45

Oleg Orlov
Участник
Зарегистрирован: 2015-02-16
Сообщений: 14
Windows 7Chrome 44.0.2403.157

Re: Сортировка месяцев

Здравствуйте!

Все значения в QlikView имеют 2 представления: строковое и числовое. Допустим сегодняшнее число в строковом представлении равно "25.08.2015", а в числовом 42241. Если кроме даты используется время, то строка "25.08.2015 11:22:38" в числовом виде будет равна 42241,474050926, т. е. добавляется вещественная часть. Для работы с датами существуют ряд специальных функций. В вашем случае для получения списка месяцов необходимо в загрузочном скрипте к дате из Excel применить функцию Month.
Пример:

Load
    Дата
    , Month(Дата) As Месяц
From
    <Excel>
;

При создании списка с полем Месяц будут отображены месяца, согласно формату их представления, заданном в системной переменной MonthNames, которая устанавливается в блоке, автоматически добавляемом в начале скрипта при создании нового приложения:

SET ThousandSep=' ';
SET DecimalSep=',';
SET MoneyThousandSep=' ';
SET MoneyDecimalSep=',';
SET MoneyFormat='# ##0,00р.;-# ##0,00р.';
SET TimeFormat='h:mm:ss';
SET DateFormat='DD.MM.YYYY';
SET TimestampFormat='DD.MM.YYYY h:mm:ss[.fff]';
SET MonthNames='янв;фев;мар;апр;май;июн;июл;авг;сен;окт;ноя;дек';
SET DayNames='Пн;Вт;Ср;Чт;Пт;Сб;Вс';

Этот блок формируется согласно системным настройкам компьютера, на котором создается документ. Для изменения формата представления с русского на английский переопределите переменную MonthNames соответствующим значением ('Jan;Feb...') и запустите загрузку для применения изменений.

В графиках с динамикой обычно выводят месяц и год. В этом случае удобно использовать дополнительное поле, содержащее как месяц, так и год, вместо использования двух по отдельности (одно поле МесяцГод вместо двух полей Месяц и Год).
Пример 2:

Load
    Дата
    , Month(Дата) As Месяц
    , Year(Дата) As Год
    , Date(MonthStart(Дата), 'MMM YYYY') As МесяцГод
From
    <Excel>
;

Такой подход во-первых уменьшает количество кликов при сужении выборки в приложении (иначе надо было бы сначала выбрать год, а потом нужный месяц, т. е. 2 клика), а во-вторых позволяет в графике с динамикой использовать для временной оси меньшее пространство, выделяя основную часть под данные.

С уважением,
Олег Орлов

Редактировался Oleg Orlov (2015-08-25 13:27:03)

Неактивен

#3 2015-08-27 18:47:36

Buzovskiy777
Участник
Зарегистрирован: 2015-08-24
Сообщений: 3
Windows 7Chrome 44.0.2403.157

Re: Сортировка месяцев

Спасибо большое! Помогло

Неактивен

Сейчас в этой теме форумчан: 0, гостей: 1
[Bot] AppleWebKit

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.009 сек, 11 запросов выполнено - Использовано памяти: 1.62 Мбайт (Пик: 1.73 Мбайт) ]