Excel - Extraer partes de un texto complejo

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Extraer partes de un texto complejo

Publicado por Jeffry (4 intervenciones) el 09/12/2016 05:09:31
Hola, saludos a todos, :)
Soy nuevo en el foro, agradezco cualquier corrección a mi duda.

La situación es que necesito extraer varias partes de un solo texto, en celdas distintas. La extracción comprende solo números, sin embargo, no es tan sencillo como extraerlos todos, ya que son cifras o cantidades, por lo cual, no deben confundirse los números. Y ademas, cada cifra o varias de ellas tiene su categoría. Entonces supongamos lo siguiente:

Tengo esta observación en A1:
"Las ventas # 20, 22 y 30 no se consideran ya que el valor es extremo en relación a las demás. Adicionalmente generan altas diferencias. La venta # 203 corresponde a un descuento semanal. Las ventas # 205 y 206 son ofertas de internet. Las ventas # 5 y 6 corresponden a clientes vecinos. Las ventas # 7, 510, 215, 289 y 45 no se consideran dado que no se concluyó información. Se obtiene un porcentaje de 75% para el mes de diciembre."

De la observación anterior quiero extraer los números que se indican en cada una de las oraciones, pero por separado. Es decir, si leen la observación, verán que las ventas # 20, 22 y 30 son de valor extremo, la venta # 203 es un descuento, las ventas # 205 y 206 son ofertas, y así con las demás. Entonces la idea es separarlas en columnas distintas, -------valor extremo----descuentos----internet--- ofertas internet---- clientes vecinos--- sin info---- y así podría hacer un control y estadística mas efectivo ya que podría extraer esos datos.

He intentado muchas alternativas, utilizando palabras clave como "internet, descuento, ventas #, clientes, etc", para extraer solo lo que necesito, pero no doy con el algoritmo correcto. Quisiera resolverlo con formulas, ya que no manejo mucho de macros. Sin embargo, si la solución solo implica usar macros, pues igualmente es bienvenido.


Adjunto ejemplo en excel. Y muchísimas gracias, a todos los que me puedan colaborar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 3.758
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Extraer partes de un texto complejo

Publicado por Antoni Masana (1218 intervenciones) el 09/12/2016 07:25:10
Con una sencilla operación he creado esta estructura para ver mejor los datos, es decir linea por frase.

1
2
3
4
5
6
7
C2	Las ventas # 20, 22 y 30 no se consideran ya que el valor es extremo en relación a las demás
	Adicionalmente generan altas diferencias
D2	La venta # 203 corresponde a un descuento semanal
G2	Las ventas # 205 y 206 son ofertas de internet
E2	Las ventas # 5 y 6 corresponden a clientes vecinos
F2	Las ventas # 7, 510, 215, 289 y 45 no se consideran dado que no se concluyó información
	Se obtiene un porcentaje de 75% para el mes de diciembre

En el recuadro superior indico cada frase a que celda corresponde.
He remarcado las partes de interés en las frases.

Ahora la gran pregunta:
¿Este texto mantiene siempre la misma estructura o puede variar?

Se puede hacer una macro que tome el texto, lo analice frase a frase y busque las partes marcadas.
- Definimos valor a extraer todo lo que hay entre el primera y la última cifra numérica de la frase.
- Define destino la palabra clave (en este caso las marcadas)

1
2
3
4
Las ventas # 7, 510, 215, 289 y 45 no se consideran dado que no se concluyó información
             ^                   ^
             |                    +-- Ultima cifra numérica
             +----------------------- Primera cifra  numérica

Otras preguntas:

¿De donde sale este texto?
¿Como lo exportas el Excel?
¿Es posible extraer la información de otra forma?

Seria interesante tener un poco más de información sobre el origen de esta "FRASE" su estructura y posibles diferencias y frecuencia de recepción y ...

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Extraer partes de un texto complejo

Publicado por jeffry (4 intervenciones) el 09/12/2016 15:00:40
Hola Antoni, gracias por contestar, claro esas preguntas son importantes, mira

