2012-05-04 16:20:11 +0000 2012-05-04 16:20:11 +0000
123
123

¿Cómo puedo unir dos hojas de trabajo en Excel como lo haría en SQL?

Tengo dos hojas de trabajo en dos archivos de Excel diferentes. Ambos contienen una lista de nombres, números de identificación y datos asociados. Una es una lista maestra que incluye campos demográficos generales, y la otra es una lista que sólo incluye nombre e id, y una dirección. Esta lista fue reducida de la lista maestra por otra oficina.

Quiero usar la segunda lista para filtrar la primera. Además, quiero que los resultados incluyan otros campos de la hoja maestra junto con los campos de dirección de la segunda hoja. Sé cómo podría hacer esto muy fácilmente con una unión interna de la base de datos, pero no tengo tan claro cómo hacerlo eficientemente en Excel. ¿Cómo se pueden unir dos hojas de trabajo en Excel? Puntos de bonificación por mostrar cómo hacer uniones externas también, y preferiría saber cómo hacer esto sin necesidad de una macro.

Respuestas (10)

158
158
158
2012-05-07 09:37:24 +0000

Para 2007+ usa Data > From Other Sources > From Microsoft Query:

  1. elige Excel File y selecciona tu primer excel
  2. elige las columnas (si no ves ninguna lista de columnas, asegúrate de marcar Options > System Tables)
  3. ve a Data > Connections > [elige la conexión que se acaba de crear] > Properties > Definition \N Command text

Ahora puedes editar este Command text como SQL. No estoy seguro de la sintaxis que soporta, pero he intentado uniones implícitas, “unión interna”, “unión izquierda” y uniones que funcionan. Aquí hay un ejemplo de consulta:

SELECT *
FROM `C:\Users\Peter\Documents\Excel-to-excel\Source_1.xlsx`.`Sheet1$` a
LEFT JOIN `C:\Users\Peter\Documents\Excel-to-excel\Source_2.xlsx`.`Sheet1$` b
ON a.col2 = b.col2
11
11
11
2013-12-09 18:20:43 +0000

Apoya la respuesta aceptada. Sólo quiero enfatizar en “elegir columnas (si no ves ninguna lista de columnas, asegúrate de marcar Opciones > Tablas del Sistema)”

Una vez que selecciones el archivo de Excel, muy probablemente verás el mensaje this data source contains no visible tables, y las pestañas y columnas disponibles no son ninguna. Microsoft admitió que es un error que las pestañas en los archivos excel son tratadas como “Tablas del Sistema”, y la opción de “Tablas del Sistema” no está seleccionada por defecto. Así que no te asustes en este paso, sólo tienes que hacer clic en “opción” y marcar “Tablas del Sistema”, entonces verás las columnas disponibles.

9
9
9
2012-05-04 16:22:05 +0000

VLOOKUP y HLOOKUP podrían utilizarse para buscar claves primarias coincidentes (almacenadas vertical u horizontalmente) y devolver valores de columnas/filas de “atributos”.

7
7
7
2017-05-17 14:09:42 +0000

Puede utilizar Microsoft Power Query, disponible para las nuevas versiones de Excel (similar a la respuesta aceptada, pero mucho más simple y fácil). Power Query llama a las “fusiones”.

La forma más fácil es tener sus 2 hojas de Excel como tablas de Excel. Luego, en Excel, vaya a la pestaña de la cinta de Power Query y haga clic en el botón ‘Desde Excel’. Una vez que haya importado ambas tablas a Power Query, seleccione una y haga clic en ‘Fusionar’.

4
4
4
2016-02-12 11:00:43 +0000

Aunque creo que la respuesta de Aprillion usando Microsoft Query es excelente, me inspiró a usar Microsoft Access para unir las hojas de datos que encontré mucho más fácil.

Necesitas tener instalado MS Access por supuesto.

