Saltar al contenido

Separar datos con separadores de forma automática


Folleloide

Recommended Posts

publicado

Hola genios del excel! :)

Estoy por aquí de nuevo a ver si podéis echarme una mano. Sigo trabajando en el mismo proyecto en el que estaba trabajando en relación a este tema y prácticamente ya no me queda nada, pero tengo un problema que no doy solucionado. 

https://ayudaexcel.com/foro/topic/41871-extraer-una-palabra-entre-varios-caracteres/

El caso: Yo recibo un documento con todos los datos en bruto y a partir de esa línea de datos los separo en excel para aplicar el análisis de los mismos y las macros correspondientes (En las que me habéis sido de gran ayuda)

Para que entendáis mejor a que me refiero, lo explico un poco mejor; Estos datos en bruto vienen en un archivo de excel. Hasta ahora, para descomponerlos y separarlos estaba importando desde otro archivo de excel estos datos y añadiendo la configuración correspondiente para que las líneas sean sólo 2 columnas. 

Con este proceso: Datos -> Desde texto/CSV -> Origen del archivo: Europeo/ Delimitador: Coma / Detección del tipo de datos -> Basado en todo el conjunto.

338831587_importacindedatosexcelbuena.thumb.jpg.6c58d82e4367509a43484f7a63efcf86.jpg

Después de esto, descompongo toda la línea en los datos que necesito; Hora, fecha, url, etc. (En la columna message)

Si no lo hago de esta forma y parto directamente del archivo en bruto, la línea se me descompone totalmente.

En algunas está completa en 1 sola columna y en otras se descompone en varias columnas. (De esta forma se me complica mucho descomponer en columnas con separadores todos los datos, ya que no tienen la misma estructura de columnas)

Aquí viene la duda y el problema que me surge en estos momentos. Si importo los datos como explico más arriba, podría crear una macro que haga esta separación? Con el objetivo de automatizar todo y que sólo sea necesario importar estos datos a un archivo y copiarlos al excel correspondiente con esta automatización que comento.

El problema que veo principalmente es crear la macro que genere esa separación. No se si es posible

Para que veáis a que datos me refiero os dejo un ejemplo de donde tendría que partir la macro o el proceso de separación:

1º Columna: Timestamp (Esta columna es irrelevante y por tanto podría borrarla)
2ª Columna: mensaje (Esta es la columna que contiene los datos que necesito separar)

Añado un ejemplo de los datos

159.57.406.205 - - [05/May/2019:11:36:09 +0200] "GET /mi-url/ HTTP/1.1" 200 23738 "https://midominio.com" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"

Los datos que necesito por columna serían los siguientes:

Ip = 159.57.406.205
Fecha = 05/May/2019
Hora = 11:36:09
Código = +0200
Método = GET
url destino = /mi-url/
Protocolo: HTTP/1.1
Código resp: 200
Tamaño = 23738
url origen = https://midominio.com (En este caso varía y puede salir una url o el símbolo "-")
Agent = Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

Espero que se entienda y que me haya explicado con claridad. Si necesitais más ejemplos, no tengo problema en añadirlos.¡¡Espero que podáis ayudarme a encontrar una solución!! :)

Si puedo crear algo que me separe los datos automaticamente en el momento de meterlos en el archivo "plantilla" de excel -> Donde van las macros, etc. Podría conseguir lo que busco = automatizar todo el proceso

Saludos a todos y mil gracias!!!
 

publicado

Como no puedo editar el primer mensaje, añado aquí el archivo que tendría en primer momento después de importar desde texto/csv

Como véis, tengo dos columnas y la columna B es la que necesito separar. Lo ideal sería que la separación la hiciese en otra hoja para tener la hoja 1 como maestra (donde meter los datos cada vez que se descargan) y que los pinte en la hoja 2.

He intentado hacerlo con fórmulas pero no logro llegar a un resultado correcto.

Adjunto el archivo -> separador de datos.xlsx

publicado

 

Hola de nuevo! 

Nadie sabe como puedo hacer para separar lo que pongo en el primer comentario?

O al menos decirme si es viable hacerlo a través de una macro! Sorry pero desconozco como proceder con la macro a este nivel. Sería de gran ayuda!

Gracias a todos de nuevo!

publicado

Hola, 

Por el momento me estoy dedicándome a otras cosas y si de repente veo lo que hay en el foro, pero no te puedo ayudar, Aunque es fácil de hacer. Pero mensajes en PRIVADO NO AYUDO.

Y es lo malo de no ser claro desde el inicio y yo casi nunca respondo dos veces el mismo Post si no son claros.

Saludos

publicado
Hace 10 minutos , Leopoldo Blancas dijo:

Hola, 

Por el momento me estoy dedicándome a otras cosas y si de repente veo lo que hay en el foro, pero no te puedo ayudar, Aunque es fácil de hacer. Pero mensajes en PRIVADO NO AYUDO.

Y es lo malo de no ser claro desde el inicio y yo casi nunca respondo dos veces el mismo Post si no son claros.

Saludos y espera ayuda del foro.

Hola Leopoldo.

No entiendo lo de "no ser claro desde el principio". En todo momento he sido claro, de echo en el primer comentario he puesto ejemplos y de todo para ser lo más claro posible. No entiendo a que te refieres con eso. Siento haberte molestado, no era mi intención. 

Saludos

publicado

Al decir no son claros me refiero a que en un primer post se te resolvio y se cerro el tema.

 

Y ahora presentas una Cadena o String mas larga... que no logras adaptar con la ayuda que ya se te dio.

Saludos

publicado
Hace 25 minutos , Leopoldo Blancas dijo:

Al decir no son claros me refiero a que en un primer post se te resolvio y se cerro el tema.

 

Y ahora presentas una Cadena o String mas larga... que no logras adaptar con la ayuda que ya se te dio.

Saludos.

P.D.: Espera ayuda del foro. En verdad ando ocupado en otras cosas.

 

 

He intentado adaptar la macro anterior al nuevo ejemplo, pero sólo logro representar los datos en una de las celdas, cuando ahora busco que esos datos se representen separados en dicersas celdas para posteriormente aplicar un análisis.

Perdona mi desconocimiento, seguiré trabajando para llegar al resultado correcto. Si alguién se anima a aportar alguna idea será bienvenida.

De nuevo gracias por la ayuda Leopoldo y siento haberte ofendido. 

Saludos

publicado
Hace 18 horas, Gerson Pineda dijo:

Hola 

Te adjunto archivo con 2 métodos

Antes de preguntar, revisa y evalúa cada método, como además lee/estudia sobre cada instrucción utilizada en Vba, si aun si tienes dudas, pues no avisas, que con gusto te vamos a colaborar

 

Saludos 

Separar datos en columnas Vba_GP.zip 16 kB · 4 downloads

Muchas gracias @Gerson Pineda. Estoy revisando cada línea de la macro para saber como lo has hecho. Cualquier duda os preguntaré seguro ? 

Se agradecen vuestros aportes!!

Saludos!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.