Corregir el error #N/D en la función BUSCARV

Habrá ocasiones en las que la función BUSCARV no encontrará coincidencias del valor buscado dentro de los datos y devolverá un error.

El mensaje de error que identifica este problema es el error #N/A, que también podemos observar cómo el error #N/D, y ambos se refieren al mismo error.

En las versiones previas de Excel en español se mostraba el error #N/A, que proviene del inglés Not Available, pero en las versiones recientes se muestra el error #N/D por la traducción a No Disponible.

Cualquiera que sea la abreviatura del error, la realidad es que no será un mensaje amigable para los usuarios de nuestra hoja, y en muchas ocasiones nos convendrá usar una función adicional para personalizar el mensaje de error.

La siguiente imagen muestra el momento exacto en que la función BUSCARV realiza una búsqueda sobre el rango A2:A11 del nombre Dana que está indicado en la celda E1.

Dicho nombre no existe dentro de la lista por lo que obtendremos como resultado el error #N/A.

Corregir el error #N/A en la función BUSCARV

En esta ocasión te mostraré las alternativas que se han usado a lo largo de los años para corregir el error #N/A que devuelve la función BUSCARV.

Comenzaremos con el método más antiguo hasta llegar al más reciente.

el error #N/A en Excel 2003 y versiones previas

Si alguna vez te encuentras con un libro que haya sido creado en Excel 2003 o una versión anterior, verás que el error #N/A se corregía usando dos funciones: la función SI y la función ESERROR.

Comencemos por la función ESERROR, la cual pertenece a la categoría de funciones de información, y se encarga de comprobar el valor de una celda para saber si contiene un error y nos devolverá el valor verdadero o falso.

En la siguiente imagen tenemos la columna A con diferentes valores en las celdas, incluidos algunos errores, y en la columna B utilizamos la función ESERROR para evaluar el contenido de cada una de las celdas de la columna A.

Errores #N/D con la función BUSCARV

Observa que solamente aquellos casos en donde existe un error, la función ESERROR devolverá el valor verdadero.

El resultado devuelto por la función ESERROR lo podemos aprovechar para personalizar el mensaje mostrado y para eso usaremos la función SI.

En este segundo ejemplo tomaremos el valor de las celdas de la columna A y en caso de que exista un error, lo reemplazaremos por el mensaje “ERROR” y en caso contrario, mostraremos la leyenda “OK”.

La fórmula a utilizar será la siguiente:

=SI(ESERROR(A2), "ERROR", "OK")

En caso de que la prueba lógica sea verdadera, se mostrará la leyenda “ERROR” y en caso de que sea falsa, se mostrará la leyenda “OK”.

La siguiente imagen muestra el resultado de aplicar esta fórmula en los datos de ejemplo.

Qué hacer cuando BUSCARV devuelve el error #N/D

Es así como la combinación de funciones ESERROR y SI nos ayudan a detectar un error y a personalizar el mensaje mostrado en la celda.

Ahora veamos cómo utilizar este método para evitar mostrar el error #N/A enviado por la función BUSCARV.

Como ejemplo utilizaremos los siguientes datos, donde hacemos una búsqueda en la columna E de los valores ISBN de un libro sobre el listado que se encuentra en la columna A.

Puedes observar que, aquellos ISBN que no se encuentran muestran un error en la columna E.

Corregir #N/A devuelto por la función BUSCARV

Nuestro objetivo será reemplazar el error #N/A por la leyenda “No encontrado” y para los demás resultados dejaremos el título del libro.

La fórmula que utilizaremos será la siguiente:

=SI(ESERROR(BUSCARV(D2, $A$2:$B$6, 2, FALSO)), "No encontrado", BUSCARV(D2, $A$2:$B$6, 2, FALSO))

No te preocupes si en este momento la fórmula anterior pareciera un tanto compleja, voy a explicarla con detenimiento y todo quedará completamente claro.

En primer lugar, quiero que notes que la función BUSCARV aparece dos veces y en ambos casos es exactamente igual.

La razón de esto es que, la función BUSCARV que se encuentra dentro de la función ESERROR nos sirve para saber si el valor buscado devuelve un error.

En caso de que la función BUSCARV devuelva error, la función SI se encargará de mostrar la leyenda “No encontrado”.

Pero si el resultado de la función ESERROR es falso, querrá decir que la función BUSCARV ha encontrado una coincidencia y por lo tanto la ejecutaremos una segunda vez para desplegar el valor encontrado.

