VLOOKUP BUSCARV no funciona, solucionar error #N/A #N/D en Excel

VLOOKUP BUSCARV no funciona solucionar error NA ND en Excel
Inicio » Informática » Excel » VLOOKUP BUSCARV no funciona, solucionar error #N/A #N/D en Excel

Tabla de contenido

La función VLOOKUP BUSCARV permite buscar un valor en una columna de una tabla de Excel y retornar el valor correspondiente de otra columna.

Aunque es muy útil lo cierto es que genera muchos dolores de cabeza porque es muy frecuente que no funcione como esperamos.

Es por ello que a continuación veremos algunos de los posibles errores y soluciones al error #N/A #N/D para BUSCARV VLOOKUP.

Ejemplo de VLOOKUP BUSCARV correcto

Vamos a comenzar utilizando el siguiente ejemplo de VLOOKUP BUSCARV que funciona correctamente. En él hemos creado una tabla con los datos que tenemos a través del menú “Insertar, Tabla” después de seleccionar el rango de datos y, posteriormente, le hemos dado un nombre a través del menú “Diseño de tabla, Nombre de la tabla”:

Además hemos creado dos celdas adicionales:

  • Id a buscar, será el valor que buscaremos en la tabla para retornar su nombre correspondiente.
  • Nombre encontrado, es aquí donde utilizaremos la función BUSCARV (VLOOKUP) con los siguientes valores:
    =BUSCARV(G3;TableData;2)
    =VLOOKUP(G3;TableData;2)

Como podéis observar está funcionando correctamente y los parámetros de la función BUSCARV VLOOKUP son:

  • Primer parámetro, indica el valor a buscar, en este caso es la celda G3 que se corresponde con el id que insertaremos.
  • Segundo parámetro, indica dónde buscaremos. Puede ser un rango como, por ejemplo, “B5:D8”, o bien podemos utilizar una referencia a una tabla completa a través de su nombre como en el ejemplo donde utilizamos “TableData”.
  • Tercer parámetro, indica la columna dentro del rango anterior a devolver. Las columnas están numeradas comenzando por el 1, de izquierda a derecha. En este caso como queremos devolver el nombre usaremos el valor 2.

Podéis jugar con el ejemplo y cambiar valores, realizar búsquedas… etc para comprobar que está funcionando correctamente.

Rango incorrecto retorna error #N/A #N/D

El primer error más común es no comprender cómo funciona la función BUSCARV VLOOKUP de Excel. Esta función busca únicamente en la primera columna del rango de búsqueda, es decir, la que está más a la izquierda.

Supongamos que en nuestro ejemplo queremos buscar por nombre y devolver el apellido. Pues bien, si no modificamos la fórmula veremos que obtenemos el famoso error #N/A #N/D:

En este caso la solución para el error #N/A #N/D es sencilla, simplemente debemos modificar el rango en el que se realiza la búsqueda, es decir, el segundo parámetro de la fórmula BUSCARV VLOOKUP.

La fórmula antes de la modificación era:

=BUSCARV(G3;TableData;2)
=VLOOKUP(G3;TableData;2)

Y la fórmula modificada para solucionar el error #N/A #N/D es:

=BUSCARV(G3;TableData[[Nombre]:[Apellido]];2)
=VLOOKUP(G3;TableData[[Nombre]:[Apellido]];2)

Con esta modificación conseguiremos que la fórmula busque en la primera columna del rango que ahora es el nombre y lo encuentre, devolviendo de esta manera el apellido correspondiente:

Utiliza coincidencias exactas en BUSCARV VLOOKUP

Habrás observado que si buscamos el nombre “cc” nos devuelve el apellido “www” y esto es incorrecto porque el nombre “cc” no existe:

Pues bien, mi recomendación es que añadas a la fórmula anterior un cuarto parámetro con el valor FALSO/FALSE para que solo busque por coincidencias exactas y no aproximadas:

=BUSCARV(G3;TableData[[Nombre]:[Apellido]];2;FALSO)
=VLOOKUP(G3;TableData[[Nombre]:[Apellido]];2;FALSE)

