Dejar solo referencias

Hola!

Tengo muchas celdas de este tipo:

[{“ref”:“5CG2583T1100\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCILINDRO MAESTRO COMPLETO”},{“ref”:“59XW00410000\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tJUEGO DE CILINDRO MAESTRO”},{“ref”:“55U258540000\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDIAFRAGMA TANQUE RESERVA”},{“ref”:“2KF258520100\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTAPA DE TANQUE DE RESERVA”},{“ref”:“987060401200\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTORNILLO”},{“ref”:“56A258670000\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSOPORTE DE CILINDRO MAESTRO”},{“ref”:“3BN258720200\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMANGUERA DE FRENO 1”},{“ref”:“958070602200\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTUERCA DE REBORDE”},{“ref”:“904011015900\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPERNO DE UNION”},{“ref”:“902011011800\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tARANDELA PLANA”},{“ref”:“903872259100\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASQUILLO CON VALONA”}]

Me gustaría saber si hay alguna forma de poder dejarlo así:

5CG2583T1100,59XW00410000,55U258540000,2KF258520100,987060401200,56A258670000,3BN258720200,958070602200,904011015900,902011011800,903872259100

Hay alguna forma, o alguna expresión que deje intacto por ejemplo todo lo que hay entre

:" **** \

Es que ir una a una es un horror!

Gracias!

Te adjunto un archivo con la solución utilizando expresiones regulares.
A4 =EXP.REG(EXP.REG(A1;"(\[|\])";"";"g");"(\{“ref”:“(.*?)(\\t).*?\})";"$2";"g")
te lo devuelve como planteas, si a ese resultado le aplicas
=SUSTITUIR(A4;",";CARACTER(10))
te lo devuelve en forma de lista, que podrías separar en celdas utilizando Menú/Datos/Texto a columnas
ExtraerRefernciasEnListaTipoTexto.ods (17.9 KB)

Puedes buscar \{“ref”\:“(.*?)(\\t|\\n)+([\p{Alphabetic}]| )+”\}
y reemplazar con $1.
Probado con la versión 7.2.7.2.
Referencia: Regular Expressions - ICU Documentation

Muchas gracias a ambos!

Me ha funcionado, pero con el ejemplo que dí únicamente, por ejemplo al aplicarlo en uno de los muchos archivos que tengo, no me funciona.

La expresión

=EXP.REG(EXP.REG(A1;"([|])";"";“g”);"({“ref”:“(.?)(\t).?})";"$2";“g”)

Me funcionó perfecta en el ejemplo al probarlo yo, podrías hacerlo en uno de los archivos que tengo que cambiar, que ahí vienen unas pocas filas, así luego puedo verlo hacer copia y pega en el resto de archivos. Te lo agradecería muchísimo. (Lo adjunto)

moto.ods (54.9 KB)

Sobre la otra expresión

{“ref”:“(.*?)(\t|\n)+([\p{Alphabetic}]| )+”}

Tambien me ha funcionado, pero a lo mejor deja todas las referencias perfectas, pero una se matiene con lo de \t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTUERCA DE…

El problema es que cada fichero tienes un tipo de comillas distinto.

E2   =EXP.REG(EXP.REG(D2;"(\[|\])";"";"g");"(\{\""ref\"":\""(.*?)(\\t).*?\})";"$2";"g")

Muchísimas gracias mariosv y LeroyG !! Os lo agradezco muchísimo que me hayáis ayudado!

Se me ha caído un lagrimón de felicidad al ver que ha funcionado y no tengo que ir una por una! :smiley:

Hay algún manual de novatos para aprender hacer esas expresiones en español?

Lo dicho, muchiiiiiiismas gracias!

1 Like