Pasos:

  • Crear una nueva base de datos de Access (o usar una base de datos de scratch).
  • Usar Get External Data para importar tus datos de Excel como nuevas tablas.
  • Utilice Relationships para mostrar cómo se unen sus tablas.
  • Establezca el tipo de relación para que coincida con lo que desea (representando la unión izquierda, etc.)
  • Cree una nueva consulta que se une a sus tablas.
  • Utilice External Data->Export to Excel para generar sus resultados.

Realmente no podría haberlo hecho sin la gran respuesta de Aprillion.

3
3
3
2014-07-04 22:25:25 +0000

En XLTools.net hemos creado una buena alternativa para que MS Query funcione especialmente con consultas SQL contra tablas de Excel. Se llama XLTools SQL Queries . Es mucho más fácil de usar que MS Query y funciona muy bien si sólo necesita crear y ejecutar SQL - sin VBA, sin manipulaciones complejas con MS Query…

Con esta herramienta puede crear cualquier consulta SQL contra tablas en libro(s) de Excel usando un editor SQL incrustado y ejecutarlo inmediatamente con la opción de poner el resultado en una hoja de trabajo nueva o cualquiera existente.

Puede usar casi cualquier tipo de unión, incluyendo LEFT OUTER JOIN (sólo RIGHT OUTER JOIN y FULL OUTER JOIN no están soportados).

Aquí hay un ejemplo:

3
3
3
2012-05-04 17:29:37 +0000

No se pueden preformar uniones de estilo SQL en tablas de Excel desde dentro de Excel. Dicho esto, hay múltiples maneras de lograr lo que se intenta hacer.

En Excel, como dice Reuben, las fórmulas que probablemente funcionen mejor son VLOOKUP y HLOOKUP. En ambos casos, coincides en una fila única y devuelve el valor de la fila de la columna dada a la izquierda del id. encontrado.

Si sólo quieres añadir un par de campos extra a la segunda lista, entonces añade las fórmulas a la segunda lista. Si quieres una tabla de estilo “unión exterior”, entonces añade la fórmula VLOOKUP a la primera lista con ISNA para probar si la búsqueda fue encontrada. Si la ayuda de Excel no le da suficientes detalles sobre cómo usarlas en su caso particular, háganoslo saber.

Si prefiere usar SQL entonces enlace los datos en su programa de base de datos, cree su consulta y exporte los resultados de vuelta a Excel. (En Access puede importar hojas de trabajo de Excel o rangos nombrados como una tabla enlazada).

2
2
2
2013-07-16 02:41:41 +0000

Para el usuario de Excel 2007: Datos > De otras fuentes > De Microsoft Query > navegar hasta el archivo de Excel

De acuerdo con este artículo , la consulta desde la versión XLS 2003 podría resultar en un error de “Esta fuente de datos no contiene tablas visibles” porque sus hojas de trabajo son tratadas como tablas de SISTEMA. Así que comprueba las opciones del diálogo “Tablas del sistema” en el “Asistente de consulta – Elegir columnas” cuando creas la consulta funcionará.

Para definir tu unión: Para devolver los datos a su hoja de Excel original, elija “Devolver datos a la hoja de Excel” en el diálogo “Consulta de Microsoft” en el menú “Archivo”.

0
0
0
2016-05-25 17:19:06 +0000

Buscando el mismo problema me encontré con RDBMerge , que creo que es una forma amigable de fusionar datos de múltiples cuadernos de Excel, csv y xml en un cuaderno de resumen.

0
0
0
2012-05-04 16:44:30 +0000

Si está lo suficientemente familiarizado con las bases de datos, podría usar el Servidor SQL para conectar ambas hojas de trabajo como Servidores Vinculados y luego usar T-SQL para hacer su trabajo de datos de fondo. Luego termina conectando Excel de nuevo a SQL y tira los datos en una tabla (regular o pivote). También puede considerar el uso de Powerpivot; permitirá la unión entre cualquier fuente de base de datos, incluyendo Excel utilizado como bases de datos planas.