Como extraigo datos no en columnas de un txt y los llevo a Excel

Tengo un soft que entrega un reporte en txt que debido a su longitud (varios miles de lineas), un análisis de esos datos es muy dificil.

Para colmo, el formato es bastante complicado. Ejemplo

Usuario: PEPE - 000001 000001000011
-------------------------------------------------------------------
    ENS: 0 - Valorar: 0
    INT: 0 - Tiempos: 0
Usuario: JUAN 000004000014
-------------------------------------------------------------------
    Inicio: 19/03/1976 04:28:00    Fin: 19/03/1976 04:55:00    Tiempo: 27    Suministro: 40936
    Estado: K3RE Lugar de Barrido: B C.I.Op: 44929
    ENS Fr: 0 - ENS Ti: 0
    Valor Fr: 0 - Valor Ti: 0
    Inicio: 20/03/1976 17:44:00    Fin: 20/03/1976 17:55:00    Tiempo: 11    Suministro: 40936
    Estado: K3RE Lugar de Barrido: B C.I.Op: 44961
    ENS Fr: 0 - ENS Ti: 0
    Valor Fr: 0 - Valor Ti: 0
    ENS: 3.9118333333 - Valorar: 0.3041048516
    INT: 8 - Tiempos: 527

Y debo pasarlo a una tabla de excel con multiples columnas que quedaría algo así

Usuario |Nro |Inicio |Fin |Tiempo |Suministro |Estado |Lugar de Barrido|C.I.Op |ENS Fr|ENS Ti|ENS|Valorar |INT |Tiempos

Como verán es bastante complicado pues hay datos que se repiten en todas las columnas y solo aparecen al principio y final de cada usuario y en otros casos directamente ni están porque ese usuario no los tiene.

Intenté hacer una macro pero los resultados fueron muy malos.

Si hay algún experto que se le ocurra algo será muy bien recibido.

Muchas gracias

Víctor

Archivos ejemplo

1 respuesta

Respuesta
1

Por lo que dices, se puede hacer, pero con un código VBA a propósito para el caso.

No es difícil, pero hay que hacerlo y probarlo.

Yo te lo podría hacer pero para conseguir resultados en Access.

Puedo probar a ver que pasa al hacerlo en excel. No creo que haya demasiada diferencia.

El resultado en Access o Excel es indistinto pues puedo luego exportar los datos a Excel y listo. VBA es un "misterio" para mí pero puedo aprender

Ok

Intentaré echarle un ojo este fin de semana, no tiene pinta de ser demasiado complicado. El único problema es que se requiere trabajar mucho con cadenas, pero no parece mucho más complicado que lo he hecho hasta la fecha.

Te digo algo, a ver si esta noche puedo mirarlo, me pica la curiosidad.

A ver si las podemos aclarar. Todo esto es a partir del archivo que has colgado.

Me da la impresión de que entre usuario y usuario hay un resumen. Tomo como ejemplo los datos del usuario Juan. Los datos de Tiempo, ¿acaban sumandose en Tiempos?.

Si es así, parece que lo que se tiene que rellenar no es una tabla sino dos.

¿Tienes información acerca del sistema de destino, es decir, acerca del uso que vas a dar a la información una vez importada?

Y otra cuestión, ¿hay algún problema si se importa la información de fecha y hora en dos campos, uno para fecha y otro para hora?

Hola Juan,

Es como lo decís, los datos de Tiempos surge de la suma de todos los "Tiempo" del usuario. A su vez ENS y Valorar surgen de la suma de otros valores que no tuve en cuenta para el ejemplo.

Si se pudieran poner en una única tabla sería más útil porque de esa forma se puede saber que usuarios tienen más tiempos sumados y así mirar cada evento.

El análisis posterior lo haré con una planilla de cálculo buscando el ranking de los que tienen más ENS y como se compone esta, más Valorar, más INT y más Tiempos.

No habría ningún problema si importáramos los campos de fecha y hora en columnas diferentes.

Muchas gracias

Víctor

De todos modos ten en cuenta que, si para el usuario Juan hay, creo que 7 entradas y cada una de ellas lleva una cantidad de Tiempo, no sabremos el total de tiempos hasta haber leído las 7 entradas. Se me ocurre que si es un dato crítico, se puede ir acumulando mientras se va leyendo y ponerse el mismo valor para todas las entradas una vez acabado.

Te lo digo porque, como tienes intención de pasarlo a Excel, igual no te vale la pena guardar el total en la importación y sumarlo después.

Hay que pensarlo antes, porque aunque después se puede corregir el código, puede llevar tiempo, es un código implementado aposta para tu necesidad.

Estimado Tomás,

Primero las disculpas por haberte "bautizado" en la respuesta anterior.

El software que saca el archivo txt ya ha sumado los Tiempo, las ENS y los Valor. Yo esperaba llenar la tabla con los resultados que hacen el resumen de cada usuario en su respectiva columna, aunque se repita.

Como no se como es la "cocina" del código, ignoro si esto lo complica o simplifica.

Muchas gracias

Víctor

No te preocupes, no eres el primero que me bautiza :-)

Ni se complica ni se simplifica. Lo que sí está claro es que si el resultado tuviera que funcionar con una BD te sugeriría hacerlo de forma diferente, una tabla para usuarios y otra para entradas, y los totales se sacarían por consultas y fórmulas en las consultas.

De todos modos, entiendo que no es de lo que se trata, sino de tener la información en una hoja de cálculo, así que vamos a ver si sigo con el programa de importación.

Intentaré avanzarlo a lo largo de la semana, a ver si de cara a finales de esta o principios de la que viene puedo pasarte algo decente.

¡Gracias!

Hace mese que veo los datos intuitivamente a "pedal" por lo que el tiempo que necesites no está entre los inconvenientes.

Perdona por no haber contactado antes, no he tenido apenas tiempo. Sigo con lo tuyo, pero tengo algunas preguntas.

En el ejemplo que me pasaste:

- Si de un usuario no hay datos, por ejemplo el usuario PEPE, ¿se obvian los datos o hay que entrarlo igualmente?

- ¿La separación entre usuarios es una línea de guiones?

- ¿Por qué el usuario PEPE tiene dos líneas de guiones y el usuario JUAN tiene solo una?

Igual te parecen preguntas tontas, pero es para enfocar el programa mejor.

Estimado,

Si PEPE no tiene datos, se pueden obviar o inluirlos como "0". Lo que sea más fácil pues luego se descartan de por si en el análisis.

La separación entre usuarios es la línea de guiones. PEPE tiene dos porque es el primero. Puedo borrarla con el Notepad antes de procesar el archivo si así es más fácil.

Muchas gracias

Lo tengo casi listo. En pocos días te podré pasar el programa de importación.

Perdona que me comunique tan de tarde en tarde pero es lo que tiene hacer estas cosas con nocturnidad y demás.

¿Sería posible que me pasaras un archivo con más datos?

No estoy seguro de los resultados que estoy obteniendo y quiero ampliar los resultados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas