Supongamos que tengo algunos datos en Excel (y no en una base de datos real). En una hoja, tengo datos, donde una columna funciona como ID, y me he asegurado de que los valores en esta columna sean únicos. En otra hoja, también tengo algunos datos, nuevamente con una columna que se puede tomar como ID, y también es única. Si la fila N en la hoja 1 tiene algún valor, y la fila M en la hoja 2 tiene el mismo valor, estoy seguro de que la fila N y la fila M describen el mismo objeto del mundo real.
Lo que pregunto: ¿cómo puedo obtener el equivalente de una combinación externa completa sin escribir macros? Las fórmulas y todas las funciones accesibles a través de la cinta están bien.
Un pequeño ejemplo de "datos de reproducción":
Hoja 1:
Dostoyevski Russia
Pushkin Russia
Shelley England
Flaubert France
Hugo France
Eichendorff Germany
Byron England
Zola France
Hoja 2:
Shelley Percy Bysshe
Eichendorff Josef Freiherr Von
Flaubert Gustave
Byron Lord
Keller Gottfried
Dostoyevski Fyodor
Zola Emile
Balzac Honoré de
Salida deseada (la clasificación no es importante):
Dostoyevski Russia Fyodor
Pushkin Russia
Shelley England Percy Bysshe
Flaubert France Gustave
Hugo France
Eichendorff Germany Josef Freiherr von
Byron England Lord
Zola France Emile
Keller Gottfried
Balzac Honoré de
Para todos los que están horrorizados por este escenario: Sé que esta es la manera incorrecta de hacerlo. Si tengo alguna opción, no usaría Excel para esto. Sin embargo, existen suficientes situaciones en las que se necesita una solución pragmática, estadísticas y una solución mejor (desde el punto de vista de TI) no se puede aplicar.
fuente
Respuestas:
Enfoque fácil: operaciones estándar de Excel
Primero, copie / pegue ambas columnas clave de ambas tablas en una sola hoja nueva como una sola columna.
Utilice el "Eliminar duplicados" para obtener la lista única de todas sus claves únicas.
Luego, agregue dos columnas (en este caso), una para cada una de sus columnas de datos en cada tabla. Le recomiendo que también use el formato como opción de tabla, ya que hace que sus fórmulas se vean mucho mejor. Usando vlookup, use la siguiente fórmula:
Donde
Sheet4!A:B
representa la tabla de datos de la tabla de origen para cada valor respectivo. El IFERROR previene los resultados feos # N / A que aparecen cuando vlookup no tiene éxito y en este caso devuelve una celda en blanco.Esto te da tu tabla resultante.
Hoja3:
Hoja4:
Datos de resultado:
Fórmulas de resultado ( Ctrl+ ~alternará esto):
Construido en consulta SQL
También puede hacer esto con la consulta SQL incorporada. Es ... mucho menos fácil de usar, pero quizás sea un mejor caso de uso. Esto probablemente requerirá que haya formateado sus datos de "fuente" como tablas.
La parte "crear una combinación de resta y luego agregarla como unión" es más complicada.
Regrese a la primera combinación externa que creó. Edite manualmente el SQL y
Union
al fondoNo para los débiles de corazón. Pero si desea una gran oportunidad de ver algunas partes de Office no actualizadas tan largas como podría haber estado vivo, es una gran oportunidad.
fuente
Como solución alternativa, ¿puedo sugerir Power Query ? Es un complemento gratuito de Excel de Microsoft para realizar básicamente exactamente este tipo de cosas. Su funcionalidad también se incluirá directamente en Excel 2016, por lo que está preparada para el futuro.
De todos modos, con Power Query, los pasos son bastante simples:
Lo bueno de esto es que una vez que haya configurado esto, si realiza cambios en sus tablas de datos base, simplemente presione Datos> Actualizar todo y su hoja de resultados de Power Query también se actualizará.
fuente
Una forma rápida de semi-simular una (combinación externa) es tomar su segunda lista y pegarla directamente debajo de su lista de puños, es decir, sus (claves principales) están todas en la misma columna (primaria). Luego ordene esa columna primaria, terminará con una lista intercalada y luego hará una ecuación IF transpuesta (el superusuario está desordenando la vista de diseño de la tabla ...):
listA listB
sam blue tim 32874 tim red mary 5710 chris green gustav 047 fred blue
mary black
copiar / pegar / ordenar, el resultado se ve así: AB chris green fred blue gustav 047 mary 5710 mary black sam blue tim 32874 tim red
entonces fórmula para la celda c1: (c1) = if (A1 = A2, B2)
El resultado se ve así:
ABC chris verde FALSO fred azul FALSO gustav 047 FALSO mary 5710 negro mary negro FALSO sam azul FALSO tim 32874 rojo tim rojo FALSO
Clasifique C para deshacerse de los falsos, etc. Esa es una versión básica de la idea, simplemente amplíela si necesita más datos. -wag770310
fuente