Categorías
Ofimática

La mejor forma de importar archivos CSV en Excel

Casi todas las aplicaciones del mundo (servicios web, programas de escritorio, contabilidad…) tienen alguna forma de exportar datos e información. Si no sabemos la forma correcta de trabajar con estos archivos podemos perder mucho tiempo en transformarlos y adaptarlos a nuestras necesidades así que vamos a ver la forma jugar con ellos y cómo importar archivos CSV en Excel.

En muchas ocasiones nos encontraremos con que el programa de turno puede exportar en un formato nativo de Excel pero en la mayoría de los casos la opción que tenemos disponible es CSV. Este formato de archivo en «texto plano» es excelente para poder trabajar con datos de forma ágil y flexible ya que, al igual que es el más extendido para exportar, también son muchos los programas que permiten importar este tipo de ficheros.

Importar CSV en Excel

Qué es un CSV y cómo diferenciarlo

CSV es el acrónimo de «comma-separated values«, o lo que es lo mismo, «valores separados por comas«. Los CSV, como se les llama normalmente, no son más que una serie de líneas escritas en un archivo que podemos abrir perfectamente con un programa de lectura de texto (el bloc de notas, por ejemplo). Como se puede intuir por su definición, en su forma más clásica cada línea contiene un conjunto de datos y cada dato lo separamos por una coma («,»). En el mundo real, este tipo de ficheros no siempre tienen que cumplir estas normas tan básicas, sin embargo siempre cumplen unas normas:

  • Si existe encabezado, debe ir en la primera línea. De esta forma podemos diferenciar si cada conjunto de datos tiene un nombre o una definición.
  • Cada línea representa un conjunto de datos. Sería lo equivalente en Excel a una línea.
  • Cada dato (o «campo», en Excel sería una celda) del conjunto está separado de su siguiente por un símbolo definido y siempre es el mismo. Aquí es donde el CSV pierde la esencia de su nombre ya que ese «separador» puede ser una coma («,») o cualquier otro símbolo. Los más usados son la coma («,»), el punto y coma («;») y la barra vertical («|»).

Dentro de estas normas básicas tenemos algunas excepciones o variaciones:

  • Si una línea no tiene todos sus campos puede omitir los separadores finales. Es decir, si tenemos 5 campos posibles (nombre, apellidos, edad, ciudad, provincia) y sólo disponemos de 3, lo normal sería que todas las líneas fuesen del estilo: Diego,Fraga,33,, (con dos separadores al final entendiendo que faltan 2 campos en blanco) pero podremos encontrarnos con líneas del estilo: Diego,Fraga,33 (sin espacios en blanco, ya que si faltan datos del final se omiten).
  • Cada dato puede venir limitado dentro de su propio campo. En muchas ocasiones podemos encontrarnos que el propio campo viene entre comillas. Por ejemplo, en lugar de juan,26,azul tendremos «juan»,»26″,»azul».
  • No todos los campos tienen por que tener ese limitador. En el ejemplo anterior podríamos encontrarnos con «juan»,26,»azul» o «juan»,26,azul.

Como casi siempre, todo se ve mejor con ejemplos así que os dejo unos cuantos con los mismos datos y diferentes representaciones:

De todas formas, aunque es muy importante tener claro este concepto, cualquier programa que pueda leer o importar archivos CSV sabrá lidiar con estas características (y alguna otra menos conocida) y, de no poder hacerlo en manual, no permitirá definir cómo tratar el formato que estamos importando.

Cómo importar datos de un CSV

Como comentaba antes, casi cualquier aplicación que necesite beber datos o que los use para algún tipo de cálculo os permitirá importar archivos CSV. Muchas lo harán de forma automática o nos permitirá definir la lógica para importar esos datos.

Si la importación es en automático, normalmente el CSV con el que alimentamos la aplicación tendrá que cumplir con unos estándares que el fabricante o programador nos indicará, en cuyo caso tendremos que ver la documentación para adaptar nuestro fichero a uno que entienda el programa. Esto suele darse en aplicaciones de propósito concreto (aplicaciones de contabilidad hechas a medida, desarrollos concretos…).

Excel (como OpenOffice Calc, SAP Business Intelligence…) nos permiten definir, una vez indicamos que archivo vamos a importar, la lógica con la que procesará los datos para incluirlos en nuestro libro. Para este ejemplo voy a usar un fichero de empleados. Os lo dejo a en una carpeta de github por si queréis usarlo para seguirme paso a paso:

https://github.com/dfragac/binarytopic_samples/blob/master/Employees.csv

Si tenemos instalado Excel, los archivos CSV se mostrarán con el siguiente icono:

Icono de archivos CSV en Excel

La forma incorrecta: Más trabajo y más errores

Lo que estamos acostumbrados a hacer, según mi experiencia, es abrir el fichero con Excel directamente. Esto procesará nuestro archivo y lo mostrará como si un formato de tabla se tratase de forma natural. Esto no siempre funciona correctamente pero lo habitual es que, una vez abierto, perdamos un tiempo en «ajustar» los datos a nuestro gusto.

 

