Lógica y control de errores

Función SI.ERROR en Excel: sustituir errores por algo legible

Ejecuta una fórmula y devuelve un valor tuyo si esta produce un error.

SI.ERROR envuelve una fórmula y captura lo que salga mal en ella. Si la fórmula funciona, obtienes su resultado; si produce cualquier error, obtienes la alternativa que hayas indicado. Existe porque una hoja llena de #¡DIV/0! y #N/D es ilegible, y porque esos errores se propagan: un solo #N/D en una columna convierte también en #N/D la SUMA que hay al final.

Los usos clásicos son la división cuando el denominador puede ser cero y las búsquedas cuando el valor puede faltar de verdad. En ambos casos el error es esperable y no le dice nada a quien lee, y sustituirlo por un blanco o una etiqueta corta hace la hoja utilizable.

El peligro es que SI.ERROR lo captura todo, incluidos los fallos que preferirías conocer. Una errata en un nombre de rango produce #¿NOMBRE?, y SI.ERROR lo sustituirá en silencio por «No encontrado» como si fuera una ausencia legítima. Cuando esperas concretamente que falle una búsqueda, SI.ND es la opción más segura: solo captura #N/D y deja pasar los errores reales.

Sintaxis

=SI.ERROR(valor; valor_si_error)

Argumentos

valor
Obligatorio
La fórmula que se intenta. Normalmente una división o una búsqueda.
valor_si_error
Obligatorio
Qué devolver si da error. A menudo "" para dejarlo en blanco, o una etiqueta corta como "No encontrado".

Los datos de ejemplo

Encabezados en la fila 1, datos en A2:C5.

ABC
1ComercialVentasObjetivo
2Alicia12401000
3Bruno3851000
4Chen21001500
5Dana9400

Ejemplos resueltos

=B5/C5

Resultado: #¡DIV/0!

El objetivo de Dana es 0, así que la división falla. Si se deja así, contaminará cualquier total construido sobre la columna.

=SI.ERROR(B5/C5; "Sin objetivo")

Resultado: Sin objetivo

La misma división, con el error sustituido por algo que se entiende.

=SI.ERROR(B2/C2; "Sin objetivo")

Resultado: 1,24

Cuando la fórmula funciona, SI.ERROR es invisible: devuelve el resultado sin cambios.

=SI.ERROR(BUSCARV("Eva"; A2:C5; 2; FALSO); 0)

Resultado: 0

Una búsqueda fallida que devuelve 0 en lugar de #N/D, para que la columna se pueda seguir sumando.

Ahora practícala

Leer sobre una fórmula no es lo mismo que escribirla. Abre el ejercicio de esta función y escríbela en una hoja real: recibirás comentarios inmediatos sobre qué celda está mal y por qué.

Abrir el ejercicio: Función SI.ERROR

Errores habituales y cómo resolverlos

Se está ocultando un fallo real

Por qué ocurre: SI.ERROR captura todos los tipos de error, así que una referencia rota o un nombre de función mal escrito quedan sustituidos en silencio por tu alternativa.

Cómo resolverlo: Usa SI.ND cuando solo pretendas capturar una búsqueda fallida. Quita el SI.ERROR temporalmente cuando una fórmula dé un resultado inesperado: el error de debajo suele ser la explicación.

Los totales salen mal después de envolver

Por qué ocurre: La alternativa es texto ("No encontrado") en una columna numérica, así que SUMA ignora esas filas.

Cómo resolverlo: Devuelve 0 en lugar de texto cuando la columna alimente cálculos, y reserva el texto para columnas pensadas para leerse.

#¿NOMBRE?

Por qué ocurre: La versión de Excel es anterior a SI.ERROR, que llegó con Excel 2007.

Cómo resolverlo: Usa el patrón antiguo =SI(ESERROR(fórmula); alternativa; fórmula), que evalúa la fórmula dos veces pero funciona en todas partes.

Consejos que conviene saber

  • Devuelve "" para un informe de aspecto limpio, pero 0 cuando la columna vaya a sumarse.
  • Prefiere SI.ND a SI.ERROR en las búsquedas: captura solo el caso del valor ausente y deja visibles los fallos reales.
  • BUSCARX lleva incorporado un argumento para el caso «no encontrado», así que rara vez necesita envolverse.
  • No envuelvas una fórmula complicada entera por costumbre. Envuelve la parte concreta que puede fallar de forma legítima.

Preguntas frecuentes

¿Qué diferencia hay entre SI.ERROR y SI.ND?

SI.ERROR captura todos los errores: #N/D, #¡DIV/0!, #¡VALOR!, #¡REF!, #¿NOMBRE?, #¡NUM! y #¡NULO!. SI.ND captura solo #N/D. En las búsquedas, SI.ND suele ser lo correcto: que falte un valor es esperable, pero un #¡REF! significa que tu fórmula está rota y quieres verlo.

¿SI.ERROR ralentiza la hoja?

Apenas. A diferencia del patrón antiguo SI(ESERROR(...)), que evalúa la fórmula dos veces, SI.ERROR la evalúa una sola vez. En modelos muy grandes la diferencia es medible en el otro sentido: SI.ERROR es la más rápida de las dos.

¿Debería envolver todas mis fórmulas en SI.ERROR?

No. Envolverlo todo oculta los errores que te avisan de que algo va realmente mal, y un error que aparece meses después en un informe que nadie ha revisado sale mucho más caro que uno que aparece de inmediato. Envuelve solo donde el fallo sea esperable e inofensivo.

Funciones relacionadas

Guías que la usan

Lecturas más largas donde esta función hace trabajo real en una hoja real.