Mostrando las entradas con la etiqueta Importar Datos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Importar Datos. Mostrar todas las entradas

martes, enero 28, 2014

Usos del Power Query - importar y transformar datos externos

En la nota anterior vimos cómo importar datos externos con el Power Query, más precisamente una listas de carpetas y archivos. De la misma manera podemos importar datos externos diversas fuentes como bases de datos, Web, archivos texto, archivos Excel, etc.
Power Query nos permite también transformar los datos originales antes de transferirlos a una hoja de Excel o al modelo de datos (tema que será tratado en otra nota).

Siguiendo con el ejemplo de la nota anterior la ventana del editor del Query se ve así

editor del Power Query



























La ventana del editor tiene una barra de fórmulas, un área de datos (filas y columnas) y dos barras a los costados ("Navigator" y "Steps").

Como podrán apreciar, en los encabezamientos de las columnas aparece un triángulo similar al que aparece cuando aplicamos Autofiltro a una tabla en la hoja de Excel. Estos triángulos tiene la misma función en la ventana de Query

Autofiltro en la ventana del query

Esto nos permite filtrar las filas de la misma manera como lo hacemos con las tablas en Excel. Por ejemplo, si queremos que la venta del query muestre sólo las filas con archivos de tipo ".png", filtramos de acuerdo a este criterio

query con autofiltro
Una vez aplicado el filtro podemos apretar el botón "Done" en la ventana del query y sólo las filas filtradas serán transferidas a la hoja de Excel

hoja Excel con datos del Query





















Si queremos cambiar el resultado de la consulta, abrimos el editor del query usando el comando Filter & Shape

Boton FIlter & Shape
Supongamos ahora que queremos transferir sólo los archivos de tipo ".png" creados en el 2014; todo los que hacemos es aplicar un nuevo autofiltro a la columna "Date Created"

Autofiltro de fechas en el query


Haciendo un clic con el botón derecho del mouse podemos ver las distintas posiblidades para cada una de las columnas.  Por ejemplo, un clic en el encabezado de la columna "Content" nos muestra

ventana del Power Query

Como ven podemos eliminar la columna (Remove) o eliminar todas las otras columnas (Remove other columns), duplicarla, cambiar el tipo de datos, buscar y reemplazar valores (Replace values),etc. Especialmente práctica es la función "Unpivot Columns" como ya hemos mostrado en esta nota.

Supongamos que queremos eliminar todas las columnas excepto "Name", "Extension" y "Date Created". Lo que hacemos es seleccionar estas columnas (clic sobre el encabezamiento manteniendo el botón Ctrl apretado) y activar la opción "Remove other columns"

Ventana del Power Query



















Ahora vamos a explorar las posibilidades de transformación de los datos de la columna "Date Created". Con un clic del botón derecho del mouse abrimos el menú contextual

ventana del Power Query





















Debido al tipo de datos de la columna, la función "Transform" nos muestra las distintas posibilidades de transformación: fecha (Date), hora (Time), día (Day), etc. Por ejemplo, si elegimos la opción "Date", las fechas aparecerán sin las horas.

Si expandimos la barra "Steps" a la derecha de la ventana del Query, podemos ver los pasos que hemos realizado

ventana del POwer Query



























Cuando apuntamos a una de las acciones aparece una X. Un clic sobre la X cancela la operación, como la acción "Deshacer" (undo, Ctrl Z) en Excel.

En la próxima nota veremos más usos de las posibilidades de transformación de datos con Power Query.

jueves, enero 23, 2014

Usos del Power Query - importar una lista de archivos a Excel

Las nuevas herramientas que Microsoft ha incorporado a Excel hace que las versiones anteriores a Excel 2010 parezcan prehistóricas. Me refiero a las herramientas de BI (Business Intelligence, Inteligencia de negocios), específicamente Power Pivot y Power Query.
A quien le interese el Power Pivot  (y a todo analista de datos le debe interesar) le recomiendo visitar el sitio de Miguel Escobar, Powered Solutions. Miguel ofrece cursos de Power Pivot y quien esté interesado puede acceder a la información con un clic en el banner que aparece en la columna derecha (aclaración: por cada inscripción al curso recibo una comisión)

En esta y otras futuras notas me ocuparé de usos prácticos del complemento Power Query. Algunos de mis memoriosos lectores recordará la nota sobre cómo importar una lista de archivos usando funciones XLM (las viejas macrofunciones de Excel 4). Una nota posterior trataba sobre como generar la lista usando Vba. Ambas técnicas tienen un cierto grado de complejidad y requieren cierto nivel de conocimientos en Excel.

El complemento Power Query simplifica la tarea, lo que mostraremos con este ejemplo (el menú del Power Query en mi máquina está en inglés por lo que me discuplo de antemano). Supongamos que quiero crear una lista con todos los archivos que aparecen en mi carpeta "Blog".


