VLOOKUP

Busca un valor en la primera columna de una selección de tablas y devuelve un valor en la misma fila de otra columna de la selección de tablas.

La V de VLOOKUP significa vertical. Utilice VLOOKUP en vez de HLOOKUP cuando los valores de comparación estén ubicados en una columna a la izquierda de los datos que desee encontrar.

Sintaxis

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

Lookup_value    (Valor de búsqueda) Valor que se debe buscar en la primera columna de la selección (matriz: utilizada para crear fórmulas sencillas que producen varios resultados o que funcionan en un grupo de argumentos que se organizan en filas y columnas. Un rango de matriz comparte una fórmula común; una constante de matriz es un grupo de constantes utilizadas como un argumento.) de tablas. Lookup_value puede ser un valor o una referencia. Si lookup_value es inferior al valor mínimo de la primera columna de table_array (selección de tablas), VLOOKUP devuelve el valor de error #N/A (no aplicable).

Table_array    (Selección de tablas) Dos o más columnas de datos. Utilice una referencia a un rango o un nombre de rango. Los valores de la primera columna de table_array son los valores donde busca lookup_value. Estos valores pueden ser texto, números o valores lógicos. No se hace distinción entre mayúsculas y minúsculas.

Col_index_num    (Número de índice de columna) Número de la columna de table_array desde donde se debe devolver el valor coincidente. El col_index_num 1 devuelve el valor de la primera columna de table_array; el col_index_num 2 devuelve el valor de la segunda columna de table_array, etc. Si col_index_num es:

  • Menor que 1, VLOOKUP devuelve el valor de error #VALUE!.
  • Mayor que el número de columnas de table_array, VLOOKUP devuelve el valor de error #REF!.

Range_lookup    (Búsqueda en rango) Valor lógico que especifica si VLOOKUP debe buscar coincidencias exactas o aproximadas:

  • VERDADERO o se omite, se devolverá una coincidencia exacta o aproximada. Si no se encuentra ninguna coincidencia exacta, se devolverá el siguiente valor más largo menor que lookup_value.

Los valores de la primera columna de table_array deben colocarse en orden ascendente; en caso contrario, es posible que VLOOKUP no devuelva el valor correcto. Puede colocar los valores en orden ascendente seleccionando el comando Ordenar en el menú Datos y seleccionando Ascendente. Si desea obtener más información, consulte Orden de clasificación predeterminado.

  • Si es FALSO, VLOOKUP sólo buscará coincidencias exactas. En este caso, los valores de la primera columna de table_array no necesitan ser ordenados. Si hay dos o más valores en la primera columna de table_array que coincidan con el valor de lookup_value, se utilizará el primer valor que se encuentre. Si no se encuentran coincidencias exactas, se devolverá el valor de error #N/A.