Observa que la segunda aparición de la función BUSCARV está colocada como el tercer argumento de la función SI y por lo tanto será ejecutada solo en caso de que la función ESERROR devuelva un valor FALSO.

En la siguiente imagen puedes observar el resultado de ejecutar esta fórmula sobre nuestros datos de ejemplo y cómo hace el reemplazo del error #N/A por la leyenda “No encontrado”.

Eliminar mensaje de error en función BUSCARV

La llegada de la función SI.ERROR

La función SI.ERROR implementa la misma lógica mostrada en la sección anterior, pero lo hace de una manera más sencilla lo cual facilita nuestro trabajo.

Es muy importante recordar que la función SI.ERROR fue incluida a partir de Excel 2007 y no es posible usarla en versiones previas.

La función SI.ERROR tiene dos argumentos que se describen a continuación:

  • Valor: el valor o expresión que será evaluada.
  • Valor_si_error: el valor o expresión que será devuelto si el Valor resulta en error.

El primer argumento es el valor o expresión que va a evaluar y el segundo argumento es el valor que será devuelto en caso de que el primer argumento resulte en un error.

Por el contrario, si la evaluación del primer argumento de la función SI.ERROR no es un error, entonces la función devolverá el resultado del primer argumento.

Considera la siguiente fórmula:

=SI.ERROR(BUSCARV(E1,A2:B11,2,FALSO), "Nombre no encontrado")

Esta fórmula evitará desplegar el mensaje de error #N/A devuelto por la función BUSCARV y en su lugar desplegará el mensaje “Nombre no encontrado”.

Observa con detenimiento el resultado de la siguiente imagen:

Cómo solucionar el error #N/D de la función BUSCARV

La función BUSCARV no encuentra el nombre “Dana” en la lista de nombres de la columna A y por lo tanto devuelve el error #N/A pero la función SI.ERROR se encarga de detectar dicho resultado y desplegar la leyenda “Nombre no encontrado” en lugar del error #N/A.

Por el contrario, si la función BUSCARV encuentra el valor buscado, entonces la función SI.ERROR no tendrá efecto alguno sobre el resultado.

Observa la siguiente imagen donde se hace la búsqueda del nombre “Diana” el cual existe dentro de la lista:

Función SI.ERROR para corregir errores de BUSCARV

Recuerda que la función SI.ERROR solamente afectará el resultado de la fórmula en caso de detectar la presencia de un error. De esta manera, la función SI.ERROR nos ayuda a personalizar los mensajes de error de cualquiera de las funciones de Excel incluyendo la función BUSCARV.

Una observación importante sobre la función SI.ERROR es que su nombre fue uno de los que sufrió un cambio con el lanzamiento de Excel 2010 en español.

En dicha versión, el nombre de la función era SIERROR, sin el punto después de la palabra SI.

Si tienes dicha versión de Excel es muy probable que debas usar el nombre SIERROR (sin punto).

Sin embargo, si tienes Excel 2010 en español, y ya se ha instalado al menos el Service Pack 1 de Office, entonces el nombre de la función regresará a SI.ERROR (con punto).

Para versiones de Excel 2013 y posteriores, el nombre de la función se mantiene como SI.ERROR.

La función SI.ND en Excel

La función SI.ERROR que revisamos en la sección anterior es capaz de detectar varios tipos de errores y funciona muy bien para detectar el error enviado por la función BUSCARV.

Sin embargo, a partir de Excel 2013 tenemos otra alternativa disponible y es usar la función SI.ND.

La función SI.ND no es un reemplazo de la función SI.ERROR sino que se especializa en detectar exclusivamente el error #N/D y por lo tanto podemos usarla en conjunto con la función BUSCARV para personalizar los mensajes de error.

Considera la siguiente fórmula:

=SI.ND(BUSCARV(E1,A2:B11,2,FALSO),"Nombre no encontrado")

En caso de que la función BUSCARV devuelva el error #N/D, la función SI.ND detecta el error y devuelve la leyenda “Nombre no encontrado”.

En la siguiente imagen puedes observar el comportamiento de esta función:

Corregir errores de la función BUSCARV

Si tienes una versión reciente de Excel podrás usar cualquiera de los 3 métodos explicados anteriormente para reemplazar el error #N/D enviado por la función BUSCARV y mostrar un mensaje personalizado que será más amigable a los usuarios de tu hoja de cálculo.