viernes, febrero 03, 2006

Importar archivos TXT o CSV

El fin de semana se anuncia lluvioso. Así que trataré de aprovecharlo para ir completando el contenido de este blog con las notas publicadas en el blog en inglés.

Una tarea bastante corriente para muchos de los usuarios de Excel es importar archivos originados del sistema central a Excel. Por lo general los sistemas centrales (como los sistemas ERP) tienen la capacidad de transformar los informes que producen a archivos textuales (con terminación ".txt" o ".csv").
Abrir estos informes en hojas de Excel nos permite analizar los datos con mayor flexibilidad y también darles una presentación más elaborada.
Importar archivos de este tipo de Excel es sencillo. Para hacerlo existen dos métodos que a primera vista parecen idénticos, pero que tienen entre si diferencias importantes.

Los dos métodos son:

1 - Archivo ---> Abrir (de la misma manera que abrimos cualquier archivo .xls)
2 - Datos ---> Obtener Datos Externos ---> Importar datos




La diferencia entre ambos métodos es que cuando usamos Archivo ---> Abrir, Excel importa los datos a una nueva hoja. Cuando usamos Datos ---> Obtener Datos Externos, tenemos la posibilidad de ubicar los datos en cualquier lugar de una hoja existente o en una nueva hoja.

Supongamos que tenemos el siguiente archivo de tipo txt, con datos que queremos importar a Excel:



No importa que método usemos, Excel abre un diálogo



En el primer paso del diálogo le decimos a Excel como dividir los campos (columnas), en nuestro caso elegimos "ancho fijo"



En el segundo paso vemos como Excel propone dividir los campos. Si la división no es la deseada, podemos cambiarla



En el tercer, y último paso, podemos establecer el tipo de datos en el campo. En nuestro caso, cambiaremos el tipo de dato del campo "Fecha" de "general" a "fecha".
Pulsamos "Aceptar" y se abrirá un nuevo cuadernos ventas.txt.



En caso de usar el método Datos ---> Obtener Datos Externos ---> Importar datos, se abrirá el mismo diálogo. Al pulsar "aceptar" se abrirá un nuevo diálogo dónde podemos decidir la ubicación de los datos



Pero la ventaja, y la diferencia más importante con el primer método, es que Excel registra todos los parámetros de la importación. Esto significa que Excel mantiene una especie de conexión con el archivo original.
Para ver esto, podemos abrir el menú Datos---> Obtener datos externos


Si elegimos "propiedades" podemos controlar propiedades como la actualización de los datos. Por ejemplo que cada vez que abrimos el archivo, que hemos guardado como archivo xls, los datos se actualicen.



Si guardamos el archivo con la propiedad de actualización, al abrir nuevamente el archivo veremos este diálogo


De esta manera podemos asegurarnos datos actualizados permanentemente.





Si te gustó esta nota anotala en del.icio.us



Technorati Tags: , ,



Categorías: Manejo de Datos_

9 comentarios:

  1. Hola. No se si podrias resolverme una duda. Se pueden importar datos desde un directorio?? Lo que quiero hacer son unas tablas con los directorios de mis DVDs de musica. Si no es mucha molestia, avisame de la respuesta a mi mail: daniel_garcia_50@hotmail.com. Gracias de antemano

    ResponderBorrar
  2. Gracias por este gran aporte.

    Sobre "Importar datos de la Web a Excel"

    Tengo algunas dudas,

    1- es posible importar datos de una web que tiene acceso con usuario y clave? existe la forma de configurar estos valores?

    2- al importar los datos de una tabla me sucede que los valores de la web tienen formato americano con "," para los millares y "." para los decimales. Esto hace que todo me quede multiplicado por 10.000, ya que tienen 4 decimales.
    Tambien los valores en 0 los toma como texto.

    ResponderBorrar
  3. Hola Trenkos,
    si todo te aparece multipplicado por 10000, podrías utilizar Pegado Especial--Valores--Dividir para convertirlos en números.
    Si esto no funciona, podrías usar esta fórmula en una columna auxiliar

    =VALOR(SUSTITUIR(IZQUIERDA(A2;ENCONTRAR(".";A2)-1);",";"")&","&DERECHA(A2;LARGO(A2)-ENCONTRAR(".";A2)))

    y luego copiar los resultados con Pegado Especial--Valores.

    Supongo que habrá otras soluciones, pero ahora estamos ocupados en preparar la fiesta de año nuevo
    ;)

    Felicidades

    ResponderBorrar
  4. Acabo de darme cuenta que hay otra forma de solucionar el problema del amigo Trenko (definición de separador de decimales y de miles).
    EN el menú Herramientas abrimos Opcines. En la pestaña Internacional quitamos la marca de la opción "Usar separadores del sistema"; en separador decimal ponemos "," y en separdor de miles ponemos "." (sin las comillas).
    Después de esto podemos importar los datos de la Web sin problemas.

    ResponderBorrar
  5. Estimado: tengo una base en excel que es exportada a access para almacenarla y realizar informes desde allí.

    Ahora quisiera saber cómo eliminar algunos de esos registros desde Excel. Por consulta? por macro? Tendré un campo identificatorio para encontrar el registro a eliminar.

    Muy agradecido. Luis

    ResponderBorrar
  6. Hola Luis

    se pueden controlar otros programas o aplicaciones desde Excel usando Visual Basic.
    Te sugiero que hagas alguna búsqueda en foros de Vba sobre el tema.

    ResponderBorrar
  7. hola

    tengo unas dudas, es posibles, sin realizar la importacion de la imformacion a excel desde un txt; es posible realizar calculos basados en los datos almacenados en dicho archivo. Esta viene presentada en columnas y filas

    1) 34 23 12
    2) 56 98 16
    3) 98 01 12
    .) .. .. .. y sucesivamente

    el problema es que la tarjeta de datos genera muchos puntos y se convierte muy pesado el excel al momento de tratarlos.

    muchas gracias

    ResponderBorrar
  8. Es posible. En breve publicaré una nota sobre el tema.

    ResponderBorrar
  9. Excelente informacion y de mucha ayuda para encontrar esa opcion que olvidaba! gracias!

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.