Con ello conseguiremos que si la coincidencia no es exacta nos lance el famoso error #N/A #N/D y de esta manera evitaremos posibles malentendidos:

Ahora bien, ¿qué ocurre si quiero una funcionalidad más avanzada similar a las expresiones regulares?. Mi recomendación es utilizar coincidencias exactas en combinación con los caracteres comodín de Excel. En el siguiente ejemplo buscaremos un nombre que termine por la letra “d” y nos devolverá el apellido correspondiente:

Error #N/A #N/D por orden incorrecto de columnas

Pensemos un momento qué significa que la fórmula BUSCARV VLOOKUP busque en la primera columna del rango seleccionado… Esto significa que:

  • La columna donde buscaremos debe ser obligatoriamente la primera columna del rango utilizado en la fórmula.
  • La columna de la que retornaremos el valor tiene que estar obligatoriamente a la derecha de la columna donde buscamos (no inmediatamente después, puede haber columnas entre medias).

Esto tiene el siguiente problema… ¿Qué ocurre si queremos buscar en una columna que está a la derecha de la columna de retorno?. Siguiendo nuestro ejemplo, ¿Qué ocurre si queremos buscar por apellido y devolver el id correspondiente?.

Pues bien, en el caso anterior la función BUSCARV VLOOKUP no funciona, no podemos utilizarla de manera directa. Las posibles soluciones a este tipo de error son:

  • Cambiar el orden de las columnas de tal manera que, como mínimo, la columna en la que busquemos esté a la izquierda de la columna de la que retornaremos el valor.
    Siguiendo nuestro ejemplo tendríamos que mover la columna “Apellido” a la izquierda de la columna “Id” y utilizar la fórmula como lo hicimos en apartados anteriores:

    =BUSCARV(G3;TableData;2)
    =VLOOKUP(G3;TableData;2)
  • Utilizar una mejor alternativa a la función BUSCARV VLOOKUP que nos permita indicar de manera explícita en qué columna buscaremos y qué columna retornaremos.
    En el post enlazado tenéis todas las instrucciones para buscar una columna y retornar otra sin los problemas que genera la fórmula BUSCARV VLOOKUP.
    Esta es la opción recomendada para buscar una columna y devolver otra. Es la forma más limpia y potente. Personalmente prefiero no tener que estar cambiando el orden de las columnas en archivos complejos por las consecuencias que ello pueda tener.
    Otra ventaja de la opción expuesta es que no estamos obligados a que las columnas estén en un determinado orden para que las búsquedas sean satisfactorias, pueden estar en cualquier orden y siempre funcionarán.

Formato de datos incorrecto en BUSCARV VLOOKUP

Otro error muy común a la hora de utilizar BUSCARV VLOOKUP es que el dato que busquemos no tenga el mismo formato que la columna donde buscamos.

En el siguiente ejemplo podemos observar que estamos buscando en una columna con formato de número y que el valor buscado tiene formato de texto. Como consecuencia obtendremos, de nuevo, el error #N/A #N/D:

Aquí la solución es simple, basta con poner ambos con el mismo formato, o ambos en formato texto o ambos en formato número.

Los espacios en blanco generan error #N/A #N/D

Finalmente veremos otro error en la función BUSCARV VLOOKUP que no es tan frecuente pero que igualmente genera el error #N/A #N/D. Este error se debe a los espacios en blanco, ya sea en el valor buscado o en la columna de búsqueda:

Para solucionar este error utiliza la fórmula ESPACIOS TRIM dentro del primer parámetro de BUSCARV VLOOKUP:

=BUSCARV(ESPACIOS(G3);TableData;2;FALSO)
=VLOOKUP(TRIM(G3);TableData;2;FALSE)

Si el error persiste es porque el espacio está en la columna de búsqueda, aquí la única solución consiste en modificar los datos a mano y eliminar esos espacios adicionales, aunque también puedes crear una segunda columna que limpie los espacios en blanco con la función anterior.