Tabla de contenido
El tutorial examina los usos prácticos de la función ISERROR de Excel y muestra cómo comprobar si hay errores en diferentes fórmulas.
Cuando escribe una fórmula que Excel no entiende o no puede calcular, le llama la atención sobre el problema mostrando un mensaje de error. La función ISERROR puede ayudarle a detectar errores y proporcionar una alternativa cuando se encuentra un error.
Función ISERROR en Excel
La función ISERROR de Excel detecta todo tipo de errores, incluidos #CALC!, #DIV/0!, #N/A, #NAME?, #NUM!, #NULL!, #REF!, #VALUE! y #SPILL! El resultado es un valor booleano: TRUE si se detecta un error, FALSE en caso contrario.
La función está disponible en todas las versiones de Excel 2000 a 2021 y Excel 365.
La sintaxis de la función ISERROR es así de sencilla:
ISERROR(valor)Dónde valor es el valor de la celda o la fórmula que se va a comprobar si hay errores.
Fórmula ISERROR de Excel
Para crear una fórmula ISERROR en su forma más simple, proporcione una referencia a la celda en la que desea comprobar si hay errores. Por ejemplo:
=ISERROR(A2)
Si se encuentra algún error, obtendrá TRUE. Si no hay ningún error en la celda analizada, obtendrá FALSE:
Fórmula IF ISERROR en Excel
Para devolver un mensaje personalizado o realizar un cálculo diferente cuando se produce un error, utilice ISERROR junto con la función IF. La fórmula genérica tiene el siguiente aspecto:
IF(ISERROR( fórmula (...), text_or_calculation_if_error , fórmula ())Traducido a un lenguaje humano, dice: si la fórmula principal produce un error, muestre el texto especificado o ejecute otro cálculo, de lo contrario devuelva un resultado normal de la fórmula.
En la imagen siguiente, la división del total por la cantidad genera un par de errores en el Precio columna:
Para sustituir todos los códigos de error diferentes por un texto personalizado, puede utilizar la siguiente fórmula IF ISERROR:
=IF(ISERROR(A2/B2), "Desconocido", A2/B2)
En Excel 2007 y versiones posteriores, se puede conseguir el mismo resultado con la ayuda de la función incorporada IFERROR:
=IFERROR(A2/B2, "Desconocido")
Debe tenerse en cuenta que la fórmula IFERROR se ejecuta un poco más rápido porque realiza el cálculo A2/B2 sólo una vez. Mientras que IF ISERROR lo calcula dos veces - primero para ver si genera un error y luego otra vez si la prueba es FALSE.
IF ISERROR Fórmula VLOOKUP
El uso de ISERROR con VLOOKUP es, de hecho, un caso particular de la fórmula IF ISERROR comentada anteriormente. Cuando la función VLOOKUP no puede encontrar el valor de búsqueda o falla por cualquier otra razón, se muestra un mensaje de texto personalizado utilizando esta sintaxis:
IF(ISERROR(VLOOKUP(...)), " texto_personalizado ", VLOOKUP(...))En este ejemplo, vamos a extraer las horas de la tabla de consulta (D3:E10) para la tabla principal (A3:B15). Si el valor de consulta (nombre del participante) no existe en la tabla de consulta, devolveremos "No cualificado".
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "No cualificado", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
Sugerencia: si desea mostrar un texto personalizado sólo cuando un no se encuentra el valor de búsqueda (error #N/A) ignorando otros errores, entonces utilice la fórmula IFNA VLOOKUP en Excel 2013 y posteriores o IF ISNA VLOOKUP en versiones anteriores.
Fórmula IF ISERROR INDEX MATCH
Cuando se realiza una búsqueda con la ayuda de la combinación INDEX MATCH (o fórmula INDEX XMATCH en Excel 365), se puede atrapar y manejar cualquier posible error utilizando la misma técnica - la función ISERROR comprueba si hay errores e IF muestra el texto especificado cuando se produce algún error.
IF(ISERROR(INDEX ( columna_de_retorno , MATCH ( buscar_valor , columna_de_busqueda , 0)))), " texto_personalizado ", ÍNDICE ( columna_de_retorno , MATCH ( buscar_valor , columna_de_busqueda , 0)))Supongamos que la tabla de búsqueda tiene horas en la primera columna. Como VLOOKUP no puede mirar a su izquierda, utilizamos la fórmula INDEX MATCH para extraer las horas de la columna D:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Y luego, lo anidas en la fórmula genérica antes mencionada para sustituir los errores capturados por el texto que quieras:
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)), "No cualificado", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
Nota. Al igual que con la fórmula IF ISERROR VLOOKUP, tiene más sentido atrapar sólo errores #N/A y no disfrazar problemas potenciales con la fórmula en sí. Para ello, envuelva su fórmula INDEX MATH en IFNA en Excel 2013 y superior o IF ISNA en versiones anteriores.
IF ISERROR Fórmula sí/no
En todos los ejemplos anteriores, IF ISERROR devolvía el resultado de la fórmula principal si no es un error. Sin embargo, también puede funcionar de otra forma: devolver algo si hay error y otra cosa si no hay error.
IF(ISERROR( fórmula (...)), " text_if_error ", " text_if_no_error ")En nuestro conjunto de datos de ejemplo, supongamos que no le interesan los tiempos exactos, sólo quiere saber qué participantes del grupo A están cualificados y cuáles no. Para ello, utilice la función MATCH para comparar el nombre de la columna A con la lista de los participantes cualificados de la columna D y, a continuación, sirva los resultados a ISERROR. Si el nombre no está disponible en la columna D (MATCH devuelve un error), obtengala función IF para mostrar "No" o "No cualificado". Si el nombre aparece en la columna D (sin error), devuelve "Sí" o "Cualificado".
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Sí" )
Cómo contar el número de errores
Para obtener el número de errores en una columna determinada, es necesario comprobar un rango, no sólo una celda. Para ello, "alimente" el rango de destino a ISERROR y coaccione los valores booleanos devueltos en 1 y 0 utilizando el operador unario doble (--). La función SUM o SUMPRODUCT puede sumar los números y entregar el resultado final.
Por ejemplo:
=SUMA(--ISERROR(C2:C10))
Tenga en cuenta que esto funciona como una fórmula regular solo en Excel 365 y Excel 2021, que admiten matrices dinámicas. En Excel 2019 y versiones anteriores, debe presionar Ctrl + Mayús + Intro para crear una fórmula de matriz (no escriba llaves manualmente, ¡eso no funcionará!):
{=SUM(--ISERROR(C2:C10))}
Alternativamente, puede utilizar la función SUMPRODUCT que maneja matrices de forma nativa, por lo que la fórmula puede completarse con la tecla Intro habitual en todas las versiones:
=SUMPRODUCTO(--ISERROR(C2:C10))
Diferencia entre ISERROR e IFERROR en Excel
Tanto las funciones ISERROR como IFERROR se utilizan para atrapar y manejar errores en Excel. La diferencia es la siguiente:
- En su forma pura, ISERROR sólo comprueba si el valor es un error o no. Está disponible en todas las versiones de Excel.
- La función IFERROR está diseñada para suprimir o disimular errores: cuando se encuentra un error, devuelve otro valor que usted especifique. Está disponible en Excel 2007 y versiones posteriores.
A primera vista, IFERROR parece una alternativa abreviada a la fórmula IF ISERROR. Sin embargo, si se mira más de cerca, se nota la diferencia:
- IFERROR permite especificar sólo value_if_error Si no hay error, siempre devuelve el resultado de la fórmula/valor comprobado.
- IF ISERROR proporciona más flexibilidad y le permite manejar ambas situaciones - lo que debe suceder si un error y lo que si no hay error.
Para ilustrarlo mejor, considere estas fórmulas:
=IFERROR(A1, "Error de cálculo")
=IF(ISERROR(A1), "Error de cálculo", A1)
Estas dos fórmulas son equivalentes - ambas comprueban un valor de la fórmula en A1 y devuelven "Error de cálculo" si es un error, en caso contrario - devuelven el valor.
¿Pero qué pasa si quieres realizar algún cálculo si el valor en A1 no es un error? La función IFERROR no es capaz de hacerlo. En el caso de IF ISERROR, sólo tienes que escribir el cálculo deseado en el último argumento. Por ejemplo:
=IF(ISERROR(A1), "Error de cálculo", A1*2)
Como ves, esta variación más larga de la fórmula IFERROR, que a menudo se considera anticuada, puede seguir siendo útil :)
Descargas disponibles
Ejemplos de fórmulas ISERROR (archivo .xlsx)