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

  • APILARV con 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