Como puede apreciarse, bajo la carpeta Blog hay otras y también archivos de diversos tipos.
Después de descaragar e instalar el complemento (Excel 2010 y 2013), veremos una nueva pestaña en la ventana de Excel: Power Query


En el grupo "Get External Data" (datos externos), elegimos la opción "From File - From Folder"; Excel abre una ventanilla donde seleccionamos la ubicación deseada


Al apretar OK dos veces, Excel transfiere los datos a la ventana del editor del Query (más  adelante transferiremos los datos a la hoja de Excel).


En esta ventana del editor podemos ordenar, seleccionar y transformar datos, agregar o eliminar columnas y muchas otras operaciones. Nótese además que el editor cuenta con una barra de fórmulas (pero de todo esto nos ocuparemos en otras notas).

Después de examinar los datos, todo los que nos queda por hacer es apretar "Done". Excel transfiere los datos del editor del Query a una hoja de Excel

















En esta nota tampoco nos ocuparemos de la ventanilla de las definiciones del Query (Query Setup) que aparece a la derecha de la hoja. Sencillamente la cerramos apretando el "x" en el icono "Show Query Settings" en la barra de opciones. ¡Listo! En la hoja de Excel tenemos una tabla con todos los datos de los archivos de la carpeta















En la próxima nota veremos, basados en este ejemplo, como podemos transformar los datos antes de transferirlos a Excel.

viernes, marzo 05, 2010

Consolidar datos de varios cuadernos Excel con MS Query

Ya hemos tratado anteriormente el tema de consolidación de datos de varios cuadernos u hojas Excel usando MS Query. Sin embargo el uso de esta herramienta presenta ciertos problemas y la ayuda en línea del MS Query es muy pobre.

En esta nota veremos cómo lograr esta consolidación para lo cual tendremos que editar y modificar la consulta SQL que genera el MS Query. Aclaremos que esta tarea es sencilla y no requiere conocimientos del lenguaje SQL.

En nuestro ejemplo suponemos que tenemos los datos de ventas de tres sucursales de una empresa en tres cuadernos distintos: ventasNorte.xls, ventasSur.xls y ventasOeste.xls. Las tablas de datos de cada cuaderno tienen la misma estructura, es decir, los mismos campos (columnas) en las mismas posiciones.

Empezamos por incluir cada tabla en un nombre. Por ejemplo, en ventasNorte.xls incluimos la tabla de datos en el nombre consNorte


También podemos crear el nombre usando el cuadro de nombres




El próximo paso es abrir un cuaderno en blanco donde consolidaremos los datos. En el nuevo cuaderno activamos la pestaña Datos y en Obtener Datos Externos usamos la opción Desde Microsoft Query




En Excel 2003 usamos




En Elegir origen de datos seleccionamos Excel Files




En el paso Select Workbook (seleccione cuaderno), seleccionamos uno de los cuaderno, por ejemplo, ventasNorte.xls




En el próximo paso seleccionamos el nombre del rango y pasamos todas las columnas a la consulta




Seguimos adelante en el proceso hasta llegar al último paso donde seleccionamos la opción Ver datos o modificar en Ms Query




Lo que veremos en la interfaz del MS Query que se abre es esto




Apretamos el botón SQL, lo que nos permite acceder a la sintaxis de la consulta.




En lugar de

SELECT rngNorte.Sucursal, rngNorte.Mes, rngNorte.Ventas, rngNorte.Clientes
FROM `D:\Ventas\ventasNorte`.rngNorte rngNorte

ponemos

SELECT * FROM `D:\Ventas\ventasNorte`.rngNorte
UNION ALL
SELECT * FROM `D:\Ventas\ventasSur`.rngSur
UNION ALL
SELECT * FROM `D:\Ventas\ventasOeste`.rngOeste




Al apretar Aceptar veremos




Apretamos Aceptar y todos los datos serán consolidados en la tabla del MS Query




En el menú del Query elegimos Archivo-Devolver los datos a Excel lo que abre el diálogo de Importar datos en Excel, donde podemos elegir la forma de ver los datos en Excel. Por lo general usaremos la opción Informe de tabla dinámica




En Excel 2003 la interfaz es algo distinta



viernes, febrero 12, 2010

Datos Externos en tablas dinámicas de Excel – ampliación

En la nota anterior sobre uso de archivos de texto como fuente para una tabla dinámica, vimos cómo agregar un origen de datos a la lista de las posibilidades del MS Query. Los archivos de textos usan distintos elementos para separar los campos como comas (archivos .cvs), espacios o tabs. Pero también puede darse el caso que se use un separador no convencional como el pipe (|).

