Cuando BYROW sobra: FILTRAR por una sola columna
Nuevo reto de Excel resuelto por la comunidad con un apunte que muchos usuarios agradecen. Óscar comparte que ha conseguido filtrar una tabla usando FILTRAR combinado con BYROW, evaluando si la columna "Descripcion" no está vacía:
``
=FILTRAR(
Tbl_Equipo_Infraestructura;
BYROW(Tbl_Equipo_Infraestructura[Descripcion] <> ""; O)
)
`
Un miembro de la comunidad le señala que, al filtrar por una única columna, BYROW es innecesario. La comparación Tbl_Equipo_Infraestructura[Descripcion] <> "" ya devuelve un array vertical de TRUE/FALSE que FILTRAR acepta directamente:
`
=FILTRAR(
Tbl_Equipo_Infraestructura;
Tbl_Equipo_Infraestructura[Descripcion] <> ""
)
`
BYROW tiene sentido cuando necesitas evaluar múltiples columnas por fila (por ejemplo, comprobar si al menos una celda de la fila cumple una condición). Pero cuando el criterio afecta a una sola columna, la condición ya produce un vector compatible y el BYROW` solo añade complejidad sin beneficio. Una optimización sencilla pero que mejora la legibilidad y el rendimiento de la fórmula.
Hay optimizaciones que no hacen la fórmula más potente, solo más honesta. Esta es una de ellas: Óscar compartió en la comunidad una fórmula que le funcionaba perfectamente para filtrar una tabla, y otro miembro le señaló que sobraba una función entera. El resultado es el mismo, pero se entiende mejor y calcula menos.
El punto de partida
Óscar necesitaba quedarse solo con las filas de una tabla cuya columna Descripcion tuviera contenido. Su solución combinaba FILTRAR con BYROW:
=FILTRAR(
Tbl_Equipo_Infraestructura;
BYROW(NO(Tbl_Equipo_Infraestructura[Descripcion] = ""); O)
)Funciona. La comparación marca cada celda con contenido, BYROW recorre fila por fila aplicando O, y FILTRAR se queda con las que dan VERDADERO.
Por qué BYROW no hace falta aquí
La clave está en la forma del resultado intermedio. Cuando comparas una única columna con el texto vacío, lo que obtienes ya es un vector vertical de VERDADERO y FALSO, con exactamente una posición por fila de la tabla. Y eso es justo lo que FILTRAR espera como segundo argumento.
Es decir, BYROW está recibiendo un vector de una sola columna, recorriéndolo fila a fila, aplicando O a un único valor por fila y devolviendo... el mismo vector con el que empezó. Un rodeo perfectamente inofensivo, pero un rodeo al fin y al cabo.
La versión limpia:
=FILTRAR(
Tbl_Equipo_Infraestructura;
NO(Tbl_Equipo_Infraestructura[Descripcion] = "")
)Misma tabla filtrada, una función menos y una fórmula que se lee de un tirón.
Entonces, ¿cuándo sí necesitas BYROW?
BYROW gana su sueldo cuando el criterio abarca varias columnas y tienes que colapsar cada fila a un único valor lógico. Casos típicos:
- Quedarte con las filas en las que al menos una celda tiene contenido: ahí la comparación produce una matriz de varias columnas, y
BYROW(...; O)la reduce a un vector. - Quedarte con las filas en las que todas las celdas cumplen la condición: mismo esquema, pero aplicando
Yen lugar deO. - Aplicar una
LAMBDApropia por fila, por ejemplo para sumar solo algunas columnas y comparar el total contra un umbral.
La regla mental es sencilla: si tu criterio ya devuelve una sola columna, FILTRAR lo acepta tal cual. Si devuelve varias, necesitas reducirlo con BYROW.
Qué ganas al quitarlo
- Legibilidad: quien lea la fórmula dentro de seis meses verá el criterio directamente, sin tener que descifrar qué hace la función envolvente.
- Rendimiento:
BYROWlanza una llamada por fila. En una tabla pequeña no se nota, pero en decenas de miles de filas estás pagando miles de llamadas para no cambiar nada. - Menos superficie de error: cada función que quitas es una menos que puede fallar al cambiar el rango o al copiar la fórmula a otra hoja.
Funciones clave
FILTRAR: devuelve las filas de un rango que cumplen un criterio. El criterio debe tener el mismo número de filas que el rango filtrado y una sola columna.BYROW: aplica una función a cada fila de una matriz y devuelve un vector con un resultado por fila. Su utilidad real aparece con criterios de varias columnas.OyY: agregadores lógicos que suelen acompañar aBYROWpara pedir "al menos una" o "todas".NO: invierte una matriz lógica; es la forma más legible de expresar "distinto de vacío".
Conclusión
No todas las mejoras consisten en añadir funciones más modernas. A veces la mejor versión de una fórmula es la misma con una capa menos, y detectar esa capa sobrante exige entender qué forma tiene cada resultado intermedio: una columna, una matriz, un valor suelto.
Este tipo de repaso entre compañeros es lo que más se ve en la comunidad de InflueXcel: alguien comparte una fórmula que ya le funciona, y sale una versión más simple que además explica el porqué.
Más casos con estas funciones
Más contenido de Excel en InflueXcel
- Buscar múltiples palabras simultáneamente con FILTRAR y BYROW CasoJuan consigue filtrar una tabla buscando una palabra con HALLAR, pero cuando intenta buscar dos palabras a la vez pasando un rango (K16:L16)
- 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 CasoÓscar 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 que devuelve múltiples filas: por qué falla y cómo resolverlo CasoInteresante problema que aparece con frecuencia cuando se combinan FILTRAR con funciones iterativas como MAP o BYROW. Un miembro tiene una t
- BYROW+checkbox para filtrado dinámico en control alimentario (APPCC) CasoRosario trabaja en seguridad alimentaria y tiene un sistema APPCC (Análisis de Peligros y Puntos de Control Crítico) montado en Excel para u
- FILTRAR en Excel: las 5 dudas más buscadas, resueltas (y una extra: filtrar entre fechas) TutorialLe preguntamos a Copilot cuáles son las 5 dudas que más se buscan sobre FILTRAR y las resolvemos una a una en Excel, cada una con un truco e
- ¿MAP o BYROW? Descubre cuándo usar cada una Tutorial¿MAP o BYROW? Descubre cuándo usar cada una y cómo estas funciones pueden transformar tu forma de trabajar en Excel. En este vídeo aprenderá
- SEGUIMIENTO DE LAS VACACIONES DE NUESTRO EQUIPO TutorialEl objetivo es tener bien estructurada la información, agilizar los cálculos de días laborables entre periodos y poder visualizar la informa
- Reemplazar Solver con MMULT, MINVERSA y SUMAPRODUCTO CasoInteresante aportación de Leo que demuestra cómo resolver problemas de optimización lineal sin necesidad de la herramienta Solver, usando ún