Si hacemos doble click en nuestro archivo, se abrirá inmediatamente mostrando un montón de líneas todas juntas y sin separación (toda la línea acumulada en la columna «A»). Como podemos ver, Excel ya ha hecho un «pre-procesado» del archivo por su parte como le ha parecido (Ha eliminado algunas comillas, por ejemplo).

 

Apertura de archivo CSV con Excel

Con lo que ahora es cuando nuestro trabajo de fondo comienza:

  1. Seleccionamos la columna «A»
  2. Menú Datos > Texto en columnas
  3. Seleccionamos «Delimitados» > «Coma» > Finalizar

Con lo que tendremos algo parecido a un Excel nativo:

Ajustar CSV en Excel

Y digo «parecido» porque si nos fijamos… no está correcto el resultado (Celdas desplazadas, errores en el texto…):

Errores al procesar CSV en Excel

Y aquí es dónde empezamos a volvernos locos, a juntar celdas, a mover columnas… media hora para ajustar unos datos. Pero aún así, si consideramos que esto está bien y que es la mejor forma, si luego tenemos que hacer una gráfica y luego tenemos que añadir más datos, o actualizarlos con los de la última exportación CSV de nuestro control de facturación… un dolor de cabeza. ¿Habrá una forma más rápida y fiable verdad?

La forma correcta: Actualizaciones automáticas, gráficos y menos fallos

Excel permite, de forma nativa y sin plugins ni añadidos, importar archivos de fuentes de texto. Como hemos visto, los archivos CSV son fuentes de texto así que… vamos a tratarlos como tal. Para ello nos vamos al menú «datos» y seleccionamos del conjunto de opciones «Obtener datos externos» el botón «Desde texto»:

Obtener datos desde fuente de texto en Excel

Nos solicitará nuestro archivo CSV así que lo seleccionamos y aceptamos. Ahora es cuando definimos la lógica para que Excel trate nuestro archivo. Este es el paso más crítico ya que todavía no ha procesado el CSV y le vamos a decir cómo hacerlo, qué es lo que hay en cada columna y cómo va a tratarla. Si recordamos, en la versión «incorrecta» Excel ya cargaba el archivo y lo «pre-procesaba» con lo que ya nos había eliminado las comillas, espacios y otros elementos importantes. De esta forma esto no sucede.

En la primera de las opciones definimos qué tipo de datos tenemos, cómo están separados y qué codificación tienen. Además indicamos si tienen encabezados o no. Como hemos visto en la definición de los CSV, estos son parámetros normales de un archivo de estas características. En nuestro ejemplo vamos a seleccionar las siguientes opciones que se ven en la imagen (la codificación no es importante por ahora, si no os salen «símbolos extraños» podéis dejar la que viene por defecto):

Asistente de importado de archivos CSV en Excel, paso 1

Pulsamos siguiente y ahora es donde definimos cómo están separados nuestros datos y si tienen alguna de las características «extra» que vimos al principio del artículo sobre cómo se definen los CSV. En nuestro ejemplo marcamos como se muestra en la imagen:

Asistente de importado de archivos CSV en Excel, paso 2

Ya podemos ver en la vista previa que los datos van tomando forma, de forma consistente y cada cosa en su sitio. Ahora, en el siguiente paso, ya el último, seleccionaremos qué tipo de dato es cada uno para que, además, Excel nos pueda clasificar y transformar aquellos datos que sean útiles en algo que podamos usar para nuestros gráficos, sumas, estadística. Esto es muy importante, por ejemplo, en aquellos CSV en los que manejamos fechas, números, moneda (para que luego podamos trabajar con esos datos como lo que son y no como texto general). En esta sección también podemos omitir campos, en caso de que no los necesitemos. En nuestro ejemplo no tenemos datos de estas características así que podemos dejar los campos como salen:

Asistente de importado de archivos CSV en Excel, paso 2

Y finalizamos.

Importar datos en Excel, modelado

Ahora que ya tenemos la lógica creada y el archivo indicado podemos hacer dos cosas en el último asistente que nos muestra:

  • Hoja de cálculo existente/Hoja de cálculo nuevo: Si marcamos esta opción, el importado se hace automáticamente y se pega en el sitio donde hemos indicado, como si un «copiar > pegar» se tratase.
  • Modelo de datos: Si marcamos la opción «Agregar estos datos al Modelo de datos» podremos importar los datos en una tabla, gráfico… con lo que nos dará potencia para tratarlos posteriormente o analizarlos.

En este artículo vamos a usar la opción por defecto ya que la finalidad es que veáis cómo tratar un CSV de forma correcta pero en futuras entregas veremos qué ventajas tiene el importar datos a una tabla dinámica o a una tabla simple, sobre todo, para informes recurrentes, con datos que se actualizan a menudo… etc

Ahora sí tenemos un CSV bien importado, bien formateado y sin invertir demasiado tiempo:

CSV bien importado en Excel

Y por hoy ya está bien de datos y manuales. En un futuro podemos ver otras opciones automáticas para importar un CSV a Excel o incluso cómo jugar con los datos que importamos para generar estadísticas, tendencias… y sacar conclusiones. Cualquier duda o sugerencia… ¡dejad un comentario!