SI.ERROR falla con textos de más de 255 caracteres: alternativa con ESERROR
Un caso que pilló desprevenida a la comunidad: al usar FILTRAR sobre una columna que contiene textos largos (más de 255 caracteres), las filas con esos textos desaparecían del resultado. Después de investigar, Leo diagnostica el problema real: no es FILTRAR quien falla, sino SI.ERROR.
Resulta que SI.ERROR, cuando envuelve una matriz (y un FILTRAR lo es), trata como error cualquier cadena de 256 caracteres o más. Si envuelves tu FILTRAR con SI.ERROR (algo habitual para capturar el caso de "sin resultados"), las celdas con textos largos se consideran errores y se reemplazan por el valor alternativo. Con una celda suelta no pasa, y por eso cuesta creérselo al probarlo. Con SI.ND, en vez de desaparecer, dan #¡VALOR!.
La solución: usar ESERROR en lugar de SI.ERROR:
``
=LET(
m; ELEGIRCOLS(
FILTRAR(rango; condición);
columnas_deseadas
);
SI(O(ESERROR(m)); "REVISAR HOJA DATOS"; m)
)
`
La diferencia es sutil pero importante: SI.ERROR(expr; alt) evalúa expr y, si es una matriz, trata los textos largos como error. En cambio, ESERROR(m) pregunta elemento a elemento si hay errores reales en la matriz, sin esa limitación; O junta las respuestas, y solo si alguna es VERDADERO se aplica el texto alternativo.
Leo recomienda como regla general: evitar SI.ERROR cuando se trabaja con columnas de texto libre que puedan superar los 255 caracteres. Usar ESERROR + SI es más robusto aunque requiera una línea más.
Nota (corregido el 26/9/2026): en el hilo la fórmula salió como SI(ESERROR(O(m)); ...), con el orden al revés. Así no sirve: O no admite texto dentro de una matriz, da error, y el aviso sale en cuanto hay un solo texto en los datos. El orden bueno es O(ESERROR(m))`, comprobado en Excel.
Filas que desaparecen sin motivo aparente
Este es de los casos que pillan desprevenido a cualquiera. Un miembro de la comunidad estaba usando FILTRAR sobre una tabla que incluía una columna de texto libre —comentarios, descripciones largas— y detectó algo inquietante: algunas filas simplemente no aparecían en el resultado.
No eran filas que incumplieran la condición. Cumplían el criterio perfectamente, pero se esfumaban. Y todas tenían algo en común: su texto era muy largo.
El diagnóstico: la culpa no era de FILTRAR
Tras investigarlo, Leo dio con el culpable, y no era el sospechoso habitual. FILTRAR funcionaba bien. El que fallaba era SI.ERROR.
Resulta que SI.ERROR trata cualquier cadena de más de 255 caracteres como si fuera un error. Es un límite heredado de versiones antiguas de Excel que sigue vivo en la función.
Y aquí es donde se cierra la trampa. Envolver un FILTRAR en SI.ERROR es lo más normal del mundo: se hace para capturar el caso de "no hay resultados" y mostrar un mensaje decente en lugar de #CALC!. Pero al hacerlo, todas las celdas con textos largos se consideran erróneamente errores y se sustituyen por el valor alternativo.
El resultado es un fallo especialmente traicionero: no da error, no avisa de nada, y silenciosamente devuelve datos incompletos. Puedes tardar semanas en darte cuenta.
La solución: ESERROR en lugar de SI.ERROR
El arreglo pasa por separar las dos cosas que SI.ERROR hace de golpe: comprobar si hay error y devolver una alternativa. Usando ESERROR dentro de un SI, el control es explícito:
=LET(
m; ELEGIRCOLS(
FILTRAR(rango; condicion);
columnas_deseadas
);
SI(ESERROR(O(m)); "REVISAR HOJA DATOS"; m)
)La diferencia es sutil pero decisiva:
SI.ERROR(expresion; alternativa)evalúa la expresión y, si detecta error, devuelve la alternativa. Internamente marca como error cualquier texto de más de 255 caracteres.ESERROR(O(m))comprueba si hay errores reales en la matriz, sin esa limitación de longitud. Solo entonces se aplica el texto alternativo.
El O que envuelve la matriz merece una nota. Su papel aquí no es lógico sino estructural: colapsa la matriz entera a un único valor, de modo que ESERROR pueda evaluarla de una vez en lugar de elemento a elemento. Si FILTRAR no encuentra nada y devuelve #CALC!, ese error se propaga y ESERROR lo detecta.
El LET cumple su función de siempre: calcular la matriz una sola vez y reutilizarla tanto en la comprobación como en el resultado. Sin él habría que escribir el FILTRAR dos veces, con el doble de coste de cálculo.
La regla práctica
Leo la resumió así, y merece la pena grabársela: evita SI.ERROR cuando trabajes con columnas de texto libre que puedan superar los 255 caracteres.
Es decir, en la práctica:
- Columnas de importes, fechas, códigos o categorías:
SI.ERRORes perfecto. Corto, legible y sin sorpresas. - Columnas de comentarios, observaciones, descripciones de producto o cualquier campo donde alguien pueda escribir un párrafo: usa
SIconESERROR.
Cuesta una línea más y te ahorra un fallo silencioso que es dificilísimo de localizar, porque el síntoma (faltan filas) no apunta en absoluto hacia la causa (la función que captura errores).
Funciones clave
SI.ERROR— captura errores y devuelve una alternativa. Cómoda, pero considera error cualquier texto de más de 255 caracteres.ESERROR— devuelve verdadero si el valor es un error, sin la limitación de longitud. Combinada conSI, es el sustituto robusto.O— colapsa una matriz a un único valor lógico. Aquí sirve para queESERRORevalúe el conjunto de una vez y capte el error propagado.LET— guarda el resultado del filtro en una variable para no calcularlo dos veces.ELEGIRCOLS— selecciona las columnas que interesan del resultado filtrado.
Conclusión
Lo valioso de este caso no es la fórmula, sino el proceso de diagnóstico. El síntoma señalaba a FILTRAR, que era justo la función inocente. La culpable era la que se había puesto ahí para protegerse de los errores.
Es un buen recordatorio de que las funciones defensivas también tienen su letra pequeña. Envolver algo en SI.ERROR parece gratis y no siempre lo es.
Casos como este son de los que más se agradecen en la comunidad de InflueXcel: alguien pierde una tarde persiguiendo un comportamiento raro, lo comparte, y a partir de ahí nadie más vuelve a caer.
Más casos con estas funciones
Más contenido de Excel en InflueXcel
- Filtro multicriteria dinámico con LET, FILTRAR y LAMBDA CasoHéctor comparte con la comunidad una fórmula avanzada para filtrar una tabla de productos/servicios por múltiples criterios opcionales (clav
- Filtrar datos por código parcial y crear listas desplegables dependientes CasoRosario pone en práctica las enseñanzas de la comunidad pero se queda atascada: tiene una tabla con códigos jerárquicos (1.01, 1.02, 2.01, 2
- 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 ELEGIR y BUSCARX para consultas cruzadas entre tablas CasoInteresante problema planteado por Héctor sobre cómo construir una consulta dinámica que combine columnas de una tabla con datos cruzados de
- SUMAR.SI.CONJUNTO en Excel: las 5 dudas más buscadas, resueltas (y por qué no acepta ELEGIRCOLS) TutorialLe pregunté a Copilot cuáles son las 5 dudas que más se buscan sobre la función SUMAR.SI.CONJUNTO y las resuelvo una a una en Excel, cada un
- 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
- CONTAR.SI no acepta ELEGIRCOLS: por qué las funciones .SI exigen una referencia y no una matriz CasoHay errores de Excel que te mandan a buscar en la dirección equivocada, y este es de manual. Joan Recasens llega al grupo con una fórmula qu
- Del VBA a una sola fórmula: calcular el RFC mexicano con LET, MAP y expresiones regulares CasoHéctor llega al grupo con un problema que no se ve todos los días: tiene resuelto el cálculo del RFC mexicano, pero lo tiene en VBA, y quier
- Grado de avance por proyecto: despivotar y volver a pivotar por fecha CasoNuevo caso de la comunidad con mucho jugo para los que trabajan con reporting de proyectos. Juan plantea un problema habitual en oficinas té
- Diagrama de GANTT con Ruta Crítica (CPM) 1/4 TutorialCalcula la ruta crítica de un proceso para poder graficar la información automáticamente