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

Автор Тема: Возможен ли такой фильтр. (парсинг строки параметров URL)  (Прочитано 2075 раз)

Оффлайн asdlegioner

  • Наставник
  • **
  • Сообщений: 63
  • Рейтинг: +2/-0
    • Просмотр профиля
Привет, такой вопрос:

У меня есть поле в excel с таким содержанием:
http://www.сайт.ru/promo.html?utm_source=YD&utm_medium=cpc&utm_content=prodvizhenie&utm_campaign=obshhie_poisk_spb&yclid=5807162979809803946
Можно ли написать какой нить фильтр который выводил бы значения переменных из ссылки к примеру из utm_source=YD брал значение YD, и так далее по всем переменным в cсылке.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 981
  • Страна: ru
  • Рейтинг: +97/-0
    • Просмотр профиля
Re: Возможно ли такой филтр.
« Ответ #1 : Декабрь 05, 2014, 10:52:01 am »
Конечно, как ни странно, но это тоже структурированная информация.
? - начало строки параметров
& - разделитель параметров
= - разделитель параметр/значение.
Думаю, для скрипта понадобится написание макроса.

Оффлайн asdlegioner

  • Наставник
  • **
  • Сообщений: 63
  • Рейтинг: +2/-0
    • Просмотр профиля
А можно пример?))

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


Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 981
  • Страна: ru
  • Рейтинг: +97/-0
    • Просмотр профиля
Для написания примера мне не совсем понятна задача, но вот перечень функций, с примерами, которые могут помочь решить задачу самостоятельно:

len( s)
Длина строки s. Результат — целое число.

left( s , n)

Подстрока строки s. Результат — строка, содержащая первые n символов строки s.

right( s , n)
Подстрока строки s. Результат — строка, содержащая последние n символов s.

mid(s, n1[, n2 ])
Подстрока строки s. Результат — строка, начинающаяся с символа n1 с длиной n2 символов. Если переменная n2 отсутствует, функция возвращает правую часть строки, начинающуюся с символа n1. Позиции строки пронумерованы, начиная с 1.

index(s1 , s2[ , n])
Позиция подстроки. Эта функция возвращает начальную позицию вхождения n: подстроки s2 в строке s1. Если переменная n отсутствует, используется первое вхождение. Если n — отрицательное число, поиск выполняется, начиная с конца строки s1. Результат — целое число. Позиции строки пронумерованы, начиная с 1.

Интересна также
subfield(s, 'delimiter' [ , index ] )
В этой версии с тремя параметрами данная функция скрипта возвращает определенную подстроку большей строки s с разделителем «delimiter». index — дополнительное целое число, обозначающее подстроку, которая должна быть возвращена. Если index отсутствует, при использовании subfield в выражении поля в операторе load функция subfield укажет оператору load на автоматическое создание одной полной записи для каждой подстроки в s.
В версии с двумя параметрами функция subfield создает одну запись для каждой подстроки, которая может быть получена для строки s большего размера с разделителем «delimiter». При использовании нескольких функций subfield в одном операторе load будет получено декартово произведение всех сочетаний.

TextBetween(s , beforetext , aftertext [, n ])
Возвращает текст между вхождением n: beforetext и непосредственно следующим вхождением aftertext в строке s.

FindOneOf(text , characterset [ , n])
Возвращает позицию n: в строке text of любых символов, найденных в строке characterset. Если n отсутствует, возвращается позиция первого вхождения. Если соответствующая строка не найдена, возвращается 0.

Примеры можно найти в справке по Qlikview или в руководстве.


Оффлайн asdlegioner

  • Наставник
  • **
  • Сообщений: 63
  • Рейтинг: +2/-0
    • Просмотр профиля
А задача простая, есть два excel файла первый с доходами где указан источник трафика в виде урла http://www.сайт.ru/promo.html?utm_source=YD&utm_medium=cpc&utm_content=prodvizhenie&utm_campaign=obshhie_poisk_spb&yclid=5807162979809803946 и второй файл с расходами где указаны ключевые слова и номера объявлений.

Вот мне и надо из этой ссылки вцепить ключ и номер объявления и сопоставить их с расходами из второго файла, тогда я смогу подсчитать доход от клиента с учетом расходов на рекламу). Таким образом хочу настроить связь двух таблиц по фразе и номеру объявления.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 981
  • Страна: ru
  • Рейтинг: +97/-0
    • Просмотр профиля
Ну вот скажем для utm_content

TextBetween([Url1],'utm_content=','&')