¿De donde sale este texto? y ¿Como lo exportas el Excel?
r/ El texto es exportado por una aplicación, por lo que siempre mantiene la misma estructura en cuanto a las frases utilizadas, podría variar el orden en que se mencionan, osea, primero ventas de internet, luego sin informacion, descuentos, y otro orden, y otra variacion es que digamos algunas de las categorías no aparezca en el texto, digamos que solo hubo ventas de internet y descuentos, pero pienso que eso no sería problema, digamos que si no hay alguna, solo saldría error y entonces yo lo descartaría . Estas observaciones se pueden exportar diariamente o semanal, etc... Por lo que puedo tener 10, 30 o mas observaciones.

¿Es posible extraer la información de otra forma?
Aqui no entiendo muy bien la pregunta, es decir, mi idea es utilizar las palabras clave, por que son las que se repiten pero en realidad, no se me ocurre otra forma mas sencilla.

Por ultimo, digamos que a futuro quizás las palabras clave puedan cambiar, pero pienso que teniendo una función hecha, ya luego se puede personalizar si surgen esos cambios. Nuevamente muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Extraer partes de un texto complejo

Publicado por JuanC juanc2942@gmail.com (1233 intervenciones) el 09/12/2016 11:11:01
ahí te va una forma sencilla de hacerlo (no está optimizado, pero debería andar bien igualmente)

https://www.sendspace.com/file/i9m37u
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Extraer partes de un texto complejo

Publicado por jeffry (4 intervenciones) el 09/12/2016 15:11:27
Hola Juan, déjame darte las gracias, revisé la función y está genial, dices que es una forma sencilla jaja, sin embargo, yo me partí la cabeza y no le llegué, me falta mucho aún. La seguiré probando por el día de hoy, pero creo que no habrá ningún problema.
Gracias master!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Nolberto
Val: 213
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Extraer partes de un texto complejo

Publicado por Nolberto (93 intervenciones) el 15/12/2016 21:05:29
Saludos Jeffry.

Sin duda alguna, la solución de Juan es contundente, ademas de elegante.

A manera de curiosidad ( aunque puede llegar a ser muy útil ) propongo una solución con formulas.

Para el grupo de datos 1:
1
=EXTRAE($E$1,HALLAR("ventas # ",$E$1,1)+9,HALLAR(" no se consideran",$E$1,1)-HALLAR("ventas # ",$E$1,1)-9)

Para el grupo de datos 2:
1
=EXTRAE($E$1,HALLAR("diferencias. La venta # ",$E$1,1)+24,HALLAR(" corresponde a un descuento",$E$1,1)-HALLAR("diferencias. La venta # ",$E$1,1)-24)

Para el grupo de datos 3:
1
=EXTRAE($E$1,HALLAR("semanal. Las ventas # ",$E$1,1)+22,HALLAR(" son ofertas de internet",$E$1,1)-HALLAR("semanal. Las ventas # ",$E$1,1)-22)

Para el grupo de datos 4:
1
=EXTRAE($E$1,HALLAR(" internet. Las ventas # ",$E$1,1)+24,HALLAR(" corresponden a clientes vecinos",$E$1,1)-HALLAR(" internet. Las ventas # ",$E$1,1)-24)

Para el grupo de datos 5:
1
=EXTRAE($E$1,HALLAR("vecinos. Las ventas # ",$E$1,1)+22,HALLAR(" no se consideran dado que no se concluyó información",$E$1,1)-HALLAR("vecinos. Las ventas # ",$E$1,1)-22)

Como se puede observar, lo que se hace es extraer el texto que se encuentra rodeado por ciertas cadenas de texto.

El gran problema para este caso es que si el texto que envuelve las cantidades cambia, la formula ya no funciona, por ejemplo, si solo es una venta, el texto seria "La venta", pero si son mas de una venta, este cambia a "Las ventas", esto se puede solucionar usando la función SI.ERROR, esto para usar una versión del texto o la otra cuando la función devuelve error, pero eso hace que la formula sea enorme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Extraer partes de un texto complejo

Publicado por Jeffry (4 intervenciones) el 16/12/2016 01:53:21
Hola Nolberto, gracias por tu aporte, algo así estuve tratando de hacer sin éxito, me ha servido de mucho tu ejemplo para encontrar lo que estaba haciendo mal, tienes razón con lo del texto, si algo cambia, ya no funciona, sin embargo, aunque la macro de JuanC ya me solucionó el problema, probaré con optimizar el algoritmo que has hecho, igual así aprendo mas . Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad