Tabla de contenido
En este tutorial, veremos cómo usar las funciones IFERROR y VLOOKUP juntas para atrapar y manejar diferentes errores. Además, aprenderás cómo hacer vlookups secuenciales en Excel anidando múltiples funciones IFERROR una sobre otra.
Excel VLOOKUP e IFERROR - estas dos funciones pueden ser bastante difíciles de entender por separado, y mucho menos cuando se combinan. En este artículo, encontrará algunos ejemplos fáciles de seguir que abordan usos comunes e ilustran claramente la lógica de las fórmulas.
Si no tienes mucha experiencia con las funciones IFERROR y VLOOKUP, puede ser una buena idea repasar primero sus fundamentos siguiendo los enlaces anteriores.
IFERROR VLOOKUP fórmula para manejar #N/A y otros errores
Cuando Excel Vlookup falla en encontrar un valor de búsqueda, arroja un error #N/A, como este:
Dependiendo de las necesidades de su empresa, es posible que desee disfrazar el error con su propio texto, cero o una celda en blanco.
Ejemplo 1. IFERROR con fórmula VLOOKUP para sustituir los errores por su propio texto
Si desea sustituir la notación de error estándar por su texto personalizado, incluya su fórmula VLOOKUP en IFERROR y escriba el texto que desee en el segundo argumento ( value_if_error ), por ejemplo "No encontrado":
IFERROR(VLOOKUP( ... ), "No encontrado")Con el valor de búsqueda en B2 en la tabla Principal y el rango de búsqueda A2:B4 en la tabla de Búsqueda, la fórmula toma la siguiente forma:
=IFERROR(VLOOKUP(B2,'Tabla de búsqueda'!$A$2:$B$5, 2, FALSE), "No encontrado")
La siguiente captura de pantalla muestra nuestra fórmula IFERROR VLOOKUP de Excel en acción:
El resultado parece mucho más comprensible y mucho menos intimidatorio, ¿verdad?
De forma similar, puede utilizar INDEX MATCH junto con IFERROR:
=IFERROR(INDEX('Tabla de consulta'!$B$2:$B$5,MATCH(B2,'Tabla de consulta'!$A$2:$A$5,0)), "No encontrado")
La fórmula IFERROR INDEX MATCH es especialmente útil cuando se desea extraer valores de una columna que se encuentra a la izquierda de la columna de búsqueda (búsqueda izquierda), y devolver su propio texto cuando no se encuentra nada.
Ejemplo 2. IFERROR con VLOOKUP para devolver espacio en blanco o 0 si no se encuentra nada
Si no desea mostrar nada cuando no se encuentra el valor de búsqueda, haga que IFERROR muestre un mensaje cadena vacía (""):
IFERROR(VLOOKUP( ... ),"")En nuestro ejemplo, la fórmula es la siguiente:
=IFERROR(VLOOKUP(B2,'Tabla de consulta'!$A$2:$B$5, 2, FALSE), "")
Como puede ver, no devuelve nada cuando el valor buscado no está en la lista de búsqueda.
Si desea sustituir el error por el valor cero pon 0 en el último argumento:
=IFERROR(VLOOKUP(B2,'Tabla de consulta'!$A$2:$B$5, 2, FALSE), 0)
¡Atención! La función IFERROR de Excel captura todo tipo de errores, no sólo #N/A. ¿Es buena o mala? Todo depende de su objetivo. Si desea enmascarar todos los errores posibles, IFERROR Vlookup es el camino a seguir. Pero puede ser una técnica imprudente en muchas situaciones.
Por ejemplo, si ha creado un rango con nombre para los datos de la tabla y ha escrito mal ese nombre en la fórmula de Vlookup, IFERROR detectará un error #NAME? y lo sustituirá por "No encontrado" o cualquier otro texto que proporcione. Como resultado, es posible que nunca sepa que su fórmula está proporcionando resultados incorrectos a menos que detecte el error tipográfico usted mismo. En tal caso, un enfoque más razonable sería atrapar sólo errores #N/A.Para ello, utilice la fórmula IFNA Vlookup en Excel 2013 y superiores, IF ISNA VLOOKUP en todas las versiones de Excel.
La conclusión es: tenga mucho cuidado al elegir un compañero para su fórmula VLOOKUP :)
Nest IFERROR dentro de VLOOKUP para encontrar siempre algo
Imagine la siguiente situación: busca un valor específico en una lista y no lo encuentra. ¿Qué opciones tiene? Obtener un error N/A o mostrar su propio mensaje. En realidad, existe una tercera opción: si su vlookup primario tropieza, ¡busque otra cosa que definitivamente esté ahí!
Siguiendo con nuestro ejemplo, vamos a crear algún tipo de panel para nuestros usuarios que les muestre un número de extensión de una oficina específica. Algo así:
Entonces, ¿cómo se extrae la extensión de la columna B basándose en el número de oficina de D2? Con esta fórmula Vlookup normal:
=VLOOKUP($D$2,$A$2:$B$7,2,FALSE)
Y funcionará bien siempre que los usuarios introduzcan un número válido en D2. Pero, ¿qué ocurre si un usuario introduce un número que no existe? En este caso, ¡deja que llamen a la oficina central! Para ello, incrusta la fórmula anterior en el archivo valor argumento de IFERROR, y poner otro Vlookup en el value_if_error argumento.
La fórmula completa es un poco larga, pero funciona perfectamente:
=IFERROR(VLOOKUP("oficina"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("oficina central",$A$2:$B$7,2,FALSE))
Si se encuentra el número de oficina, el usuario obtiene el número de extensión correspondiente:
Si no se encuentra el número de la oficina, se muestra la extensión de la oficina central:
Para que la fórmula sea un poco más compacta, puedes utilizar un enfoque diferente:
En primer lugar, comprueba si el número de D2 está presente en la columna de consulta (fíjate en que hemos definido col_index_num a 1 para que la fórmula busque y devuelva el valor de la columna A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)
Si no se encuentra el número de oficina especificado, entonces buscamos la cadena "oficina central", que sin duda está en la lista de búsqueda. Para ello, se envuelve el primer VLOOKUP en IFERROR y se anida toda esta combinación dentro de otra función VLOOKUP:
=VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "oficina central"),$A$2:$B$7,2)
Bueno, una fórmula ligeramente diferente, el mismo resultado:
Pero cuál es la razón para buscar "oficina central", me preguntarás. ¿Por qué no suministrar el número de extensión directamente en IFERROR? Porque la extensión puede cambiar en algún momento en el futuro. Si esto ocurre, tendrás que actualizar tus datos una sola vez en la tabla de origen, sin preocuparte de actualizar cada una de tus fórmulas VLOOKUP.
Cómo hacer VLOOKUPs secuenciales en Excel
En situaciones en las que necesite realizar el llamado secuencial o encadenado Vlookups en Excel dependiendo de si una búsqueda previa tuvo éxito o falló, anide dos o más funciones IFERROR para ejecutar sus Vlookups uno por uno:
IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "No encontrado")))La fórmula funciona con la siguiente lógica:
Si el primer VLOOKUP no encuentra nada, el primer IFERROR atrapa un error y ejecuta otro VLOOKUP. Si el segundo VLOOKUP falla, el segundo IFERROR atrapa un error y ejecuta el tercer VLOOKUP, y así sucesivamente. Si todos los Vlookups tropiezan, el último IFERROR devuelve su mensaje.
Esta fórmula IFERROR anidada es especialmente útil cuando tiene que hacer una búsqueda rápida en varias hojas como se muestra en el siguiente ejemplo.
Supongamos que tiene tres listas de datos homogéneos en tres hojas de cálculo diferentes (números de oficina en este ejemplo) y desea obtener una extensión para un determinado número.
Suponiendo que el valor de búsqueda esté en la celda A2 de la hoja actual, y que el rango de búsqueda sea A2:B5 en 3 hojas de cálculo diferentes (Norte, Sur y Oeste), la siguiente fórmula funciona a las mil maravillas:
=IFERROR(VLOOKUP(A2,Norte!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,Sur!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,Oeste!$A$2:$B$5,2,FALSE), "No encontrado"))
Así, nuestra fórmula de "Vlookups encadenados" busca en tres hojas diferentes en el orden en que las anidamos en la fórmula, y trae la primera coincidencia que encuentra:
Así es como se utiliza IFERROR con VLOOKUP en Excel. Gracias por leer y ¡espero verte en nuestro blog la semana que viene!
Descargas disponibles
Excel IFERROR VLOOKUP fórmula ejemplos