Como juntar dos tablas en excel

Tengo dos tablas de excel, cada una en una hoja. Cada tabla contiene 3 columnas y un numero muy diferente de filas. Una de las columnas es común en ambas tablas, y el resto de columnas son todas diferentes entre si. Ejemplo:

TABLA 1:

Nº EXPEDIENTE / PRODUCTO / PRECIO

0000 / aaaa / 111

0001 / bbbb / 222

0002 / cccc / 333

TABLA 2:

Nº EXPEDIENTE / CLIENTE / DIRECCIÓN

0001 / zzzz / jkjkjkjkjkjkj

0002 / xxxx / ntntntntntnt

0004 / yyyy / frfrfrfrfrfrfrfr

Lo que quiero hacer es juntar ambas tablas, dejando una única columna de numero de expediente, de forma que al buscarlo pueda ver el resto de datos asociados al expediente. El problema es que una de las tablas contiene muchos mas números de expediente que la otra, con lo cual, no basta con cortar y pegar, porque en ese caso los datos no coincidirían. Lo he intentado con la función buscarv, pero los datos que me devuelve en la tabla resultante no coinciden con la tabla de origen, si no que están desordenados. Es decir, por ejemplo en lugar de aparecerme los datos: 0001 / bbbb / 222 / zzzz / jkjkjkjkjkjkj me aparecen mezclados ( 0001 / 222 / xxxx / frfrfrfrfrfr). No se si he explicado bien el problema, pero espero que alguien me pueda ayudar y encontrar una solución.

1 respuesta

Respuesta
1

¿Los expedientes en la tabla 1 son únicos?

¿Los expedientes en la tabla 2 son únicos?

Cuáles columnas quieres primero, ¿los de la tabla 1?

Otra duda:

Dónde quieres la unión de las tablas, ¿en la tabla 1?

Slaudos. Dam

Si las respuestas son si, ejecuta la siguiente macro, crea una hoja llamada "hoja3" y en esta hoja3 te va a poner la unión de las hojas "hoja1" y "hoja2"

Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: unir
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub unir()
'por.dam
Set h1 = Sheets("hoja1")
Set h2 = Sheets("hoja2")
Set h3 = Sheets("hoja3")
h3.Cells.Clear
h2.Columns("D:D").Clear
h1.Select
j = 2
For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
    Var = Application.Match(h1.Cells(i, "A"), h2.Columns("A"), 0)
    If Not IsError(Var) Then
        h3.Cells(j, "A") = h1.Cells(i, "A")
        h3.Cells(j, "B") = h1.Cells(i, "B")
        h3.Cells(j, "C") = h1.Cells(i, "C")
        h3.Cells(j, "D") = h1.Cells(Var, "B")
        h3.Cells(j, "E") = h1.Cells(Var, "C")
        h2.Cells(Var, "D") = "X"
    Else
        h3.Cells(j, "A") = h1.Cells(i, "A")
        h3.Cells(j, "B") = h1.Cells(i, "B")
        h3.Cells(j, "C") = h1.Cells(i, "C")
    End If
    j = j + 1
Next
h2.Select
For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
If Cells(i, "D") <> "X" Then
    h3.Cells(j, "A") = h2.Cells(i, "A")
    h3.Cells(j, "B") = h2.Cells(i, "B")
    h3.Cells(j, "C") = h2.Cells(i, "C")
    j = j + 1
End If
Next
End Sub

Saludos. Dam
Si es lo que necesitas.

Hola!! Muchísimas gracias por contestar y perdón por mi tardanza, no había visto la respuesta.... Cuando preguntas si los expedientes son únicos t refieres a si coinciden los números d expediente de cada tabla o son diferentes?? La respuesta es que todos los expedientes de la tabla 1 aparecen en la tabla 2, pero no todos los de la tabla dos aparecen en la tabla 1.... M da lo mismo q columnas aparezcan primero, ya q una vez juntas supongo q podría moverlas a mi gusto no?? Y también m da lo mismo en que tabla juntarlas, m es indiferente q sea en la 1, la 2 o crear una tercera q tuviese todos los datos. Siendo asi, tengo q realizar ese mismo proceso q m has indicado?? Muchas gracias!!

¿Probaste la macro que te puse?

Revísala y me comentas

Saludos. Dam

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas