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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: se от 22 июня 2015, 09:40:04

Название: преобразование данных ( Qlikview / Qlik Sense )
Отправлено: se от 22 июня 2015, 09:40:04
Подскажите как  данные
столбец                         столбец2 в нём суммы
"102000000
ВСеГО                                                                                                                       
I.  СНг   
АЗЕРБАЙДЖАН                                                                               
II. Государства Мира               
еВРОПА                                                                                                                                                     
НиДЕРЛАНДы                                                                                                                   
ПОЛЬшА                                                                                                                           
ФРАНЦиЯ                                                                                                     
ЧЕХиЯ                                                                                               
"103000000
ПОЛЬшА                                                                                                                           
ФРАНЦиЯ                                                                                                     
ЧЕХиЯ 
загрузить так что бы можно было  выбрать государство и сумму  соответствующие определенному номеру
Название: Re: преобразование данных
Отправлено: admin от 23 июня 2015, 07:15:34
День добрый, не совсем понятно как выглядит источник данных.
Можете снимком или файлом прикрепить образец во вложении?
Название: Re: преобразование данных
Отправлено: se от 24 июня 2015, 01:36:57
вот данные в файле надо выбрать по номеру данные по стране и сумме
Название: Re: преобразование данных
Отправлено: admin от 24 июня 2015, 07:21:54
ОК, и к какому результату следует прийти?
Название: Re: преобразование данных
Отправлено: se от 24 июня 2015, 10:05:42
нужно отобрать данные по номеру 102000000 если такие имеются скажем я отбираю по 1020 суммы которые попали в этот диапазон для айзербайджана и тд если в 1020 номере есть страна айзербайджан значит мне выдаст сумму по нему

Название: Re: преобразование данных
Отправлено: se от 26 июня 2015, 04:25:57
здесь наверное надо вставлять запрос с полнотекстовым поиском Какие правила вставки sql в скрипт?
Название: Re: преобразование данных
Отправлено: admin от 26 июня 2015, 04:38:57
Вечер добрый.
По простому говоря, нам следует выделить цифровой код и прописывать его в отдельной колонке до следующего.
Думаю, межзаписных функций будет достаточной (peek/previous)
Если сформируете табличный файл (Excel) для теста - сделаю скрипт для примера.
Название: Re: преобразование данных ( Qlikview / Qlik Sense )
Отправлено: se от 27 июня 2015, 02:08:26
Вот
Название: Re: преобразование данных ( Qlikview / Qlik Sense )
Отправлено: admin от 27 июня 2015, 03:07:15
ОК, спасибо.
Итак, во вложении табличный файл Книга1.xlsx похожий на ваш источник.
Используя трансформацию мастера создания файлов можно прийти к требуемому результату за один этап загрузки.
Вот код, который формирует из моего примера требуемую таблицу.

LOAD text(@1) as Страна,
     @2 As Значение,
     text(@3) as Код
FROM [Книга1.xlsx]
(ooxml, no labels, table is Лист1, filters(
Remove(Row, RowCnd(CellValue, 1, StrCnd(equal, 'Итого'))),
Remove(Row, RowCnd(CellValue, 1, StrCnd(contain, 'Группа'))),
ColXtr(1, RowCnd(CellValue, 1, StrCnd(start, '1')), 0),
Replace(3, top, StrCnd(null)),
ColXtr(1, RowCnd(CellValue, 1, StrCnd(start, '1')), 0),
Replace(3, top, StrCnd(null)),
Remove(Row, RowCnd(CellValue, 1, StrCnd(start, '1')))
));

Название: Re: преобразование данных ( Qlikview / Qlik Sense )
Отправлено: admin от 27 июня 2015, 03:33:06
Поясню, как загрузить такой файл.
Необходимо воспользоваться Мастером создания файла.
Открываете файл, первый экран с типом файла оставляем как есть.
На следующем этапе нажимаем кнопку "Вкл. Шаг трансформации".
На вкладке "Мусор" удаляем по условиям, условия даем поочередно. Я брал за условие "содержит" и часть фразы (Итого, Группа).
Далее идем на вкладку "Столб", нажимаем "Новый", ставим флажки на опциях "Заменить Null-значение предыдущим значением" и "Удалить исходную строку".
Исходный столбец = 1, в тестовом варианте, в вашем может отличаться.
Нажимаем "Ячейки из тех строк" и прописываем условие для определения кода, в тестовом варианте я поставил "начинается с" =1
Идем далее, ставим явные метки в параметрах файла, удаляем лишние столбцы и Готово.
Получим код.
Название: Re: преобразование данных ( Qlikview / Qlik Sense )
Отправлено: admin от 27 июня 2015, 03:42:49
Да, если требуется загрузить сведения в Qlik Sense, то придется воспользоваться Qlikview для формирования скрипта. Полученный код скопировать в скрипт загрузки данных Qlik Sense, заменив источник на заранее настроенное подключение (примерно [lib://test/Книга1.xlsx]).

Название: Re: преобразование данных ( Qlikview / Qlik Sense )
Отправлено: se от 27 июня 2015, 05:44:59
Может я не понял чем sense от view отличается но по моему view в полне самостоятельное приложение
Зачем итого если в коде с нолями уже итог идет а посчитать в группе можно формулу применить.В view там же есть инструменты фильтрации а код как я понял просто вместо лоад вставить и запустить загрузку.Еще не проверял а по проще чё нить можно написать?
Название: Re: преобразование данных ( Qlikview / Qlik Sense )
Отправлено: admin от 27 июня 2015, 09:39:10
Попроще только картинками.
Чтобы понять, надо повторить преобразование таблицы-примера, для этого:
1. Качаем таблицу во вложении (http://qlikview-forum.ru/qvf/index.php?action=dlattach;topic=788.0;attach=186).
2. Создаем новое приложение.
3. Открываем редактор скрипта (Ctrl-E).
4. Нажимаем кнопку "Табл.поля..."
5. Выбираем скачанный файл Книга1.xlsx
6. Выбираем "Метки" - Нет
7. Нажимаем "Далее"
8. Нажимаем кнопку "Вкл. Шаг трансформации"
9. Нажимаем "Удаление по условиям" для удаления ненужных строк.
10. Прописываем условия
и т.д.