lunes, junio 08, 2009

Transferir datos de Excel a Access – primera nota.

Después de escribir la nota sobre cómo consolidar datos de más de dos cuadernos con MS Query, decidí que había llegado el momento de mostrar cómo podemos transferir datos de una hoja de Excel a una tabla de Access. Usar Access es una solución práctica cuando nuestra tabla de datos supera el límite de Excel (para las versiones 97-2003) de 65536 filas.

En esta nota mostraremos que no hay motivo para sentirse inhibido de usar Access, también si no estamos del todo familiarizados con su uso.

Básicamente hay dos caminos posibles para transferir los datos: manualmente y programáticamente (Vba). Esta nota se ocupa de cómo transferir datos de Excel a Access manualmente. Para poder hacerlo necesitamos, obviamente, que Access esté instalado en nuestra máquina (o servidor).

Para nuestro ejemplo consideraremos un cuaderno Excel con dos hoja. La primera contiene ventas del mes de abril y la segunda del mes de mayo. Por motivos de claridad usamos pocos datos.



Transferir datos de Excel a Access

El primer paso es abrir Access y crear una base de datos en blanco

Transferir datos de Excel a Access

En nuestro ejemplo aceptamos el nombre propuesto por Access (bd1), pero podemos darle cualquier otro nombre, preferentemente más significativo.


Una vez creada la base de datos veremos esta pantalla

Transferir datos de Excel a Access

Seleccionamos con un clic Tablas en el área de Objetos y abrimos el menú contextual (clic con el botón derecho del mouse); aquí seleccionamos la opción Importar.

Transferir datos de Excel a Access

En el diálogo que se abre elegimos Excel en Tipo de Archivo y seleccionamos el cuaderno que contiene la hoja que queremos importar.

Transferir datos de Excel a Access

En nuestro ejemplo Excel detecta que hay dos hojas en el cuaderno. Elegimos “abril” y apretamos Siguiente

Transferir datos de Excel a Access

Ahora debemos definir si la primer fila es contiene títulos. En caso afirmativo los títulos son usados como nombres de los campos de la tabla.

Transferir datos de Excel a Access

En este paso debemos definir donde guardar los datos. En nuestro caso no hemos creado ninguna tabla así que la opción es “en una nueva tabla”.

El próximo paso nos permite definir distintas opciones para los campos. En nuestro ejemplo, sencillamente seguimos adelante apretando “Siguiente”.

Transferir datos de Excel a Access

Ahora podemos definir claves principales (índices) para la tabla. Para nuestro ejemplo este paso no es crítico, pero en general es recomendable dejar la opción por defecto de Access.

Transferir datos de Excel a Access

En el último paso podemos definir el nombre de la tabla. Por defecto, Access propone el nombre de la hoja. Por lo general, como en nuestro ejemplo debemos cambiar el nombre a algo más significativo, como Ventas.


El último paso es apretar Finalizar. Al cabo de unos instantes Access nos informa que el proceso ha terminado (o fracasado si es que hemos cometido algún error o los datos no son los adecuados). Access ha creado ahora la tabla Ventas

Transferir datos de Excel a Access

que contiene los datos de la hoja

Transferir datos de Excel a Access

Ahora repetimos el proceso pero elegimos la hoja “mayo”.

Transferir datos de Excel a Access

En el tercer paso elegimos la tabla Ventas

Transferir datos de Excel a Access

Finalmente apretamos Finalizar. Los nuevos datos han sido agregados a los existentes en la tabla

Transferir datos de Excel a Access

Para totalizar y analizar los datos de base de datos podemos usar tablas dinámicas con la opción Fuente de datos externa



Technorati Tags:

martes, junio 02, 2009

Consolidar datos de más de dos cuadernos Excel con MS Query

En el pasado hemos mostrado cómo consolidar datos de distintas hojas de un mismo cuaderno empleando el MS Query.

Un lector me comenta que cuando quiere consolidar datos de tres hojas de tres distintos cuadernos, MS Query no permite agregar la tercera tabla (la hoja del tercer cuaderno). Como sucede frecuentemente con esta aplicación, la ayuda no viene a nuestro rescate en este problema.

