определенный текст из строки в Qlikivew / Qlik Sense

Автор PadijVD, апреля 05, 2015, 10:32:19 am

« предыдущая - следующая »

PadijVD

апреля 05, 2015, 10:32:19 am Последнее редактирование: июня 14, 2015, 03:25:27 pm от admin
Добрый день!
Подскажите как можно в qlikview взять определенный текст из строки?
Нужно из адресов типа " Российская Федерация, 630007, Новосибирская обл, Новосибирск г, Колыванская, 104, - " взять только область в данном случае это "Новосибирская обл"

admin

апреля 05, 2015, 12:37:27 pm #1 Последнее редактирование: апреля 05, 2015, 12:51:56 pm от admin
День добрый.
Как и в любом другом языке программирования в  Qlikview & Sense присутствует целый набор функций для работы с текстовыми значениями.

Во вложении приведен вариант решения задачи (формула в нижней строке).
Описания функций можно найти по ссылке выше.
Если же адреса в этом поле имеют разные форматы, т.е. не последовательность "Страна, Индекс, Область, .." а например - "Индекс, область,..", то придется проанализировать все варианты и прописывать условия на определение формата в котором записан адрес и соответствующее выражения для каждого случая.
В данном варианте мы:
вырезаем функций MID() из строки Adr,
начиная с позиции после второй запятой Index(Adr,',',2)+1,
подстроку между 2 и 3 запятыми Index(Adr,',',3)-Index(Adr,',',2)-1,
и результат дополнительно очищаем от крайних пробелов функцией  TRIM()

trim(
  mid(Adr,
         Index(Adr,',',2)+1,
         Index(Adr,',',3)-Index(Adr,',',2)-1
        ))


PadijVD


admin

Да не за что  :), приведенное решение можно сказать - стандартно для работы с текстовыми строками во многих языках.
А вот в Qlikview и Sense для работы с такими данными есть еще функция Subfield().

trim(
SubField(Adr,',',3)
)

дает тот же результат.

Рейтинг@Mail.ru Яндекс.Метрика