En esos casos tendremos que agregar algunos pasos a nuestra solución, lo que mostraremos en esta nota.

Supongamos que queremos analizar los datos de este archivo de texto con una tabla dinámica



Como puede observarse los campos están separados por el carácter "|" (pipe).

Empezamos el proceso tal como lo mostramos en la nota anterior hasta llegar a la etapa "Crear nuevo origen de datos"





Como en el caso anterior elegimos un controlador adecuado para el tipo de datos (texto)



Apretamos el botón Conectar lo que abre el diálogo "ODBC Text Setup"



En esta etapa apretamos el botón Options lo que abre una nueva zona en el formulario



Apretamos el botón Define Format para definir las definiciones del nuevo tipo de archivo. En la parte izquierda del formulario señalamos el archivo que queremos usar (el que sirve de modelo para el nuevo origen), si tiene encabezados y los más importante, cuál es el separador (delimiter)


Luego apretamos el botón Guess lo que nos permite ver las columnas, cambiar el tipo de datos y el nombre del campo



Apretamos OK y en el formulario de Crear nuevo origen de datos apretamos Aceptar.

Esto nos lleva nuevamente al formulario Elegir origen de datos




Al aceptar el nuevo origen volvemos al diálogo del asistente para consultas. También podemos interrumpir el proceso y usar el nuevo origen más adelante.

martes, febrero 09, 2010

Tablas dinámicas en Excel con archivos de texto externos

En las primeras etapas de este blog escribí una serie de notas sobre tablas dinámicas en Excel. Uno de los temas que pasé por alto es el del uso de fuentes de datos externas para construir tablas dinámicas.

La importancia del tema es evidente. Una hoja en Excel Clásico puede contener hasta 65536 filas, lo cual puede ser una limitación crítica si tenemos que analizar grandes cantidades de datos. Si bien Excel 2007 y 2010 han extendido este límite más allá del millón de filas, no creo que un cuaderno con semejante cantidad de datos sea una alternativa razonable.

Excel viene provisto con un mecanismo que le permite conectarse con fuentes de datos externas. Hemos visto este mecanismo en acción en algunas de las notas sobre el uso de MS Query y la importación de datos externos a hojas de Excel.

En esta nota mostraremos como crear una tabla dinámica a partir de datos remotos, es decir, que no se encuentran en el cuaderno que contiene la tabla dinámica.

Estos datos remotos pueden estar en archivos de distinto tipo como Access (.mdb), Texto (.csv, .txt), Excel y otros. Si la fuente de datos aparece en la lista de Excel, el proceso es sencillo. Pero en ciertos casos la fuente no existe y debemos crearla.

En nuestro caso vamos suponer que tenemos los datos en un archivo de texto tipo .csv (comma separated values). En Excel Clásico empezamos el proceso abriendo un cuaderno Excel y usando el menú Datos-Informe de Tablas y Gráficos Dinámicos elegimos la opción Fuente de datos externa. Al apretar el botón Siguiente se abre el diálogo para ubicar la fuente de los datos



En nuestro caso podemos ver que el tipo de datos que queremos usar no figura en la lista. En este caso usamos la opción "Nuevo origen de datos"




En la ventanilla superior ponemos el nombre que queremos dar a la nueva fuente (archivoTXT o cualquier otro que crean conveniente), en la ventanilla 2 elegimos el controlador (driver) indicado para el tipo de datos y finalmente apretamos el botón Conectar.

En el nuevo formulario que se abre ubicamos el archivo que queremos que sirva de base a nuestra tabla dinámica



Si el directorio no coincide con el que aparece en el formulario, quitamos la señal de la casilla "Use current directory" para poder elegir la ubicación indicada.

Finalmente apretamos OK y Aceptar. Con este hemos creado una nueva fuente de datos



El próximo paso es elegir el archivo que contiene los datos



Y seguimos apretando Aceptar hasta llegar a la etapa final



Aquí señalamos la opción "Devolver datos a Microsoft Excel" y Aceptar, lo que no lleva de regreso al asistente de tablas dinámicas (por si no se dieron cuenta, hasta ahora hemos trabajado en el MS Query)



El próximo paso nos lleva al conocido formulario de ubicación de la tabla dinámica en la hoja



Al apretar Aceptar se creará la tabla dinámica



En Excel 2007 hay algunas diferencias, por lo que mostraremos dos caminos. Excel 2007 nos permite usar la interfaz de tablas dinámicas de Excel Clásico usando el atajo de teclado Alt+T+B



A partir de aquí procedemos como mostramos más arriba.

Otra alternativa es comenzar el proceso en la pestaña Datos – Obtener datos externos-de otras fuentes-MS Query



Esto abre el diálogo del MS Query para elegir el origen de datos, tal como sucede con Excel Clásico.