=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).
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Product | Revenue | Units | Plain | With IFERROR |
| 2 | Pens | $120 | 80 | $1.50 | $1.50 |
| 3 | Paper | $300 | 50 | $6.00 | $6.00 |
| 4 | Ink | $90 | 0 | #DIV/0! | $0.00 |
| 5 | Tape | $45 | 30 | $1.50 | $1.50 |
| 6 | Clips | $0 | 0 | #DIV/0! | $0.00 |
=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 cuandovaluees cualquier error: #N/A, #¡VALOR! (#VALUE!), #¡REF! (#REF!), #¡DIV/0!, #¡NUM! (#NUM!), #¿NOMBRE? (#NAME?), #¡NULO! (#NULL!) y los más nuevos, como #CALC!.- Si
valueno 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:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | Pear | $1.50 | |
| 3 | Pear | Fruit | $1.50 | Kiwi | Not found | |
| 4 | Carrot | Vegetable | $0.80 | Milk | $1.10 | |
| 5 | Bread | Bakery | $2.40 | |||
| 6 | Milk | Dairy | $1.10 |
=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:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Look for | IFERROR | IFNA | |
| 2 | Apple | Fruit | 1.2 | Pear | Not found | #REF! | |
| 3 | Pear | Fruit | 1.5 | ||||
| 4 | Carrot | Vegetable | 0.8 | ||||
| 5 | Bread | Bakery | 2.4 | ||||
| 6 | Milk | Dairy | 1.1 |
=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:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Month | Last year | This year | Growth |
| 2 | Jan | 200 | 240 | 20% |
| 3 | Feb | 0 | 150 | |
| 4 | Mar | 180 | 171 | -5% |
| 5 | Apr | 90 | ||
| 6 | May | 250 | 300 | 20% |
=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
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Stock | Look for | Stock | ||
| 2 | Apple | 40 | Kiwi | |||
| 3 | Pear | 25 | ||||
| 4 | Carrot | 60 | ||||
| 5 | Bread | 12 | ||||
| 6 | Milk | 30 |
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:
- 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.
- 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.
- 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. - 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.