Este tutorial demuestra cómo usar la función IFERROR de Excel para detectar errores de fórmula, reemplazándolos con otra fórmula, valor en blanco, 0 o un mensaje personalizado.
Descripción general de la función IFERROR
La función IFERROR Comprueba si una fórmula da como resultado un error. Si es FALSO, devuelve el resultado original de la fórmula. Si es VERDADERO, devuelve otro valor especificado.
Para usar la función de hoja de cálculo de Excel IFERROR, seleccione una celda y escriba:
(Observe cómo aparecen las entradas de la fórmula)
Sintaxis y entradas de la función IFERROR:
= SI.ERROR (VALOR, valor_si_error)
valor - Una expresión. Ejemplo: 4 / A1
value_if_error - Valor o Cálculo a realizar si la entrada anterior da como resultado un error. Ejemplo 0 o "" (en blanco)
¿Qué es la función IFERROR?
La función IFERROR se incluye en la categoría de funciones lógicas en Microsoft Excel, que incluye ISNA, ISERROR e ISERR. Todas estas funciones ayudan a detectar y manejar errores de fórmulas.
IFERROR le permite realizar un cálculo. Si el calculo no da como resultado un error, se muestra el resultado del cálculo. Si el calculo lo hace da como resultado un error, luego se realiza otro cálculo (o se genera un valor estático como 0, en blanco o algún texto).
¿Cuándo usaría la función IFERROR?
- Al dividir números para evitar errores causados por dividir por 0
- Al realizar búsquedas para evitar errores si no se encuentra el valor.
- Cuando desee realizar otro cálculo si el primero da como resultado un error (p. Ej., Buscar un valor en un 2Dakota del Norte tabla si no se encuentra en la primera tabla)
Los errores de fórmula no manejados pueden causar errores dentro de su libro de trabajo, pero los errores visibles también hacen que su hoja de cálculo sea menos atractiva visiblemente.
Si hay error, entonces 0
Veamos un ejemplo básico. A continuación, está dividiendo dos números. Si intenta dividir por cero, recibirá un error:
En su lugar, inserte el cálculo dentro de la función SI.ERROR y si divide por cero se genera un 0 en lugar de un error:
= SIERROR (A2 / B2,0)
Si hay error, entonces en blanco
En lugar de establecer los errores en 0, puede establecerlos en "blanco" con comillas dobles (""):
= SI.ERROR (A2 / B2, "")
Veremos más usos de IFERROR con la función BUSCARV …
IFERROR con BUSCARV
Las funciones de búsqueda como BUSCARV generarán errores si no se encuentra el valor de búsqueda. Como se muestra arriba, puede usar la función IFERROR para reemplazar los errores con espacios en blanco ("") o ceros:
= SI.ERROR (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE), "no encontrado")
Si hay un error, haga algo más
La función IFERROR también se puede utilizar para realizar un segundo cálculo si el primer cálculo da como resultado un error:
= SI.ERROR (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE), VLOOKUP (A2, LookupTable2! $ A $ 2: $ B $ 4,2, FALSE))
Aquí, si los datos no se encuentran en "LookupTable1", se realiza una VLOOKUP en "LookupTable2" en su lugar.
Más ejemplos de fórmulas IFERROR
IFERROR anidado - VLOOKUP Varias hojas
Puede anidar un IFERROR dentro de otro IFERROR para realizar 3 cálculos separados. Aquí usaremos dos IFERROR para realizar BUSCARV en 3 hojas de trabajo separadas:
= SI.ERROR (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE), IFERROR (VLOOKUP (A2, LookupTable2! $ A $ 2: $ B $ 4,2, FALSE), VLOOKUP (A2, LookupTable3! $ A $ 2: $ B $ 4,2, FALSO)))
Índice / Coincidencia y XLOOKUP
Por supuesto, IFERROR también funcionará con las fórmulas Index / Match y XLOOKUP.
SI ERROR XLOOKUP
La función BUSCAR X es una versión avanzada de la función BUSCARV.
= SI.ERROR (XLOOKUP (A2, LookupTable1! $ A $ 2: $ A $ 4, LookupTable1! $ B $ 2: $ B $ 4), "No encontrado")
IFERROR INDEX / MATCH
INDEX y MATCH se pueden usar para crear VLOOKUP más potentes (similar a cómo funciona la nueva función XLOOKUP) en Excel.
= SI.ERROR (INDICE (LookupTable1! $ B $ 2: $ B $ 4, MATCH (A3, LookupTable1! $ A $ 2: $ A $ 4,0)), "No encontrado")
IFERROR en matrices
Las fórmulas de matriz en Excel se utilizan para realizar varios cálculos a través de una sola fórmula. Supongamos que hay tres columnas de Año, Ventas y Precio medio. Puede averiguar la cantidad total con la siguiente fórmula en la columna E.
{= SUMA ($ B $ 2: $ B $ 4 / $ C $ 2: $ C $ 4)}
La fórmula funciona bien hasta que intenta dividir por cero, lo que da como resultado el # DIV / 0! error.
Puede usar la función IFERROR como esta para resolver el error:
{= SUMA (SI.ERROR ($ B $ 2: $ B $ 4 / $ C $ 2: $ C $ 4,0))}
Tenga en cuenta que la función IFERROR debe estar anidada dentro de la función SUM; de lo contrario, IFERROR se aplicará a la suma total y no a cada elemento individual de la matriz.
IFNA frente a IFERROR
La función IFNA funciona exactamente igual que la función IFERROR, excepto que la función IFNA solo detectará errores # N / A. Esto es extremadamente útil cuando se trabaja con funciones de búsqueda: aún se detectarán errores de fórmulas regulares, pero no aparecerá ningún error si no se encuentra el valor de búsqueda.
= IFNA (VLOOKUP (A2, LookupTable1! $ A $ 2: $ B $ 4,2, FALSE), "No encontrado")
Si ISERROR
Si todavía usa Microsoft Excel 2003 o una versión anterior, puede sustituir IFERROR con una combinación de IF e ISERROR. A continuación, se muestra un breve ejemplo:
= SI (ESERROR (A2 / B2), 0, A2 / B2)
IFERROR en Hojas de cálculo de Google
La función IFERROR funciona exactamente igual en Google Sheets que en Excel:
Ejemplos de IFERROR en VBA
VBA no tiene una función IFERROR incorporada, pero también puede acceder a la función IFERROR de Excel desde VBA:
Dim n mientras n = Application.WorksheetFunction.IfError (Value, value_if_error)
Application.WorksheetFunction le da acceso a muchas (no todas) funciones de Excel en VBA.
Normalmente, IFERROR se utiliza al leer valores de celdas. Si una celda contiene un error, VBA puede generar un mensaje de error al intentar procesar el valor de la celda. Pruebe esto con el código de ejemplo a continuación (donde la celda B2 contiene un error):
Sub IFERROR_VBA () Dim n As Long, m As Long 'IFERROR n = Application.WorksheetFunction.IfError (Range ("b2"). Value, 0)' No IFERROR m = Range ("b2"). Value End Sub
El código asigna la celda B2 a una variable. La segunda asignación de variable arroja un error porque el valor de la celda es # N / A, pero la primera funciona bien debido a la función IFERROR.
También puede usar VBA para crear una fórmula que contenga la función IFERROR:
Rango ("C2"). FórmulaR1C1 = "= SIERROR (RC [-2] / RC [-1], 0)"
El manejo de errores en VBA es muy diferente al de Excel. Normalmente, para manejar errores en VBA, utilizará VBA Error Handling. El manejo de errores de VBA se ve así:
Sub TestWS () MsgBox DoesWSExist ("test") End Sub Función DoesWSExist (wsName As String) As Boolean Dim ws As Worksheet On Error Resume Next Set ws = Sheets (wsName) 'Si el error WS no existe Si Err.Number 0 Entonces DoesWSExist = False Else DoesWSExist = True End If On Error GoTo -1 End Function
Aviso que usamos Si Err.Number 0 Entonces para identificar si ha ocurrido un error. Esta es una forma típica de detectar errores en VBA. Sin embargo, la función IFERROR tiene algunos usos al interactuar con celdas de Excel.