Función SI.ERROR en Excel, VBA y Google Sheets **Actualización 2022**.
Este tutorial muestra cómo utilizar la Función SI.ERROR de Excel para detectar errores de fórmula, sustituyéndolos por otra fórmula, un valor en blanco, 0 o un mensaje personalizado.
¿Qué es la Función SI.ERROR?
SI.ERRO le permite realizar un cálculo. Si el cálculo no resulta en un error, entonces se muestra el resultado del cálculo. Si el cálculo hecho resulta en un error, entonces se realiza otro cálculo (o se muestra un valor estático como 0, en blanco, o algún texto).
¿Cuándo se Utiliza la Función SI.ERROR?
- Al dividir números para evitar errores causados por la división por 0
- Cuando se realizan búsquedas para evitar errores si no se encuentra el valor.
- Cuando se desea realizar otro cálculo si el primero da lugar a un error (por ejemplo, buscar un valor en una 2da tabla si no se encuentra en la primera)
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.
SI.ERROR Entonces 0
Veamos un ejemplo básico. A continuación está dividiendo dos números. Si intentas dividir por cero recibirás un error:
En su lugar, inserta el cálculo dentro de la función SI.ERROR y si divides por cero saldrá un 0 en lugar de un error:
=SI.ERROR(A2/B2;0)
SI.ERROR Entonces Blanco
En lugar de poner los errores a 0, puede ponerlos en ‘blanco’ con comillas dobles («»):
=SI.ERROR(A2/B2;"")
Veremos más usos de SI.ERROR con la función BUSCARV…
SI.ERROR con BUSCARV
Las funciones de búsqueda como BUSCARV generarán errores si el valor de búsqueda no se encuentra. Como se muestra arriba, puede usar la función SI.ERROR para reemplazar los errores con espacios en blanco («») o ceros:
=SI.ERROR(BUSCARV(A2;ventas1;2;FALSO);0)
SI.ERROR Entonces, Haga Otra Cosa
La función SI.ERROR también se puede utilizar para realizar un segundo cálculo si el primer cálculo da lugar a un error:
=SI.ERROR(BUSCARV(A2;ventas1;2;FALSO);BUSCARV(A2;ventas2;2;FALSO))
Aquí, si los datos no se encuentran en ‘ventas1’ se realiza un BUSCARV en ‘ventas2’ en su lugar.
Más Ejemplos de Fórmulas SI.ERROR
SI.ERROR Anidado – BUSCARV Múltiples Hojas
Puede anidar un SI.ERROR dentro de otro SI.ERROR para realizar 3 cálculos separados. Aquí usaremos dos SI.ERRORs para realizar BUSCARVs en 3 hojas de trabajo separadas:
=SI.ERROR(BUSCARV(A2;Tabla1!$A$2:$B$4;2;FALSO);
SI.ERROR(BUSCARV(A2;Tabla2!$A$2:$B$4;2;FALSO);
BUSCARV(A2;Tabla3!$A$2:$B$4;2;FALSO)))
INDICE/ COINCIDIR y BUSCARX
Por supuesto, SI.ERROR también funcionará con las fórmulas INDICE / COINCIDIR y BUSCARX.
SI.ERROR – BUSCARX
La función BUSCARX es una versión avanzada de la función BUSCARV.
=SI.ERROR(BUSCARX(A2;Tabla1!$A$2:$A$4;Tabla1!$B$2:$B$4);"No Encontrado!")
SI.ERROR – INDICE – COINCIDIR
INDICE y COINCIDIR pueden utilizarse para crear BUSCARVs más potentes (de forma similar a como funciona la nueva función BUSCARX) en Excel.
=SI.ERROR(INDICE(Tabla1!$B$2:$B$4;COINCIDIR(A2;Tabla1!$A$2:$A$4;0));"No Encontrado!")
SI.ERROR en Matrices
Las fórmulas de matrices 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. Puedes 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, dando como resultado el error #DIV/0!
Puede utilizar la función SI.ERROR así para resolver el error:
{=SUMA(SI.ERROR($B$2:$B$4/$C$2:$C$4;0))}
Tenga en cuenta que la función SI.ERROR debe estar anidada dentro de la función SUMA, de lo contrario el SI.ERROR se aplicará a la suma total y no a cada elemento individual de la matriz.
SI.ND vs. SI.ERROR
La función SI.ND funciona exactamente igual que la función SI.ERROR, excepto que la función SI.ND sólo detectará los errores #N/D. Esto es extremadamente útil cuando se trabaja con funciones de búsqueda: los errores de fórmulas regulares seguirán siendo detectados, pero no aparecerá ningún error si no se encuentra el valor de búsqueda.
=SI.ND(BUSCARV(A2;Tabla1!$A$2:$B$4;2;FALSO);"No Encontrado!")
SI – ESERROR
Si todavía utiliza Microsoft Excel 2003 o una versión anterior, puede sustituir SI.ERROR por una combinación de SI e ESERROR. He aquí un breve ejemplo:
=SI(ESERROR(A2/B2);0;A2/B2)
SI.ERROR en Google Sheets
La función SI.ERROR funciona exactamente igual en Google Sheets que en Excel:
Ejemplos de IFERROR (SI.ERROR) en VBA
VBA no tiene una función IFERROR incorporada, pero también puedes acceder a la función IFERROR de Excel desde VBA:
Dim n as long
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 cuando se leen valores de las celdas. Si una celda contiene un error, VBA puede lanzar un mensaje de error al intentar procesar el valor de la celda. Pruebe esto con el código de ejemplo de abajo (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/D, pero la primera funciona bien debido a la función IFERROR.
También puedes usar VBA para crear una fórmula que contenga la función IFERROR:
Range("C2").FormulaR1C1 = "=IFERROR(RC[-2]/RC[-1];0)"
El manejo de errores en VBA es muy diferente al de Excel. Típicamente, para manejar los errores en VBA, usted utilizará el Manejo de Errores de VBA. El manejo de errores en VBA se ve así:
Sub TestHoja()
MsgBox hojaExiste("test")
End Sub
Function hojaExiste(wsName As String) As Boolean
Dim ws As Worksheet
On Error Resume Next
Set ws = Sheets(wsName)
'Si hay error, la hoja no existe
If Err.Number <> 0 Then
DoesWSExist = False
Else
DoesWSExist = True
End If
On Error GoTo -1
End Function
Observe que utilizamos If Err.Number <> 0 Then para identificar si se ha producido un error. Esta es una forma típica de detectar errores en VBA. Sin embargo, la función IFERROR tiene algunos usos cuando se interactúa con las celdas de Excel.