¿Extraer valores de la cadena del patrón en 3 columnas?

¿Extraer valores de la cadena del patrón en 3 columnas?

Tengo una sola columna que contiene una cadena con el siguiente patrón:

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

Quiero extraer los datos de las tv_[i]cadenas en 3 columnas separadas:

value1 value2 value3

Ejemplo:

Para los dos registros siguientes:

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

Las columnas deben ser:

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

Respuesta1

Pon esto en la primera fila y cambia A1 a la primera celda:

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

Luego arrastre dos columnas más y baje hasta la longitud necesaria.

![ingrese la descripción de la imagen aquí

Respuesta2

Usando su ejemplo:

URL-larga-aquí?a=0&b=4&tv_a=hola&tv_b=allá&tv_3=ahora

Me acerco a las cosas "por partes", o rompo el problema en partes más pequeñas y luego las ensamblo. Esto también se conoce como el enfoque de "divide y vencerás". Así es como se ve:

Identificaste que hay 3 variables en las URL que te interesan, en orden:
     tv_a,tv_b,tv_3.Pero dejémoslo así:tv_a,tv_bee,tv_300000

Dada la URL, busquemos tv_a:
     =ENCONTRAR("tv_a", URL, 1)=23=posición- busque la cadena tv_a en la URL comenzando en la posición del primer carácter de la cadena.

¿Cuál es la longitud de la variable tv_a?
      =LEN("tv_a")=4=longitud

Incluso elURLy elposicióndel primerovariabley ellongitudde la variable, busquemos la palabra después del signo '=":
      =MEDIO(URL, variable+longitud+1, longitud+1)=Hola

Puede encadenar toda la fórmula en una sola fórmula. Esa es una tarea trivial en Excel. La convención de nomenclatura en este ejemplo es:URL=A3,primero=B2,segundo=C2,tercero=D2. Esto es lo que parece: ingrese la descripción de la imagen aquí Las tres variables: wrt Imagen sobre el diseño
     1.°=MID(url,B3+LEN(primero)+1,C3-B3-LEN(primero)-2)=hola
     2.°=MID(url,C3+LEN(segundo)+1,D3- C3-LEN(segundo)-2)=allí
     3er=DERECHA(url,LEN(url)-FIND(tercero,url,D3)-LEN(tercero))=ahora

Un ejemplo de tarea trivial: usar celdas auxiliares

Sea B3=FIND(primero,url,1), C3=LEN(primero): preferido
1º=MID(url,B3+LEN(primero)+1,C3-B3-LEN(primero)-2)=hola
Por sustitución, puedes usar una sola línea en lugar de celdas auxiliares:
1º=MEDIO(url,FIND(primero,url,1)+LEN(primero)+1,FIND(segundo,url,1)-FIND(primero,url,1)-LEN(primero)-2)=hola

Descubrirá que para resolver problemas como estos es mejor utilizar métodos de resolución por partes para volver a los proyectos y utilizarlos más adelante en otras áreas similares; De esta manera podrás ver la resolución del problema más fácilmente porque es sencillo.

*Convenio de denominación:https://support.office.com/en-us/article/Define-and-use-names-in-formulas-4d0f13ac-53b7-422e-afd2-abd7ff379c64

información relacionada