Ejecuta una fórmula y devuelve un valor tuyo solo si produce #N/D.
SI.ND es SI.ERROR con una red más estrecha. SI.ERROR captura todos los errores que existen; SI.ND captura solo #N/D y deja pasar el resto. Suena a una distinción menor y es la diferencia entre una hoja que oculta sus problemas y una que no.
El caso para el que está pensada es una búsqueda que puede fallar de forma legítima. Un BUSCARV de un producto que realmente no está en el catálogo devuelve #N/D, y sustituirlo por "Sin stock" es exactamente lo correcto. Pero si a esa misma fórmula se le rompe la referencia de rango, devuelve #¡REF!, y SI.ERROR lo sustituiría también por "Sin stock", informando de una fórmula rota como si fuera un producto que falta.
Así que la regla es simple. Usa SI.ND alrededor de las búsquedas, donde un fallo es esperable y cualquier otro error significa que algo va mal. Usa SI.ERROR solo donde de verdad quieras tratar todos los fallos igual, que es más raro de lo que sugiere su popularidad.
=SI.ND(valor; valor_si_nd)valorvalor_si_ndUna tabla dispuesta en horizontal: etiquetas en la fila 1, datos en las filas 2 y 3.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Métrica | T1 | T2 | T3 | T4 |
| 2 | Ingresos | 48000 | 52500 | 61000 | 74500 |
| 3 | Plantilla | 12 | 12 | 14 | 17 |
=SI.ND(BUSCARH("T5"; A1:E3; 2; FALSO); "Sin datos")Resultado: Sin datos
T5 no existe en la tabla, así que el #N/D se convierte en algo con lo que quien lea puede hacer algo.
=SI.ND(BUSCARH("T3"; A1:E3; 2; FALSO); "Sin datos")Resultado: 61000
Cuando la búsqueda funciona, SI.ND es invisible y devuelve el resultado sin cambios.
=SI.ND(BUSCARH("T3"; A1:E3; 9; FALSO); "Sin datos")Resultado: #¡REF!
El sentido de la función. La fila 9 no existe, lo que es una fórmula rota y no un valor ausente, y SI.ND lo deja ver. SI.ERROR lo habría ocultado.
=SI.ND(BUSCARH("T5"; A1:E3; 2; FALSO); 0)Resultado: 0
Devolver 0 en lugar de texto, para que la columna se pueda seguir sumando después.
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: Es SI.ND funcionando bien: solo captura #N/D.
Cómo resolverlo: Arregla la fórmula de debajo. Si de verdad quieres capturar todos los errores, SI.ERROR es la función adecuada, pero asegúrate de que es lo que quieres decir.
Por qué ocurre: SI.ND llegó con Excel 2013 y las versiones anteriores no la tienen.
Cómo resolverlo: Usa =SI(ESND(fórmula); alternativa; fórmula), que funciona en todas partes pero evalúa la fórmula dos veces.
Por qué ocurre: La alternativa es texto dentro de una columna numérica, así que SUMA omite esas filas.
Cómo resolverlo: Devuelve 0 en lugar de texto allí donde la columna alimente cálculos.
SI.ERROR captura todos los tipos de error: #N/D, #¡REF!, #¡VALOR!, #¡DIV/0!, #¿NOMBRE?, #¡NUM! y #¡NULO!. SI.ND captura solo #N/D. En las búsquedas, SI.ND es casi siempre la correcta: que falte un valor es esperable, pero un #¡REF! significa que la fórmula está rota y necesitas verlo.
Normalmente no. BUSCARX admite un valor para «no encontrado» como cuarto argumento, que resuelve el mismo caso sin envoltorio. SI.ND sigue siendo útil alrededor de BUSCARV, INDICE/COINCIDIR y cualquier otra cosa sin alternativa incorporada.
Excel 2013 y posteriores. En versiones anteriores el equivalente es =SI(ESND(fórmula); alternativa; fórmula), que funciona igual pero evalúa la fórmula dos veces y es proporcionalmente más lento en modelos grandes.
Lecturas más largas donde esta función hace trabajo real en una hoja real.