Extrair valores da string padrão em 3 colunas?

Extrair valores da string padrão em 3 colunas?

Tenho uma única coluna que contém uma string no seguinte padrão:

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

Quero extrair os dados das tv_[i]strings em 3 colunas separadas:

value1 value2 value3

Exemplo:

Para os dois registros a seguir:

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

As colunas devem ser:

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

Responder1

Coloque isso na primeira linha e mude A1 para a primeira célula:

=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)

Em seguida, arraste mais duas colunas e desça até o comprimento necessário.

![insira a descrição da imagem aqui

Responder2

Usando seu exemplo:

long-url-here?a=0&b=4&tv_a=olá&tv_b=lá&tv_3=agora

Eu abordo as coisas "por partes", ou divido o problema em partes menores e depois as monto. Isso também é conhecido como abordagem de “dividir para conquistar”. Isto é o que parece:

Você identificou que existem 3 variáveis ​​nas URLs que lhe interessam, na ordem:
     tv_a,tv_b,televisão_3.Mas vamos deixar assim:tv_a,tv_bee,tv_300000

Dado o URL, vamos encontrar tv_a:
     =ENCONTRAR("tv_a", URL, 1)=23=posição- encontre a string tv_a no URL começando na posição do primeiro caractere da string.

Qual é o comprimento da variável tv_a?
      =LEN("tv_a")=4=comprimento

Mesmo oURLe aposiçãode primeiravariávele acomprimentoda variável, vamos encontrar a palavra após o sinal '=':
      =MEADO(URL, variável+comprimento+1, comprimento+1)=olá

Você pode encadear toda a fórmula em uma única fórmula. Essa é uma tarefa trivial no Excel. A convenção de nomenclatura neste exemplo é:url=A3,primeiro=B2,segundo=C2,terceiro=D2. Isto é o que parece: insira a descrição da imagem aqui Todas as três variáveis: wrt Imagem acima do layout
     1º=MID(url,B3+LEN(primeiro)+1,C3-B3-LEN(primeiro)-2)=olá
     2nd=MID(url,C3+LEN(segundo)+1,D3- C3-LEN(segundo)-2)=lá
     3º=RIGHT(url,LEN(url)-FIND(terceiro,url,D3)-LEN(terceiro))=agora

Um exemplo de tarefa trivial: usando células auxiliares

Seja B3=FIND(primeiro,url,1), C3=LEN(primeiro): preferido
1º=MID(url,B3+LEN(primeiro)+1,C3-B3-LEN(primeiro)-2)=olá
Por substituição, você pode usar uma única linha em vez de células auxiliares:
1st=MID(url,FIND(primeiro,url,1)+LEN(primeiro)+1,FIND(segundo,url,1)-FIND(primeiro,url,1)-LEN(primeiro)-2)=olá

Você descobrirá que para resolver problemas como esses é melhor usar métodos de resolução por partes para retornar aos projetos para uso posterior em outras áreas semelhantes; desta forma você pode ver a solução do problema mais fácil porque é simples.

*Convenção de nomes:https://support.office.com/en-us/article/Define-and-use-names-in-formulas-4d0f13ac-53b7-422e-afd2-abd7ff379c64

informação relacionada