Veamos un ejemplo (en este caso estaremos usando Excel 2007, pero el mecanismo es el mismo en Excel 97-2003).

Empezamos por establecer el nexo a la fuente de datos, en este caso dos cuadernos Excel



consolidar datos con Excel

Seleccionamos uno de los cuadernos (MS Query no nos permite hacer selecciones múltiples)

consolidar datos con Excel

Incluimos todos los campos de la hoja y seguimos adelante con el asistente hasta el último paso, donde seleccionamos la opción “Ver datos o modificar consulta con MS Query”. Al finalizar el proceso se abre la ventana de MS Query con los datos que hemos extraído de la hoja del primer cuaderno.

consolidar datos con Excel

Ahora agregamos la hoja del segundo cuaderno con el menú Tabla-Agregar Tablas

consolidar datos con Excel

Aquí nos topamos con el primer problema: no podemos ver el nombre del archivo a elegir dado que no podemos extender el ancho de la ventanilla. Guiándonos por la ubicación relativa de los archivos en la carpeta, elegimos el último

consolidar datos con Excel

Ahora queremos agregar la tercer tabla, para lo cual volvemos sobre el proceso anterior

consolidar datos con Excel

MS Query no nos permite agregar la tabla bajo la advertencia “Imposible el acceso..”.
Lo que hacemos en este caso es crear primero una unión entre las dos tablas presentes antes de intentar agregar la tercera. En nuestro caso la unión será entre los campos “factura” de ambas tablas.

Ahora intentamos agregar la tercer tabla, “Clientes”.

consolidar datos con Excel


Del momento que existe por lo menos una unión entre las dos primeras tablas podemos agregar la tercera.


Si intentamos agregar una cuarta tabla, cuyo origen es una hoja de un cuarto cuaderno, nuevamente tendremos que crear una unión a la tercer tabla antes de poder agregar la cuarta.


Otro rodeo posible es mover las hojas de los distintos cuadernos a un único cuaderno y luego proceder como mostramos en la nota mencionada.




Technorati Tags:

sábado, mayo 30, 2009

Cambios en el diseño, consultas de lectores y encuestas.

Este mayo ha sido un mes intenso. Mis ocupaciones cotidianas apenas me han dejado algo de tiempo para este blog. Como habrán notado la cantidad de notas publicadas este mes es sensiblemente menor a lo habitual. También he respondido a muy pocas de las consultas que me llegan por mail.

En el escaso tiempo disponible he hecho un primer intento de cambiar el diseño del blog. La intención es hacerlo más claro y aprovechar mejor el ancho de pantalla (ya que la mayoría de mis lectores usan resolución de pantalla 1024X768). Espero recibir vuestros comentarios.

A la encuesta sobre el tipo de usuarios de Excel respondieron 359 lectores. La mayoría, el 42%, se considera “intermedio”, un cuarto se consideran “avanzados, lo mismo los “principiantes” y el restante 7% “súper avanzados”.






Si bien había propuesto algunos criterios generales para la evaluación, supongo que cada uno se califica de acuerdo a su propia percepción del nivel de conocimientos y destreza con Excel.
Hace 10 años atrás mi respuesta a la pregunta cuál es mi nivel de Excel hubiera sido “avanzado”. Desde la perspectiva de mi nivel actual la respuesta correcta tendría que haber sido “básico-intermedio”.



Este tema es a la vez interesante y complejo. Hace unos días me consultaban del departamento de Recursos Humanos qué preguntar para establecer el grado de conocimientos de Excel de los postulantes a un determinado puesto. Mi respuesta fue que esto dependía de la definición de las tareas que el postulante tendría que realizar. En la medida que el puesto no incluya desarrollo de aplicaciones con Excel, un conocimiento superficial de Vba sería suficiente. Pero si estamos buscando alguien para el departamento de control de gestión, un buen dominio de tablas dinámicas es esencial. Un buen dominio del tema de gráficos no me parece crítico, pero sí lo es el conocimiento de las funciones de búsqueda (BUSCARV, INDICE, COINCIDIR, etc).



Technorati Tags: