Filtrar filas con todos los valores a cero: 4 enfoques con FILTRAR y BYROW
Juan tiene una tabla grande donde muchas filas contienen solo ceros y necesita filtrarlas para quedarse solo con las que tienen datos reales. Parece sencillo, pero la trampa está en que los ceros pueden estar en cualquier columna.
Con FILTRAR simple (Leo): si los ceros solo están en la primera columna, basta con filtrar por ella:
``
=FILTRAR(A2:F84; A2:A84 > 0)
`
Con LET + SI para limpiar residuos (+34 617): filtra las filas y luego sustituye los ceros internos por vacío para que el resultado quede limpio:
`
=LET(
f; FILTRAR(A2:F84; A2:A84 <> 0; "sin datos");
SI(ELEGIRCOLS(f; 1) = 0; ""; f)
)
`
Con BYROW para comprobar toda la fila (John): la solución más robusta. Verifica que al menos una celda de cada fila sea distinta de cero, independientemente de qué columna contenga el dato:
`
=FILTRAR(H3#; BYROW(H3# <> 0; O))
`
El truco: H3# <> 0 genera una matriz booleana, y BYROW con O (función OR) la colapsa en un vector — VERDADERO si cualquier celda de la fila es distinta de cero.
Con UNICOS y tercer argumento (Leo): UNICOS con el tercer argumento a 1` puede eliminar filas duplicadas por coincidencia exacta, pero Leo advierte que es arriesgado porque puede eliminar filas legítimas que coincidan con otra.
El problema
Juan tiene una tabla grande donde muchas filas contienen solo ceros y quiere quedarse únicamente con las que tienen datos reales. Parece trivial, pero hay trampa: los ceros pueden estar en cualquier columna, así que filtrar por una sola no basta. La comunidad aportó cuatro enfoques, de lo más simple a lo más robusto.
Enfoque 1: FILTRAR por una columna
Si sabes que los ceros solo aparecen en la primera columna, la solución de Leo es directa:
`` =FILTRAR(A2:F84; A2:A84>0) ``
FILTRAR se queda con las filas cuyo valor en la primera columna es mayor que cero. Rápido y legible, pero solo válido cuando el dato "que importa" vive siempre en la misma columna.
Enfoque 2: LET y SI para limpiar residuos
Cuando el filtro deja ceros sueltos dentro de las filas que sí pasan, conviene limpiarlos. La propuesta usa LET para filtrar primero y después sustituir por vacío los ceros internos, de modo que el resultado quede presentable. La condición del filtro comprueba que la celda de referencia sea distinta de cero, y un tercer argumento devuelve un texto tipo "sin datos" si no queda ninguna fila. ELEGIRCOLS aísla la columna a revisar para decidir qué se blanquea.
Enfoque 3: BYROW para mirar toda la fila
La solución más robusta es la de John, porque no depende de ninguna columna concreta. La idea: comparar todo el rango con cero para generar una matriz de verdadero/falso, y colapsarla fila a fila con BYROW usando la función O (OR):
`` =FILTRAR(H3#; BYROW(matriz_booleana; O)) ``
Donde matriz_booleana es el rango comparado con cero (cada celda, distinta de cero). BYROW(...; O) devuelve VERDADERO si al menos una celda de la fila tiene dato, y FILTRAR conserva esas filas. Funciona con el rango desbordado H3#, así que se adapta solo si la tabla crece.
Enfoque 4: UNICOS (con cuidado)
Leo apunta una última vía: UNICOS con su tercer argumento a uno puede eliminar filas que coincidan exactamente. Es tentador, pero arriesgado: puede borrar filas legítimas que resulten idénticas a otra. Útil solo cuando sabes que no habrá duplicados reales.
Funciones clave
FILTRAR: el motor de todos los enfoques; conserva filas según una condición y admite un valor por defecto si no hay resultados.BYROW: aplica una función (aquíO) a cada fila y devuelve un vector, ideal para "¿tiene esta fila algún dato?".O(OR): colapsa una fila booleana a un único verdadero/falso.LETyELEGIRCOLS: nombran pasos intermedios y aíslan columnas para limpiar residuos.UNICOS: potente para duplicados exactos, pero delicado como filtro de ceros.
Conclusión
Del atajo de una columna a la solución con BYROW que revisa la fila entera, el caso muestra una regla de oro de Excel moderno: cuanto menos dependas de una posición fija, más robusta es tu fórmula. BYROW con O es la opción que recomendamos cuando los ceros pueden aparecer en cualquier sitio. Estos retos salen cada semana en la comunidad de Influexcel, donde un problema real acaba teniendo cuatro formas de resolverse.
Más contenido de Excel en InflueXcel
- Cuenta clientes y cervezas en Excel 🍺 Caso "La Taberna: El Poney Pisador" (Nivel 1) Tutorial🍺 Noche cerrada en Bree. Frodo, Sam, Merry y Pippin cruzan la puerta de El Poney Pisador huyendo de los Jinetes Negros: la sala está a reven
- SUMAR.SI.CONJUNTO en acción con El Señor de los Anillos 🃏 El 21 de La Comarca TutorialLo que practicamos en este caso: • Contar cartas por palo con CONTAR.SI • Sumar valores con condiciones (SUMAR.SI / SUMAR.SI.CONJUNTO) • Apl
- 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
- ¡Excel PowerQuery Hack! Conexiones con rutas relativas en 10 minutos! Tutorial¿Harto de ajustar las conexiones en PowerQuery cada vez que compartes tu archivo de Excel? 🙄 Convierte las conexiones de PowerQuery con ruta
- Mejora un 90% el rendimiento de Power Query con SQLite TutorialPower Query es una herramienta potente para consolidar, combinar y calcular datos, pero cuando trabajamos con millones de registros y calcul
- Reorganizar tablas mensuales: cruzar por persona buscando en vertical y en horizontal CasoNuevo caso interesante de la comunidad. Juan tenía varias tablas mensuales (a veces más de una en el mismo mes) y quería reorganizarlas por
- Un dato de todas las hojas, escrito una sola vez CasoEsta semana surgió en la comunidad un reto muy habitual cuando un libro tiene muchas hojas: mostrar el valor de la celda B3 de cada hoja, in
- Un índice de hojas que se genera solo: HYPERLINK en rangos desbordados CasoEsta semana surgió en la comunidad un pequeño "expediente X". Un miembro llegó tras ver un vídeo con una idea clara en la cabeza: montar una
- Reformatear un código alfanumérico al teclear: de NN1234567 a NN-12345-67 CasoEsta semana surgió en la comunidad una duda muy práctica: cómo conseguir que al escribir un código tipo NN1234567 (dos letras seguidas de si
- Reclasificación contable: duplicar cada fila con una conversión distinta por columna, en un único bloque CasoInteresante reto contable planteado esta semana por un miembro de la comunidad. Juan parte de una tabla de apuntes contables (rango C7:P10)