Consultar datos de un archivo de Excel a otro mediante Microsoft Query y ODBC

En un grupo de LinkedInd relacionado con temas de Excel al que pertenezco se hizo una cosulta con respecto a consultar información contenida en un archivo de Excel desde otro, pero sin la necesidad de abrir o hacer fórmulas con referencia a las celdas.

Para realizar dicha consulta deberemos realizarlo mediante Microsoft Query que usará un controlador ODBC que nos permita conectar con archivos de Excel.

Ver Video Consultar un archivo de Excel desde otro

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Cómo se hace

Nos dirigimos a la pestaña Datos. En la sección Obtener datos externos elegimos De otras fuentes y Desde Microsoft Query.

Nos arrojará un formulario para elegir el origen de datos. En el listado elegimos Excel files*.

Excel files

Ahora debemos elegir el archivo de Excel que deseamos consultar.

Elegir Excel

El origen de datos no contiene tablas visibles

Si es la primera vez que realizas esta consulta seguramente verás un mensaje que nos indica que el archivo no contiene tablas visibles. Esto se debe a que el controlador ODBC que usamos para conectar al archivo reconoce las hojas de Excel como tablas del sistema y no las muestra.

Elegimos Opciones en el formulario Asistente para consultas – Elegir columnas. Ahora elegiremos Tablas de sistema en el formulario Opciones de tabla.

Se nos mostrarán las hojas de nuestro archivo de Excel. Elegimos la tablas y columnas en las que queramos aplicar la consulta presionando el botón >. Y presionamos Siguiente.

Tablas y columnas

En el formulario Asistente para consultas – Filtrar datos asignamos las condiciones lógicas de nuestra consulta. Las columnas con filtros se mostrarán en negritas.

Condiciones

En el formulario Asistente para consultas – Criterio de ordenación elegimos si desemos un orden especial para las columnas,

Para terminar elegimos Devolver datos a Microsoft Excel en el formulario Asistente para consultas – Finalizar.

Opcionalmente podemos elegir ver la consulta en Microsoft Query si es que desemos aplicar condiciones lógicas más complejas.

MS Query

Al exportar nuestros datos a Excel tendremos nuestros datos vinculados. Comprobamos que nuestros datos están vinculados ya que se activa una pestaña llamada Herramientas de tabla y tenemos un botón Actualizar.

Datos vinculados

You may also like...

6 Responses

  1. Diëgo Andrés says:

    Hola, me gustaría saber si hay la posibilidad y de haber cómo, me ayudes con el siguiente tema:
    Hago el procedimiento que tu indicas, y todo funciona correctamente, esto cuando no necesitas mover el archivo.¿Cómo seria el procedimiento cuando quiero mover el archivo de una carpeta a otra sin tener que modificar la cadena de conexión? es decir, que la conexión sea dinámica. Esto mas cuando haces una consulta sql a un mismo archivo Excel.

  2. Munsen Tidoco says:

    Hola. Tengo varias consultas así, pero hechas por macro con rutas tipo “ThisWorkbook.path & DATOS.xlsx” El problema es que uso parámetros en las consultas “[varFecha]” que apuntan a celdas. Para hacer más dinámicas las consultas.

    Mi pregunta es; Como puedo pasar la dirección de la celda al parámetro? Junto con las opciones de “Usar siempre”, y “Actualizar cuando cambie”?

    Algo así como:

    ConsultaObjeto(…. _
    WHERE (`CLIENTES$`.ACTIVO=1) AND (`CLIENTES$`.FECHA=?) _
    )
    .FillAdjacentFormulas = False
    .Parametro1 = “=DIRECTORIO!C2”
    .PreguntarCadaVez = False
    .ActualizarAlCabio = True

  3. Enrique says:

    En un fichero Excel (Trabajo) importo datos de otro fichero Excel (Base de datos) mediante Microsoft Query. Hace varios accesos actualizando varias tablas. Al abrir el fichero se actualizan automáticamente. Este fichero de trabajo está instalado en varios PCs con diferentes nombres, en un entorno de red local, y con un servidor que tiene la base de datos a la que acceden todos ellos. Normalmente funciona bien, pero si en un momento dado varios ficheros se abren de forma más o menos simultánea, uno de los PCs abre la base de datos y la deja abierta, por lo que el resto de ficheros no pueden actualizar sus tablas. (no siempre es el mismo PC, es aleatorio) ¿Cómo puedo evitar que se quede abierta la base de datos al acceder con varios ficheros simultáneamente?
    He puesto una macro que me detecta si la base de datos está abierta para que avise, y no salgan errores, pero esto no soluciona el problema, sólo avisa.
    Gracias!!

  1. March 5, 2013

    […] Consultar datos de un archivo de Excel a otro mediante Microsoft Query y ODBC […]

  2. March 21, 2014

    […] un artículo de este mismo Blog llamado Consultar datos de un archivo de Excel a otro mediante Microsoft Query y ODBC explicaba la manera de hacer consultas a un archivo de Excel desde otro sin involucrar ninguna […]

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: