Para el siguiente ejemplo, vamos a trabajar con el modelo que suelo usar habitualmente, tenemos dos hojas, en la primera hoja tenemos el modelo para las ventas del año 2021, y, en la segunda hoja, tenemos el mismo modelo, pero las ventas son para el año 2022.
El problema es que alguien, sin darse cuenta ha añadido una columna entre medio sin datos en la segunda hoja.
Queremos en una hoja nueva, unir ambas tablas, pero la columna que esta vacía no debe de aparecer.
Añadimos una hoja nueva.
Lo voy a hacer en formulas separadas, aunque al final será una única función.
Primero voy a traerme los encabezados de la primera tabla.
=Ventas[#Encabezados]
En la celda siguiente, traigo los encabezados de segunda tabla.
=Ventas2[#Encabezados]
Vemos que, en el segundo encabezado, hay una columna de más.
Ahora, con la función COINCIDIR, voy a buscar la posición donde se encuentra cada encabezado de la tabla ventas en la tabla ventas2, con una coincidencia exacta.
=COINCIDIR(G2#;G3#;0)
Vemos que en la secuencia de números del numero 2 salta al numero 4, quiere decir que la columna 3 es sobrante.
La función COINCIDIR en una quedaría:
=COINCIDIR(Ventas[#Encabezados];Ventas2[#Encabezados];0)
Por lo que ya podemos borrar las dos líneas primeras.
Ahora, con la función INDICE voy a traerme los encabezados de la tabla ventas2, que es la que tiene mas encabezados, como argumento array, seleccionamos todas las columnas de la tabla ventas2.
=INDICE(Tabla2!A:H
Omitimos el argumento numero de fila, y, como argumento número de columna, es la función COINCIDIR.
Cerramos paréntesis.
=INDICE(Tabla2!A:H;;COINCIDIR(Ventas[#Encabezados];Ventas2[#Encabezados];0))
Ya tenemos los encabezados a recuperar de ambas tablas.
En la celda A2, voy a usar la función APILARV (VSTACK), porque vamos a unir las dos tablas, como argumento matriz1, vamos a usar la función INDIRECTO, entre comillas dobles ponemos la primera tabla y una apertura de corchete.
=APILARV(INDIRECTO("Ventas["
Concatenamos con la celda A1.
=APILARV(INDIRECTO("Ventas[" & A1
Concatenamos con un cierre de corchetes, entre comillas dobles, y, cerramos paréntesis.
=APILARV(INDIRECTO("Ventas[" & A1 & "]")
Con esto, obtenemos la columna fecha de la tabla ventas.
Punto y coma, como argumento matriz2, repetimos la operación anterior, pero cambiamos ventas por ventas2.
Cerramos paréntesis.
=APILARV(INDIRECTO("Ventas[" & A1 & "]");INDIRECTO("Ventas2[" & A1 & "]"))
Aceptamos, y, tenemos la columna fecha de ambas tablas.
Arrastramos hacia la derecha, y, ya tenemos las dos tablas en una, ignorando esa columna de más.
Miguel Angel Franco Garcia
Commentaires