curso
Cómo combinar VLOOKUP() con IF() en Excel
Si gestionas grandes conjuntos de datos en Excel, sabes lo difícil que es organizarlos y analizarlos con eficacia. Pero tengo una solución para ti: Puedes anidar la función VLOOKUP()
dentro de una sentencia IF()
para crear búsquedas dinámicas basadas en condiciones específicas. Utilizando este enfoque, puedes consultar diferentes tablas en función de una condición y también puedes gestionar los errores con más elegancia.
En concreto, VLOOKUP()
encuentra puntos de datos concretos dentro de una tabla, y las sentencias IF()
te permiten tomar decisiones condicionales basadas en esos datos. Ambas funciones son, como sabemos, extremadamente importantes. En este artículo, añadiremos otra herramienta a la caja de herramientas: Aprenderás cómo puedes aprovechar la potencia de estas dos funciones juntas para realizar búsquedas condicionales, y lo ilustraremos con ejemplos prácticos.
La respuesta rápida: Cómo combinar VLOOKUP() e IF()
Para crear una búsqueda condicional, empieza con una sentencia IF()
y utiliza VLOOKUP()
dentro de ella para devolver resultados diferentes en función de una condición. Podemos utilizar el siguiente código para comprobar si un producto está en stock en función de su cantidad. Sólo tienes que seguir estos pasos:
-
Empieza con la función
IF()
:=IF()
-
Dentro de la función
IF()
, utilizaVLOOKUP()
.
=IF(VLOOKUP(C2, $A$2:$B$6, 2, FALSE) > 0, "In Stock", "Out of Stock")
Comprender las sentencias VLOOKUP() e IF() en Excel
VLOOKUP()
te ayuda a encontrar datos en una tabla, mientras que las sentencias IF()
te permiten decidir basándote en esos datos. Juntos, ayudan a analizar la información de las hojas de cálculo. Veamos cada función por separado y luego unámoslas.
¿Qué es VLOOKUP() en Excel?
VLOOKUP()
busca un valor concreto en la primera columna de un rango y devuelve un valor de otra columna de la misma fila. Aquí tienes la sintaxis para que puedas utilizar la fórmula VLOOKUP()
para tus grandes conjuntos de datos.
=VLOOKUP(search_key, range, index, is_sorted)
Desglosemos esta sintaxis y entendámosla:
-
Search_key
es el valor que quieres buscar. Puede ser un número, un texto o una referencia a una celda que contenga el valor buscado. -
Range
define el rango de celdas que contiene los datos. La primera columna de este rango debe contener la direcciónsearch_key
. -
Index
es el número de columna del rango del que quieres recuperar el valor. La primera columna es 1, la segunda es 2, y así sucesivamente. -
Is_sorted
es un valor lógico (TRUE
oFALSE
). Puedes utilizarTRUE
(o1
) para los números yFALSE
(o0
) para el texto. SiTRUE
,VLOOKUP()
asume que la primera columna del rango está ordenada de forma ascendente y devuelve la coincidencia más cercana. SiFALSE
,VLOOKUP()
busca una coincidencia exacta. Si no se especifica el argumento,TRUE
es el valor por defecto.
Entendámoslo con un ejemplo. Aquí tengo una lista de productos con sus ID y precios. Quiero encontrar los precios de productos concretos basándome en su nombre.
Lista de productos con su ID y precios. Fuente: Imagen del autor.
Para empezar, busco específicamente el precio de una tablet. Para ello, introduzco un valor search_key
(en mi caso, Tablet
) para encontrar el precio en cualquier celda.
Introduce el valor para encontrar su precio. Fuente: Imagen del autor.
A continuación, selecciono una celda y escribo =VLOOKUP()
.
Escribiendo la fórmula VLOOKUP(). Fuente: Imagen del autor.
A continuación, selecciono la celda donde se introdujo search_key
.
Seleccionando la columna donde se encuentra el producto. Fuente: Imagen del autor.
A continuación, selecciono el rango de la tabla.
Seleccionar el rango de la tabla. Fuente: Imagen del autor.
Contando desde la izquierda, introduzco el número de una columna de la que quería recuperar los datos. Aquí quiero saber el precio, así que introduzco 2
.
Seleccionar el índice de las columnas. Fuente: Imagen del autor.
Después, escribo FALSE
para obtener la coincidencia exacta.
Escribiendo FALSE para la coincidencia exacta. Fuente: Imagen del autor.
Después de rellenar todos los valores, pulso Intro:
Utilizando VLOOKUP(), se obtiene el precio del producto. Fuente: Imagen del autor.
Como puedes ver en la imagen, VLOOKUP()
recupera con éxito el precio.
¿Qué es IF() en Excel?
IF()
comparan los valores y los contrastan con la condición especificada. Ésta es la sintaxis:
=IF(logical_test, [value_if_true], [value_if_false])
Veamos las partes clave para entenderlo:
-
Logical_test
es el valor o expresión que quieres evaluar comoTRUE
oFALSE
. Esta es la condición que quieres comprobar. -
Value_if_true
devuelve el valor silogical_test
esTRUE
. -
Value_if_false
devuelve el valor silogical_test
esFALSE
.
Pongamos un ejemplo. Aquí quiero hacer observaciones a los alumnos en función de sus notas. Así que preparo la hoja con dos columnas: ALUMNOS y GRADOS.
Una hoja que contiene la lista de alumnos con sus calificaciones. Fuente: Imagen del autor.
Selecciono una celda y escribo =IF()
. Mi objetivo es comprobar si los números totales son mayores que 50
y entonces imprimo Excellent
, o bien, si la nota es menor que 50
, imprimo Bad
. Tras especificar las condiciones, pulso Intro para obtener los resultados.
Asignar observaciones a todos los alumnos mediante la sentencia SI. Fuente: Imagen del autor.
Luego, copio la fórmula a la última celda rellenada arrastrándola. Puedes ver los resultados. He asignado observaciones a todos los alumnos con una sola fórmula.
Formas de combinar VLOOKUP() con IF() en Excel
Veamos ejemplos prácticos para comprender cómo funciona VLOOKUP()
con IF()
.
Consultas condicionales
Para crear una búsqueda condicional, como hemos dicho, empieza con una sentencia IF()
y utiliza VLOOKUP()
dentro de ella para devolver resultados diferentes en función de una condición.
-
Empieza con la función
IF()
:=IF()
. -
Dentro de la función
IF()
, utilizaVLOOKUP()
.
Probemos con un nuevo ejemplo: Aquí tengo una lista de pedidos de productos con sus correspondientes horas de pedido. Quiero ver si se ha pedido un producto concreto antes de las 12:00 PM.
Una tabla que contiene la lista de productos junto con el ID del pedido y la hora. Fuente: Imagen del autor.
Primero, selecciono una columna e introduzco la siguiente fórmula:
=IF(VLOOKUP(A3, A2:C5,3, FALSE) < TIME(12, 0, 0), "Ordered Before Noon", "Ordered After Noon")
Aquí, la función VLOOKUP()
busca Banana
en la columna A y devuelve el tiempo de pedido correspondiente de la columna B.
La sentencia IF()
comprueba si el tiempo de pedido es inferior a 12
. Si es así, devuelve Ordered Before Noon
. En caso contrario, devuelve Ordered After Noon
.
Calcular el plazo de entrega combinando la fórmula IF() y VLOOKUP(). Fuente: Imagen del autor.
Puedes ver cómo realizo fácilmente el seguimiento de las entregas de mis productos deseados utilizando búsquedas condicionales.
Tratamiento de errores
Para tratar los errores, empieza con una declaración IF()
y utiliza ISNA()
con VLOOKUP()
dentro para comprobar si hay errores. Por ejemplo, para mostrar un mensaje personalizado si no se encuentra un producto:
-
Empieza con la función
IF()
:=IF()
. -
Dentro de la función
IF()
, utilizaISNA()
conVLOOKUP()
para comprobar si hay errores.
Aclaremos esto con un ejemplo. Digamos que tengo una tabla con precios de productos y quiero mostrar un mensaje personalizado cada vez que no se encuentre un producto.
Una tabla que contiene una lista de productos y sus precios. Fuente: Imagen del autor.
Para ello, selecciono una celda e introduzco la siguiente fórmula para encontrar el precio:
=(VLOOKUP(B7, $A$2:$B$5, 2, FALSE)
Después, lo combino con ISNA()
y IF()
para gestionar los posibles errores.
=IF(ISNA(VLOOKUP(B7, $A$2:$B$5, 2, FALSE)), "Product Not Found", (VLOOKUP(B7, $A$2:$B$5, 2, FALSE)))
Tratamiento de errores combinando fórmulas IF() e ISNA(). Fuente: Imagen del autor.
Aquí, ISNA()
comprueba si la función VLOOKUP()
devuelve un error #N/A
, lo que ocurriría si no estuviera disponible. En otras palabras, si ISNA()
se evalúa como TRUE
, la sentencia IF()
devuelve Product Not Found
; en caso contrario, devuelve el precio de VLOOKUP()
.
Indexación dinámica de columnas
Para elegir dinámicamente el índice de columna para VLOOKUP()
, empieza con una sentencia IF()
y utiliza VLOOKUP()
dentro de ella para seleccionar distintas columnas en función de una condición. Por ejemplo, para buscar diferentes columnas en función de un valor umbral:
-
Empieza con la función
IF()
:=IF()
. -
Dentro de la función
IF()
, utilizaVLOOKUP()
para comprobar el umbral y seleccionar la columna.
Aquí tengo una tabla de productos con la columna A con los nombres de los productos, la columna B con los precios de los productos y la columna C con la cantidad de existencias. Quiero consultar el precio del producto o la cantidad de existencias en función de si el precio está por encima o por debajo de un determinado umbral, como 50
.
Una tabla que contiene una lista de productos, sus ID y sus precios. Fuente: Imagen del autor.
Selecciono una celda e introduzco la siguiente fórmula:
=IF(VLOOKUP(B9, $B$9:$D$14, 2, FALSE) > 50, VLOOKUP(B9,$B$9:$D$14, 3, FALSE), VLOOKUP(B9,$B$9:$D$14, 2, FALSE))
Aplicar IF con VLOOKUP() anidado. Fuente: Imagen del autor.
Así es como funciona la fórmula:
-
(VLOOKUP(B9, $B$9:$D$14, 2, FALSE)
busca el producto enB9
desde la columna A y devuelve el precio desde la columna C. -
La declaración
IF()
comprueba si el precio es superior a$50
. -
Si es verdadero, nuestro código devuelve la cantidad de existencias:
VLOOKUP(B9,$B$9:$D$14, 3, FALSE)
. -
Si es falso, nuestro código devuelve el ID del producto:
VLOOKUP(B9,$B$9:$D$14, 2, FALSE))
.
Si trabajas con un conjunto de datos muy grande, puedes copiar la fórmula arrastrándola a la última celda rellenada.
Mostrando resultados. Fuente: Imagen del autor.
Y ya está. Como puedes ver, podemos recuperar la información deseada basándonos en condiciones específicas utilizando una fórmula combinada.
Técnicas avanzadas con VLOOKUP() e IF()
Ahora que ya tienes nociones básicas sobre la combinación de declaraciones IF()
con VLOOKUP()
, vamos a aprender algunas técnicas avanzadas a partir de ejemplos que he probado por mi cuenta.
Combinar varios criterios
Si buscas datos basándote en varios criterios, puedes combinar varias funciones VLOOKUP()
dentro de una sentencia IF()
para comprobar si se cumplen todas las condiciones.
Aquí tengo una tabla con los datos de compra del cliente y el estado de afiliación. Y quiero comprobar si un cliente era elegible para un programa de fidelización, que requiere al menos 500
en COMPRA TOTAL ($) y Gold
como ESTATUS DE MIEMBRO.
Una tabla con los datos de los clientes. Fuente: Imagen del autor.
Creo otra columna llamada Elegibilidad, que muestra los criterios de elegibilidad. A continuación, escribo la siguiente fórmula y pulso Intro:
=IF(AND(VLOOKUP(B2, $B$2:$D$11, 2, FALSE) >= 500, VLOOKUP(B2, $B$2:$D$11, 3, FALSE) = "Gold"), "Eligible", "Not Eligible")
Comprueba los criterios de elegibilidad de los clientes combinando varios criterios. Fuente: Imagen del autor.
Así es como funciona esta fórmula:
-
VLOOKUP(B2, $B$2:$D$11, 2, FALSE) >= 500
comprueba si el total de compras del cliente es como mínimo$500
. -
VLOOKUP(B2, $B$2:$D$11, 3, FALSE) = "Gold")
comprueba si el estado de afiliación de Juan eraGold
. AND
combina las condiciones para asegurarte de que ambas son verdaderas.-
IF()
devolvíaEligible
cuando ambas condiciones eran verdaderas. En caso contrario, devolvíaNot Eligible
.
Utilizar VLOOKUP() con IF() para cálculos
Puedes utilizar VLOOKUP()
para encontrar un valor y luego aplicar una sentencia IF()
para realizar cálculos basados en ese valor.
Aquí preparo una hoja con los productos y sus precios. Luego, quiero aplicar un descuento del 10% a los productos de más de 100 €.
Una tabla que contiene una lista de productos con sus precios. Fuente: Imagen del autor.
Así que creo otra columna llamada DESCUENTO y escribo la siguiente fórmula en esa columna para mostrar el descuento.
=IF(VLOOKUP(A2, $A$2:$B$10, 2, FALSE) > 100, VLOOKUP(A2, $A$2:$B$10, 2, FALSE) * 0.9, VLOOKUP(A2, $A$2:$B$10, 2, FALSE))
A continuación te explicamos cómo funciona esta fórmula:
-
VLOOKUP(A2, $A$2:$B$10, 2, FALSE)
recuperó el precio del producto, que es 56. -
=IF(VLOOKUP(A2, $A$2:$B$10, 2, FALSE) > 100, ..., ...)
comprueba si el precio del producto es superior a 100. -
Como la condición es verdadera,
VLOOKUP(A2, $A$2:$B$10, 2, FALSE) * 0.9
aplicó un descuento del 10%. -
(VLOOKUP(A2, $A$2:$B$10, 2, FALSE))
imprimió los precios reales del producto cuando la condición de descuento no era cierta.
Así obtuve el resultado final de la fórmula del producto, que fue 135
. Para obtener los resultados deseados para todos los productos, puedes arrastrar hacia abajo la fórmula y copiarla en la última celda rellenada.
Utilizar VLOOKUP() con IF para calcular los descuentos de los productos cuyos precios sean superiores a 100. Fuente: Imagen del autor.
Manejo de grandes conjuntos de datos
También puedes combinar VLOOKUP()
con la función IF()
para agilizar la recuperación de datos y la gestión de errores cuando trabajes con conjuntos de datos enormes.
Éste es nuestro último ejemplo: Tengo una hoja con información sobre los empleados, y quiero recuperar el departamento de un empleado y tratar los casos en los que el ID del empleado no existe.
Una tabla que contiene una lista de empleados con sus ID y Departamentos. Fuente: Imagen del autor.
Así que seleccioné una celda y escribí la siguiente fórmula:
=IFERROR(VLOOKUP(E3, $A$2:$C$18, 3, FALSE), "Not Found")
Después de pulsar Intro, arrastro la fórmula para copiarla también en otras celdas.
Recuperar el departamento del empleado a través del ID y gestionar los errores si no se encuentra al empleado. Fuente: Imagen del autor.
Y puedes ver los resultados más arriba. Así es como funciona esta fórmula:
-
El
VLOOKUP(E3, $A$2:$C$18, 3, FALSE)
recupera el departamento del empleado. -
IFERROR
gestiona los errores. En lugar de mostrar un mensaje de error (#N/A
), mostrará un mensaje amigable y personalizado.
En pocas palabras, ya no tienes que rebuscar en las sábanas. Porque cuando combinas las declaraciones VLOOKUP()
y IF()
, puedes abordar fácilmente en Excel incluso los conjuntos de datos más grandes.
Reflexiones finales
Combinando VLOOKUP()
con las declaraciones IF()
, puedes crear hojas de cálculo más precisas y resistentes a los errores. Asegúrate de experimentar con los ejemplos que he compartido para ver cómo estas técnicas pueden simplificar las tareas de gestión de datos y mejorar tus habilidades con Excel.
Si quieres mejorar tus conocimientos, echa un vistazo a nuestro curso Introducción a Excel y, a continuación, actualízate a la pista de conocimientos Fundamentos de Excel para dominar los aspectos básicos. Una vez que te sientas cómodo con estas funciones, avanza en tus habilidades analíticas con nuestro curso de Análisis de Datos en Excel. Pero si lo tuyo son más las finanzas, echa un vistazo a nuestro curso de Modelización Financiera en Excel para integrar conocimientos financieros.
Además, nuestro curso Preparación de datos en Excel te ayudará a agilizar el proceso de limpieza de datos, y el curso Visualización de datos en Excel te ayudará a presentar tus datos de forma atractiva.
Preguntas frecuentes
¿Puede VLOOKUP() manejar múltiples criterios?
VLOOKUP()
sola no puede manejar criterios múltiples, pero puedes utilizarla dentro de una sentencia IF()
o combinarla con otras funciones como AND
para conseguirlo.
¿Cuál es la diferencia entre TRUE y FALSE en la función VLOOKUP()?
TRUE
(u omitido) significa una coincidencia aproximada, mientras que FALSE
especifica una coincidencia exacta para el valor de búsqueda.
¿Cuál es el papel de la función AND al combinar VLOOKUP() con IF()?
AND
comprueba varias condiciones dentro de una sentencia IF()
para permitir criterios más complejos en las operaciones de VLOOKUP()
.
Aprende Excel con DataCamp
curso
Data Preparation in Excel
programa
Excel Fundamentals
tutorial
Cómo hacer un VLOOKUP() con múltiples criterios

Laiba Siddiqui
10 min
tutorial
XLOOKUP() frente a VLOOKUP(): una comparación para usuarios de Excel

Laiba Siddiqui
11 min
tutorial
Formato condicional en Excel: Guía para principiantes
tutorial
Las 15 fórmulas básicas de Excel que todo el mundo debe conocer
tutorial