Menu

SI.ERROR en Excel: reemplazar #N/A y #¡DIV/0! (y SI.ND)

=SI.ERROR(B2/C2;0) devuelve B2/C2, o 0 cuando la división da un error. Aprende SI.ERROR con BUSCARV, cómo devolver una celda vacía en lugar de un error, por qué SI.ND es mejor para las búsquedas y por qué ocultar todos los errores puede ocultar fallos reales.

Todas las hojas de esta página están vivas: cambia un número o una fórmula y se recalculan.

=SI.ERROR(B2/C2;0) devuelve el resultado de B2/C2, o 0 cuando ese resultado es un error. El primer argumento es la fórmula que quieres; el segundo, lo que se muestra en lugar de cualquier error que produzca. La función SI.ERROR se llama IFERROR en inglés, y la tabla muestra la fórmula así: =IFERROR(B2/C2,0). La tabla también acepta las fórmulas escritas en español, con punto y coma (o con comas, como en México).

Precio por unidad
E2
ABCDE
1ProductRevenueUnitsPlainWith IFERROR
2Pens$12080$1.50$1.50
3Paper$30050$6.00$6.00
4Ink$900#DIV/0!$0.00
5Tape$4530$1.50$1.50
6Clips$00#DIV/0!$0.00
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =SI.ERROR(B2/C2;0)

Ink y Clips tienen 0 unidades, así que la división simple de la columna D muestra #DIV/0! (en Excel en español, #¡DIV/0!; la tabla muestra los nombres de error en inglés). La columna E muestra $0.00 para ellos y el precio normal en las demás filas. Escribe 15 en C4 y las dos columnas muestran el precio de Ink.

Sintaxis de SI.ERROR

=IFERROR(value, value_if_error)
  • value (valor) es la fórmula que se calcula.
  • value_if_error (valor_si_error) es lo que se devuelve cuando value es cualquier error: #N/A, #¡VALOR! (#VALUE!), #¡REF! (#REF!), #¡DIV/0!, #¡NUM! (#NUM!), #¿NOMBRE? (#NAME?), #¡NULO! (#NULL!) y los más nuevos, como #CALC!.
  • Si value no es un error, SI.ERROR lo devuelve sin cambios.

El reemplazo puede ser un número (0), un texto ("Not found"), un texto vacío ("") u otra fórmula, por ejemplo una segunda búsqueda en otra tabla: =SI.ERROR(BUSCARV(E2;A2:C6;3;FALSO);BUSCARV(E2;G2:I6;3;FALSO)).

SI.ERROR con BUSCARV

Una búsqueda devuelve #N/A cuando el valor no está en la tabla. Si la envuelves en SI.ERROR, muestra un mensaje en su lugar. BUSCARV se llama VLOOKUP en inglés:

Buscar un precio
F2
ABCDEF
1ProductCategoryPriceLook forPrice
2AppleFruit$1.20Pear$1.50
3PearFruit$1.50KiwiNot found
4CarrotVegetable$0.80Milk$1.10
5BreadBakery$2.40
6MilkDairy$1.10
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =SI.ERROR(BUSCARV(E2;$A$2:$C$6;3;FALSO);"Not found")

Kiwi no está en la lista, así que F3 dice Not found. Escribe Kiwi en A4 en lugar de Carrot y F3 lo encuentra. Con BUSCARX (XLOOKUP en inglés) no necesitas SI.ERROR para esto, porque su cuarto argumento es el valor de "no encontrado": =BUSCARX(E2;A2:A6;C2:C6;"Not found").

SI.ND: capturar solo #N/A

SI.ND (IFNA en inglés) funciona como SI.ERROR, pero solo reemplaza #N/A. En las búsquedas suele ser lo que quieres: #N/A significa "no encontrado", que es una respuesta normal, mientras que cualquier otro error significa que la propia fórmula está mal. En esta hoja las fórmulas piden la columna 4 de una tabla de tres columnas, una errata:

SI.ERROR oculta una errata, SI.ND la muestra
F2
ABCDEFG
1ProductCategoryPriceLook forIFERRORIFNA
2AppleFruit1.2PearNot found#REF!
3PearFruit1.5
4CarrotVegetable0.8
5BreadBakery2.4
6MilkDairy1.1
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =SI.ERROR(BUSCARV(E2;$A$2:$C$6;4;FALSO);"Not found")

