miércoles, marzo 23, 2016

Consolidar archivos con Power Query - el caso ".tsv"

En la nota anterior mostramos como consolidar datos de varios archivos .csv (comma separated values) con Power Query. Estos son archivos de texto donde los campos están separados por comas o puntos y comas. Existen también archivos de texto .tsv donde, como en los archivos .csv, cada registro de la tabla es una línea del archivo de texto y cada campo de un registro se separa del siguiente por un carácter de tabulación - que es una forma del formato más general valores delimitador separados.

TSV es un formato de archivo simple ampliamente difundido que a menudo se utiliza para mover datos tabulares entre los diferentes programas informáticos que soportan este formato. Por ejemplo, un archivo de TSV puede ser utilizado para transferir información de un programa de base de datos para una hoja de cálculo. Y este es el caso de  un colega que después de haber leído mi post, vino a consultarme cómo hacer lo mismo con archivos .tsv.

La cuestión es que Power Query no cuenta con una función Tsv.Document para extraer datos de este tipo de archivos y la función Csv.Document, que mostramos en el post mencionado, si bien cuenta con un parámetro para indicar el separador a usar ([Delimiter]), pero todos mis intentos de indicar la tabulación como separador (#"tab", "#tab", #(Tab), etc.) terminaron en rotundos fracasos.

La solución fue importar los archivos al editor del Power Query, tal como hicimos con los archivos csv, agregar una única columna con los datos y luego separar esta columna con la funcionalidad Split Column del menú de Power Query.

Veamos el proceso. Después de seleccionar la carpeta que contiene los archivos a consolidar y abrirla en la ventana del Power Query (ver el proceso en el post anterior), agregamos la columa "Datos" creada con la fórmula =Csv.Document([Content])


Esta fórmula crea una columna que expandimos apretando la doble flecha en el encabezado

con este resultado


Eliminamos las columnas Content y Name con lo que nos queda una única columna con todos los datos. La funcionalidad Split Column by Delimiter si tiene el valor Tab como separador


con este resultado

Todo lo que nos queda por hacer es promover la primer fila a los encabezados



y transferir la tabla a una hoja de Excel o crear una conexión a la consulta


1 comentario:

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