Observaciones

  • Cuando se buscan valores de texto en la primera columna de table_array, es necesario asegurarse de que los datos de la primera columna de table_array no incluyan espacios en blanco a la izquierda ni a la derecha, ni utilicen incoherentemente las comillas ( ' o " ) o los caracteres no imprimibles. En estos casos, VLOOKUP puede devolver un valor no correcto o no esperado. Si desea obtener más información sobre las funciones que se pueden utilizar para limpiar datos de texto, vea Funciones de texto y datos.
  • Cuando se buscan valores numéricos o de fechas, es necesario asegurarse de que los datos de la primera columna de table_array no están guardados como valores de texto. En estos casos, VLOOKUP puede devolver un valor no correcto o no esperado. Si desea obtener más información, consulte Convertir números almacenados como texto en números.
  • Si range_lookup es FALSO y lookup_value texto, puede utilizar los caracteres comodín, interrogación (?) y asterisco (*), en lookup_value. El signo de interrogación sustituye a cualquier carácter individual y el asterisco a cualquier secuencia de caracteres. Si desea buscar un signo de interrogación o un asterisco, escriba una tilde (~) delante del carácter.

Ejemplo 1

El ejemplo será más fácil de entender si lo copia a una hoja de cálculo en blanco.

MostrarCómo copiar un ejemplo

  • Cree una hoja de cálculo o un libro en blanco.
  • Seleccione el ejemplo en el tema de Ayuda.

 Nota   No seleccione los encabezados de columna o de fila.

Seleccionar un ejemplo de la Ayuda

Seleccionar un ejemplo de la Ayuda
  • Presione CTRL+C.
  • En la hoja de cálculo, seleccione la celda A1 y presione CTRL+V.
  • Para cambiar entre ver los resultados y ver las fórmulas que devuelven los resultados, presione CTRL+` (acento grave), o en el grupo Auditoría de fórmulas de la ficha Fórmulas, haga clic en el botón Mostrar fórmulas.

Este ejemplo busca en la columna Densidad de una tabla de propiedades atmosféricas para devolver los valores correspondientes de las columnas Viscosidad y Temperatura. (Los valores corresponden al aire a 0 grados centígrados a nivel del mar, o 1 atmósfera.)

 
1
2
3
4
5
6
7
8
9
10
A B C
Densidad Viscosidad Temperatura
0,457 3,55 500
0,525 3,25 400
0,616 2,93 300
0,675 2,75 250
0,746 2,57 200
0,835 2,38 150
0,946 2,17 100
1,09 1,95 50
1,29 1,71 0
Fórmula Descripción (resultado)
=VLOOKUP(1,A2:C10,2) Utilizando una búsqueda aproximada, busca el valor 1 en la columna A, encuentra el valor más alto menor o igual que 1 en la columna A, que es 0,946, y devuelve el valor de la columna B de la misma fila (2,17).
=VLOOKUP(1,A2:C10,3,TRUE) Utilizando una búsqueda aproximada, busca el valor 1 en la columna A, encuentra el valor más alto menor o igual que 1 en la columna A, que es 0,946, y devuelve el valor de la columna C de la misma fila (100).
=VLOOKUP(.7,A2:C10,3,FALSE) Utilizando una búsqueda exacta, busca el valor .7 en la columna A. Como ningún valor de la columna A coincide exactamente con este parámetro, devuelve un error (#N/A).
=VLOOKUP(0.1,A2:C10,2,TRUE) Utilizando una búsqueda aproximada, busca el valor 0.1 en la columna A. Como 0.1 es inferior al valor más bajo de la columna A, devuelve un error (#N/A).
=VLOOKUP(2,A2:C10,2,TRUE) Utilizando una búsqueda aproximada, busca el valor 2 en la columna A, encuentra el valor más alto menor o igual que 2 en la columna A, que es 1,29, y devuelve el valor de la columna B de la misma fila (1,71).

Ejemplo 2

El ejemplo será más fácil de entender si lo copia a una hoja de cálculo en blanco.

MostrarCómo copiar un ejemplo

  • Cree una hoja de cálculo o un libro en blanco.
  • Seleccione el ejemplo en el tema de Ayuda.

 Nota   No seleccione los encabezados de columna o de fila.

Seleccionar un ejemplo de la Ayuda

Seleccionar un ejemplo de la Ayuda
  • Presione CTRL+C.
  • En la hoja de cálculo, seleccione la celda A1 y presione CTRL+V.
  • Para cambiar entre ver los resultados y ver las fórmulas que devuelven los resultados, presione CTRL+` (acento grave), o en el grupo Auditoría de fórmulas de la ficha Fórmulas, haga clic en el botón Mostrar fórmulas.

Este ejemplo busca en la columna Id. de elemento de una tabla de productos de bebé y toma los valores de las columnas Coste y Beneficios correspondientes para calcular precios y analizar condiciones.

 
1
2
3
4
5
6
A B C D
Id. de elemento Elemento Coste Beneficios
ST-340 Cochecito 145,67€ 30%
BI-567 Babero 3,56€ 40%
DI-328 Pañales 21,45€ 35%
WI-989 Toallitas 5,12€ 40%
AS-469 Aspirador 2,56€ 45%
Fórmula Descripción (resultado)
= VLOOKUP("DI-328", A2:D6, 3, FALSE) * (1 + VLOOKUP("DI-328", A2:D6, 4, FALSE)) Calcula el precio al por menor de los pañales agregando el porcentaje de beneficio al coste (28,96€)
= (VLOOKUP("WI-989", A2:D6, 3, FALSE) * (1 + VLOOKUP("WI-989", A2:D6, 4, FALSE))) * (1 - 20%) Calcula el precio de venta de las toallitas restando un descuento específico al precio al por menor (5,73€).
= IF(VLOOKUP(A2, A2:D6, 3, FALSE) >= 20, "El beneficio es " & 100 * VLOOKUP(A2, A2:D6, 4, FALSE) &"%", "El coste es inferior a 20,00€") Si el coste de un elemento es superior o igual a 20,00€, muestra la cadena "El beneficio es nn%"; en caso contrario, muestra la cadena "El coste es inferior a 20,00€" (el beneficio es 30%).
= IF(VLOOKUP(A3, A2:D6, 3, FALSE) >= 20, "El beneficio es: " & 100 * VLOOKUP(A3, A2:D6, 4, FALSE) &"%", "El coste es €" & VLOOKUP(A3, A2:D6, 3, FALSE)) Si el coste de un elemento es superior o igual a 20,00€, muestra la cadena "El beneficio es nn%"; en caso contrario, muestra la cadena "El coste es n.nn€" (el coste es 3,56€).

Ejemplo 3

El ejemplo será más fácil de entender si lo copia a una hoja de cálculo en blanco.

MostrarCómo copiar un ejemplo

  • Cree una hoja de cálculo o un libro en blanco.
  • Seleccione el ejemplo en el tema de Ayuda.

 Nota   No seleccione los encabezados de columna o de fila.

Seleccionar un ejemplo de la Ayuda

Seleccionar un ejemplo de la Ayuda
  • Presione CTRL+C.
  • En la hoja de cálculo, seleccione la celda A1 y presione CTRL+V.
  • Para cambiar entre ver los resultados y ver las fórmulas que devuelven los resultados, presione CTRL+` (acento grave), o en el grupo Auditoría de fórmulas de la ficha Fórmulas, haga clic en el botón Mostrar fórmulas.

Este ejemplo busca en la columna Identificador de una tabla de empleados y toma los valores de otras columnas para calcular edades y analizar condiciones de error.

 
1
2
3
4
5
6
7
A B C D E
Identificador Apellidos Nombre Puesto Fecha de nacimiento
1 Davolio Nancy Agente de ventas 8/12/1968
2 Fuller Andrew Vicepresidente de ventas 19/2/1952
3 Leverling Janet Agente de ventas 30/8/1963
4 Peacock Margaret Agente de ventas 9/19/1958
5 Buchanan Steven Jefe de ventas 4/2/1955
6 Suyama Michael Agente de ventas 2/7/1963
Fórmula Descripción (resultado)
=INT(YEARFRAC(DATE(2004,6,30), VLOOKUP(5,A2:E7,5, FALSE), 1)) Busca la edad del empleado cuyo identificador sea 5 correspondiente al año fiscal 2004. Utiliza la función YEARFRAC para restar la fecha de nacimiento de la fecha del fin del año fiscal y muestra el resultado como integral utilizando la función INT (49).
=IF(ISNA(VLOOKUP(5,A2:E7,2,FALSE)) = TRUE, "No se encuentra el empleado", VLOOKUP(5,A2:E7,2,FALSE))

Si hay un empleado con identificador 5, muestra los apellidos del empleado; en caso contrario, muestra el mensaje "No se encuentra el empleado" (Buchanan).

La función ISNA devuelve un valor TRUE cuando la función VLOOKUP devuelve el valor de error #NA.

=IF(ISNA(VLOOKUP(15,A3:E8,2,FALSE)) = TRUE, "No se encuentra el empleado", VLOOKUP(15,A3:E8,2,FALSE))

Si hay un empleado con identificador 15, muestra los apellidos del empleado; en caso contrario, muestra el mensaje "No se encuentra el empleado" (No se encuentra el empleado).

La función ISNA devuelve un valor TRUE cuando la función VLOOKUP devuelve el valor de error #NA.

=VLOOKUP(4,A2:E7,3,FALSE) & " " & VLOOKUP(4,A2:E7,2,FALSE) & " es " & VLOOKUP(4,A2:E7,4,FALSE) & "." Concatena en una frase completa los valores de tres celdas correspondientes al empleado con identificador 4 (Margaret Peacock es agente de ventas).

 Nota   La primera fórmula del ejemplo anterior utiliza la función YEARFRAC. Si esta función no está disponible, y devuelve el error #NAME?, instale y cargue el complemento Herramientas para análisis.

Mostrar¿Cómo?

  1. En el menú Herramientas, haga clic en Complementos.
  2. En la lista Complementos disponibles, active la casilla Herramientas para análisis y haga clic en Aceptar.
  3. Si es necesario, siga las instrucciones del programa de instalación.
 
 
Corresponde a:
Excel 2003