Pear está en la tabla, y aun así F2 dice Not found: SI.ERROR convirtió el #REF! del número de columna equivocado en el mismo mensaje que un producto que falta. G2 deja pasar el #REF!, así que ves que la fórmula está rota. Cambia el 4 por un 3 en G2 y devuelve 1.5. SI.ND necesita Excel 2013 o posterior.

Devolver una celda vacía en lugar de un error

Para no mostrar nada, usa como reemplazo un texto vacío, dos comillas dobles:

Crecimiento con vacíos en los errores
D2
ABCD
1MonthLast yearThis yearGrowth
2Jan20024020%
3Feb0150
4Mar180171-5%
5Apr90
6May25030020%
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =SI.ERROR((C2-B2)/B2;"")

Febrero y abril no tuvieron ventas el año pasado, así que su crecimiento no se puede calcular y la celda queda vacía. Los otros meses muestran 20%, menos 5% y 20%. Una celda con "" contiene texto: SUMA y PROMEDIO la omiten, pero =D3*2 da #¡VALOR!. Si fórmulas posteriores hacen cálculos con la columna, devuelve 0 en su lugar.

Práctica: buscar con un valor alternativo

Búsqueda de stock
F2
ABCDEF
1ProductStockLook forStock
2Apple40Kiwi
3Pear25
4Carrot60
5Bread12
6Milk30
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.

Tu turno: En F2, busca el stock del producto de E2 en A2:B6, y muestra "Not found" cuando no esté en la lista.

Por qué ocultar todos los errores puede ocultar fallos

SI.ERROR no arregla nada; decide lo que muestra la celda. Antes de envolver una fórmula con ella:

  1. Averigua por qué aparece el error. Cuando una celda Units vacía provoca #¡DIV/0!, la solución real puede ser un dato que alguien debe introducir, no un precio de cero.
  2. Usa SI.ND en las búsquedas, para que un número de columna equivocado (#¡REF!), un nombre mal escrito (#¿NOMBRE?) o un texto en una columna de números (#¡VALOR!) se sigan viendo.
  3. En las divisiones, comprueba el caso concreto. =SI(C2=0;0;B2/C2) maneja un divisor cero y nada más; una referencia equivocada en B2 sigue mostrando su error. La página de #¡DIV/0! compara los dos enfoques.
  4. Elige un reemplazo que no se pueda confundir con un dato. Un 0 en una columna de precios parece un precio real y baja el promedio; "" o "Not found", no.

Envuelve la fórmula al final, cuando ya dé el resultado correcto en las filas que deben funcionar.

Preguntas frecuentes

¿Cómo uso SI.ERROR con BUSCARV?

Envuelve la búsqueda: =SI.ERROR(BUSCARV(E2;A2:C6;3;FALSO);"Not found"). Cuando E2 no está en la primera columna, la celda muestra Not found en lugar de #N/A. =SI.ND(BUSCARV(E2;A2:C6;3;FALSO);"Not found") hace lo mismo y sigue mostrando los demás errores.

¿Cómo hago que SI.ERROR devuelva una celda vacía?

Usa un texto vacío como segundo argumento: =SI.ERROR(B2/C2;""). La celda parece vacía, pero contiene texto, así que =D2+1 sobre ella da #¡VALOR!; SUMA y PROMEDIO la omiten.

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

SI.ERROR reemplaza cualquier error: #N/A, #¡DIV/0!, #¡VALOR!, #¡REF!, #¿NOMBRE?, #¡NUM! y #¡NULO!. SI.ND reemplaza solo #N/A, el "no encontrado" de las búsquedas, y deja ver cualquier otro error, así que una fórmula rota no queda oculta.

¿Cómo reemplazo #N/A por 0 en Excel?

Envuelve la fórmula en SI.ND con 0 como valor: =SI.ND(BUSCARV(E2;A2:C6;3;FALSO);0). BUSCARX trae el reemplazo incorporado como cuarto argumento: =BUSCARX(E2;A2:A6;C2:C6;0).

¿Qué versiones de Excel tienen SI.ERROR y SI.ND?

SI.ERROR existe desde Excel 2007 y SI.ND desde Excel 2013. En archivos antiguos puedes ver =SI(ESERROR(B2/C2);0;B2/C2), que hace lo mismo que SI.ERROR pero calcula la fórmula dos veces.

Ilustración de los lenguajes de programación de Coddy

Aprende a programar con Coddy

COMENZAR