La función SI.ND (o IFNA en inglés) evalúa una expresión o el valor de una celda y, si el resultado es el error #N/A (No disponible), devuelve un valor alternativo que tú especifiques. Si el resultado es cualquier otro valor o error, la función devuelve el resultado original de la expresión.
Es especialmente útil para gestionar los errores que suelen devolver las funciones de búsqueda como BUSCARV, BUSCARH, COINCIDIR o BUSCARX cuando no encuentran el valor buscado.
Sintaxis
=SI.ND(valor, valor_si_nd)
La función SI.ND tiene los siguientes argumentos:
- valor: La expresión, fórmula o referencia de celda que se va a comprobar. Obligatorio.
- valor_si_nd: El valor que se devolverá si el primer argumento da como resultado el error #N/A. Puede ser un texto, un número, una referencia a otra celda o incluso otra fórmula. Obligatorio.
Ejemplos
Imaginemos que tenemos una lista de productos con su ID y stock en una tabla como la siguiente:
| A | B | |
|---|---|---|
| 1 | ID Producto | Stock |
| 2 | PROD-001 | 150 |
| 3 | PROD-002 | 85 |
| 4 | PROD-003 | 0 |
Ejemplo 1: Búsqueda con resultado encontrado
Si buscamos un producto que sí existe en la lista, la función SI.ND devolverá el resultado de la búsqueda sin alteración.
=SI.ND(BUSCARV("PROD-002", A2:B4, 2, FALSO), "Producto no encontrado")
Resultado: 85
En este caso, BUSCARV encuentra «PROD-002» y devuelve 85. Como no hay un error #N/A, SI.ND muestra ese resultado.
Ejemplo 2: Búsqueda con resultado #N/A
Si intentamos buscar un producto que no está en la lista, BUSCARV devolvería #N/A. Aquí es donde SI.ND actúa, reemplazando el error por nuestro mensaje personalizado.
=SI.ND(BUSCARV("PROD-005", A2:B4, 2, FALSO), "Producto no encontrado")
Resultado: Producto no encontrado
Como «PROD-005» no existe, BUSCARV genera un #N/A, y SI.ND lo intercepta para devolver el segundo argumento.
Ejemplo 3: Diferencia con SI.ERROR
Es importante distinguir SI.ND de SI.ERROR. SI.ND solo gestiona el error #N/A, mientras que SI.ERROR captura cualquier tipo de error (#¡DIV/0!, #¡VALOR!, #¡REF!, etc.).
=SI.ND(1/0, "Hubo un error")
Resultado: #¡DIV/0!
La fórmula anterior sigue devolviendo el error original porque SI.ND no está diseñado para capturar errores de división por cero.
=SI.ERROR(1/0, "Hubo un error")
Resultado: Hubo un error
En este caso, SI.ERROR sí captura el error y devuelve el mensaje personalizado.
Observaciones
La función SI.ND es una forma más elegante y eficiente de realizar la siguiente construcción con las funciones SI y ESNOD:
=SI(ESNOD(fórmula), valor_alternativo, fórmula)
El principal inconveniente de la fórmula anterior es que Excel tiene que evaluar la fórmula dos veces (una para la comprobación y otra para el resultado), lo que puede afectar al rendimiento en hojas de cálculo muy grandes y complejas. SI.ND solo la evalúa una vez.
Disponibilidad por versión de Excel
La función SI.ND está disponible en Excel 2013 y versiones posteriores, incluyendo Microsoft 365.
Compatibilidad
| Software | Compatibilidad | Notas | Alternativa |
|---|---|---|---|
| Microsoft Excel | ✔️ | A partir de Excel 2013. | |
| Google Sheets | ✔️ | ||
| LibreOffice Calc | ✔️ | Disponible a partir de la versión 4.0. | |
| OpenOffice Calc | ❌ | No está implementada. | =SI(ESNOD(valor); valor_si_nd; valor) |
| WPS Office Spreadsheets | ✔️ | ||
| Apple Numbers | ✔️ |
Funciones Relacionadas
- SI.ERROR: Similar a SI.ND, pero captura cualquier tipo de error, no solo #N/A.
- ESNOD: Comprueba si un valor es el error #N/A y devuelve VERDADERO o FALSO. Es la base lógica que SI.ND simplifica.
- BUSCARV: Una de las funciones de búsqueda que más comúnmente produce el error #N/A cuando no encuentra un valor.
- SI: Permite realizar pruebas lógicas y devolver un valor si la prueba es verdadera y otro si es falsa. Se puede combinar con ESNOD para replicar el comportamiento de SI.ND.
