Consolidar múltiples hojas con APILARV, referencias 3D y FILTRAR
Fito necesita consolidar varias hojas de Excel que comparten la misma cabecera pero tienen distinto número de filas con datos de gastos de viajes por áreas. El problema es que al usar APILARV con referencias 3D (rango de hojas), las filas vacías también se apilan.
Un miembro sugiere primero filtrar y luego apilar, además de compartir un video relevante de la comunidad.
Alejandro propone usar un operador en el segundo argumento de FILTRAR para descartar las filas vacías:
``
APILARV('BBDD-Officers:BBDD- Auditoria'!$O$2:$O$300)<>""
`
Leo ofrece la solución completa combinando APILARV con FILTRAR y BYROW para eliminar las filas vacías dinámicamente. Si las columnas contienen números:
`
=LET(
c; APILARV('BBDD-Officers:BBDD- Auditoria'!B2:O300);
FILTRAR(c; BYROW(c; SUMA) > 0)
)
`
Y si las columnas contienen texto en lugar de números:
`
=LET(
c; APILARV('BBDD-Officers:BBDD- Auditoria'!B2:O300);
FILTRAR(c; BYROW(c; LAMBDA(x; SUMA(N(x > "")))) > 0)
)
``
Leo también lamenta que el operador punto para recortar rangos no funcione con referencias 3D, lo que habría evitado la necesidad de filtrar filas vacías. Un caso práctico muy común en entornos empresariales donde se manejan múltiples hojas con la misma estructura.
Apilar varias hojas con la misma cabecera sin arrastrar filas vacías
Fito tenía un caso muy de empresa: varias hojas con la misma cabecera pero distinto número de filas (gastos de viaje por áreas), y quería consolidarlas en una sola tabla. Al apilarlas con APILARV y una referencia 3D (un rango de hojas), el problema era que también se colaban las filas vacías de cada hoja.
Por qué aparecen las filas vacías
Una referencia 3D como 'Hoja1:Hoja5'!B2:O300 apila el rango completo de todas las hojas, incluidas las filas sin datos. Si cada hoja tiene 300 filas reservadas pero solo 40 con contenido, acabas con cientos de filas en blanco. La solución pasa por filtrar antes de quedarte con el resultado.
La solución de Leo: APILARV, FILTRAR y BYROW
Cuando las columnas contienen números, basta con quedarte con las filas cuya suma no es cero:
`` =LET( c; APILARV('BBDD-Officers:BBDD- Auditoria'!B2:O300); FILTRAR(c; BYROW(c; SUMA) > 0) ) ``
APILARV monta el bloque con todas las hojas, BYROW(c; SUMA) calcula la suma de cada fila y FILTRAR conserva solo las que suman algo, descartando las vacías de un plumazo.
Si las columnas contienen texto en lugar de números, la idea es la misma pero cambiando el criterio: en vez de sumar valores, se cuenta cuántas celdas de la fila tienen contenido, y se conservan las filas con al menos una celda con texto. Leo resuelve ese conteo con BYROW aplicando una LAMBDA que convierte "tiene texto" en unos y ceros y los suma.
Alejandro había apuntado antes en la misma dirección, usando un criterio de "celda no vacía" en el segundo argumento de FILTRAR. Leo también lamentó que el operador punto para recortar rangos no funcione con referencias 3D; de hacerlo, ni siquiera haría falta filtrar.
Funciones clave
APILARVcon referencias 3D: consolida el mismo rango de varias hojas en un bloque único.FILTRAR: descarta las filas vacías según el criterio que le pases.BYROW: resume cada fila (suma o conteo de contenido) para decidir si se queda.LAMBDA: define el criterio de "fila con datos" cuando el contenido es texto.
Conclusión
Consolidar hojas con la misma estructura es una necesidad diaria en cualquier oficina, y la combinación APILARV + FILTRAR + BYROW lo resuelve de forma dinámica: añades filas a cualquier hoja y la tabla consolidada se actualiza sola, sin arrastrar huecos. Un patrón que conviene tener en el bolsillo, cortesía de la comunidad de InflueXcel.
Más casos con estas funciones
Más contenido de Excel en InflueXcel
- Filtro multicriteria dinámico con LET, FILTRAR y LAMBDA CasoHector comparte con la comunidad una fórmula avanzada para filtrar una tabla de productos/servicios por múltiples criterios opcionales (clav
- Optimización de REDUCE+APILARV con LAMBDA recursiva en bisección CasoAlejandro plantea un reto de rendimiento interesante: tiene una fórmula LET enorme que calcula la permanencia de carga en puerto por matrícu
- Generar la serie de Fibonacci con REDUCE, APILARV y LAMBDA CasoInteresante ejercicio compartido en la comunidad: generar los primeros N números de la serie de Fibonacci usando exclusivamente fórmulas de
- Filtrar filas con todos los valores a cero: 4 enfoques con FILTRAR y BYROW CasoJuan tiene una tabla grande donde muchas filas contienen solo ceros y necesita filtrarlas para quedarse solo con las que tienen datos reales
- Filtrar con múltiples condiciones usando matrices booleanas y BYROW CasoInteresante problema planteado por un miembro sobre cómo filtrar datos que cumplan varias condiciones simultáneas usando operaciones matrici
- Eliminar filas en blanco de una tabla con FILTRAR y BYROW CasoOscar plantea una duda práctica: tiene una tabla en Excel con filas que contienen información y otras vacías, y necesita extraer solo las fi
- Filtrar una tabla por una lista de valores: una LAMBDA propia y su inversa TutorialTe pasan una lista de 30 números de albarán y hay que sacar esas filas de una tabla de miles. Con el autofiltro es marcar casillas una a una
- Funciones window en Excel: el total del grupo en cada fila con LAMBDA y BYROW TutorialEn SQL se llaman funciones window: columnas que, para cada fila, traen un agregado calculado sobre un grupo mayor. El total de ese cliente a
- 3 Formas Efectivas de Unpivot en Excel, PowerQuery y Python TutorialComparamos cómo anular la dinamización de columnas con Excel, Powerqiery y Python. Tres formas para conseguir el mismo resultado. ¿Con cuál
- Reto de Excel: El cumpleaños de Bilbo 🎂 | CONTAR.SI y SUMAR.SI desde cero (Nivel 1) TutorialEn La Comarca se celebra el cumpleaños número 111 de Bilbo Bolsón: cerveza, pasteles, fuegos artificiales… y algún curioso escondido tras el