Извлечь значения из строки шаблона в 3 столбца?

Извлечь значения из строки шаблона в 3 столбца?

У меня есть один столбец, содержащий строку следующего шаблона:

blablabla?bla&bla&tv_a=value1&tv_b=value2&tv_3=value3

Я хочу извлечь данные из tv_[i]строк в 3 отдельных столбца:

value1 value2 value3

Пример:

Для следующих двух записей:

long-url-here?a=0&b=4&tv_a=hello&tv_b=there&tv_3=now

other-url?z=4&v=2&tv_a=this&tv_b=is%20an2&tv_3=example

Столбцы должны быть:

column 1 | column 2 | column 3
-------------------------------
hello    | there    | now
this     | is an    | example

решение1

Поместите это в первую строку и измените A1 на первую ячейку:

=MID(TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A1,"2",""),"%0"," "),"&tv_",REPT(" ",999)),999*COLUMN(A:A),999)),FIND("=",TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A1,"2",""),"%0"," "),"&tv_",REPT(" ",999)),999*COLUMN(A:A),999)))+1,999)

Затем перетащите еще на два столбца и вниз на необходимую длину.

![введите описание изображения здесь

решение2

Используя ваш пример:

длинный-url-здесь?a=0&b=4&tv_a=привет&tv_b=там&tv_3=сейчас

Я подхожу к вещам "по частям", или разбиваю проблему на более мелкие части, а затем собираю их. Это также известно как подход "разделяй и властвуй". Вот как это выглядит:

Вы определили, что в URL-адресах есть 3 переменные, которые вас интересуют, в следующем порядке:
     тв_а,тв_б,тв_3.Но пусть будет так:тв_а,тв_пчела,тв_300000

Учитывая URL, давайте найдем tv_a:
     =НАХОДИТЬ("tv_a", URL, 1)"="23"="позиция- найдите строку tv_a в URL, начиная с позиции 1-го символа в строке.

Какова длина переменной tv_a?
      =ЛЕН("тв_а")"="4"="длина

ДжевенURLипозицияиз первыхпеременнаяидлинапеременной, найдем слово после знака «=»:
      =СРЕДНИЙ(URL, переменная+длина+1, длина+1)"="привет

Вы можете объединить всю формулу в одну. Это тривиальная задача в Excel. Соглашение об именовании в этом примере следующее:URL-адрес=А3,первый=В2,второй=С2,третий=D2. Вот как это выглядит: введите описание изображения здесь Все три переменные: wrt Изображение выше макет
     1-й=MID(url,B3+LEN(первый)+1,C3-B3-LEN(первый)-2)=привет
     2-й=MID(url,C3+LEN(второй)+1,D3-C3-LEN(второй)-2)=там
     3-й=RIGHT(url,LEN(url)-FIND(третий,url,D3)-LEN(третий))=сейчас

Пример тривиальной задачи: использование вспомогательных клеток

Пусть B3=FIND(first,url,1), C3=LEN(first): предпочтительнее
1-й=MID(url,B3+LEN(первый)+1,C3-B3-LEN(первый)-2)=привет
При замене вы можете использовать одну строку вместо вспомогательных ячеек:
1-й=СРЕДНИЙ(url,НАЙТИ(первый,url,1)+ДЛИНА(первый)+1,НАЙТИ(второй,url,1)-НАЙТИ(первый,url,1)-ДЛИНА(первый)-2)=привет

Вы обнаружите, что при решении таких задач лучше использовать методы поэлементного решения, чтобы вернуться к проектам для последующего использования в других схожих областях; таким образом, вы сможете легче увидеть решение задачи, поскольку оно прямолинейно.

*Соглашение об именовании:https://support.office.com/en-us/article/Определение-и-использование-имен-в-формулах-4d0f13ac-53b7-422e-afd2-abd7ff379c64

Связанный контент