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.
=SI.ERROR(valor; valor_si_error)valorvalor_si_errorEncabezados en la fila 1, datos en A2:C5.
| A | B | C | |
|---|---|---|---|
| 1 | Comercial | Ventas | Objetivo |
| 2 | Alicia | 1240 | 1000 |
| 3 | Bruno | 385 | 1000 |
| 4 | Chen | 2100 | 1500 |
| 5 | Dana | 940 | 0 |
=B5/C5Resultado: #¡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.
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é.
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.
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.
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.
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.
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.
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.
Lecturas más largas donde esta función hace trabajo real en una hoja real.