Saltar al contenido principal

XLOOKUP() frente a VLOOKUP(): una comparación para usuarios de Excel

XLOOKUP() busca en cualquier dirección, usa de forma predeterminada coincidencias exactas y tiene gestión de errores integrada, mientras que VLOOKUP() solo busca a la derecha y necesita una indexación manual de las columnas.
Actualizado 3 sept 2024  · 11 min de lectura

Durante décadas, VLOOKUP() ha sido la función usada en Excel para buscar datos. Es una herramienta fiable, pero tiene limitaciones. Por eso, en 2019 se introdujo XLOOKUP(), una nueva función con capacidades avanzadas. En este artículo, compararemos VLOOKUP() y XLOOKUP() para comprender mejor sus características y diferentes usos. 

Ten en cuenta que el cambio de VLOOKUP() a XLOOKUP() es solo una de las muchas actualizaciones de Excel. Estar al día de la evolución de las funciones de Excel es importante para maximizar la productividad. Por eso, debes consultar el programa de competencias Fundamentos de Excel para asegurarte de que utilizas las características más recientes.

Sintaxis de XLOOKUP() y VLOOKUP()

Ahora que tienes una comprensión básica de ambas funciones, comprendamos su sintaxis y cómo utilizarlas en aplicaciones de la vida real. 

Sintaxis de VLOOKUP()

Veamos la sintaxis de VLOOKUP()

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

En la fórmula anterior:

  • lookup_value es el valor que quieres buscar. Puede ser un número, texto o una referencia a una celda que contiene el valor de búsqueda.

  • table_array es el intervalo de celdas que contiene los datos. La primera columna de este intervalo debe contener la search_key.

  • col_index_num es el número de columna del intervalo del que quieres recuperar el valor. 

  • range_lookup es donde introduces un valor lógico (TRUE o FALSE).

Sintaxis de XLOOKUP()

Veamos ahora la sintaxis de xlookup(). Como vemos, XLOOKUP() tiene más argumentos que VLOOKUP().

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

En la fórmula anterior:

  • lookup_value es el valor que quieres buscar.

  • lookup_array es el intervalo de celdas donde se busca el valor de búsqueda.

  • return_array es el intervalo de celdas que contiene el valor que quieres devolver.

  • if_not_found (opcional) devuelve un valor si no se encuentra ninguna coincidencia. Si no se especifica el valor, devuelve #N/A.

  • match_mode (opcional) determina el tipo de coincidencia. 0 es para la coincidencia exacta (valor predeterminado). -1 es para la coincidencia exacta o el siguiente elemento menor. 1 es para la coincidencia exacta o el siguiente elemento mayor. 2 es para la coincidencia de caracteres comodín.

  • search_mode (opcional) determina el modo de búsqueda. 1 se utiliza para buscar del primero al último (valor predeterminado). -1 se utiliza para buscar del último al primero. 2 se utiliza para realizar la búsqueda binaria en orden ascendente. -2 se utiliza para realizar la búsqueda binaria en orden descendente.

Principales diferencias: XLOOKUP() frente a VLOOKUP()

Exploremos ahora algunas diferencias clave entre las funciones XLOOKUP() y VLOOKUP().

Modo de coincidencia exacta 

XLOOKUP() utiliza de forma predeterminada el modo de coincidencia exacta, pero VLOOKUP() requiere especificar FALSE para una coincidencia exacta.

XLOOKUP utiliza de forma predeterminada la coincidencia exacta, mientras que VLOOKUP requiere especificar FALSE para la coincidencia exacta.

Diferencia de coincidencia exacta entre XLOOKUP() y VLOOKUP(). Fuente: Imagen del autor.

En VLOOKUP() no he especificado el valor de range_lookup (4.º argumento), por lo que ha dado la coincidencia más cercana, que no es nuestro resultado deseado. XLOOKUP(), en cambio, devuelve de forma predeterminada la coincidencia exacta.

Dirección de búsqueda

VLOOKUP() se limita a buscar solo a la derecha de la primera columna de la matriz de la tabla seleccionada. Sin embargo, XLOOKUP() puede buscar valores en cualquier dirección.

VLOOKUP solo puede buscar a la derecha de la columna de búsqueda, mientras que XLOOKUP puede buscar tanto a la izquierda como a la derecha dentro de la matriz de búsqueda.

Diferencia de dirección de búsqueda entre VLOOKUP() y XLOOKUP(). Fuente: Imagen del autor.

Aquí, VLOOKUP() no ha encontrado calificaciones porque solo puede buscar datos a la derecha del lookup_value (nombre del alumno). Por el contrario, XLOOKUP() encuentra las calificaciones de Robin porque puede buscar en cualquier dirección (a izquierda o derecha).

Referencias de matrices

En VLOOKUP(), tienes que definir todo el intervalo de datos (matriz de tabla) y especificar el número de columna (índice de columna) que contiene la salida deseada (columna de retorno) dentro de una única fórmula. XLOOKUP() es más flexible. Te permite definir matrices separadas para el valor de búsqueda y los datos que quieres devolver. 

VLOOKUP necesita un único intervalo de datos e índice de columna, mientras que XLOOKUP permite matrices separadas para los valores de búsqueda y de retorno.

Referencias de matrices entre VLOOKUP() y XLOOKUP(). Fuente: Imagen del autor.

Búsqueda horizontal

VLOOKUP() no te permite realizar búsquedas horizontales. Si quieres una búsqueda horizontal, tendrías que utilizar HLOOKUP(). XLOOKUP() consolida estas dos funciones porque realiza búsquedas tanto verticales como horizontales, de modo que no tienes que utilizar funciones distintas para direcciones de búsqueda diferentes.

Gestión de filas horizontales con VLOOKUP, HLOOKUP y XLOOKUP

Diferencia de búsqueda horizontal entre VLOOKUP() y XLOOKUP(). Fuente: Imagen del autor.

Gestión de inserciones o eliminaciones de columnas 

Los cambios de columna afectan a VLOOKUP() debido a la codificación rígida de column_index_num. Sin embargo, XLOOKUP() no se ve afectado por los cambios de columna. Sigue funcionando sin ajustes en la fórmula.

XLOOKUP no se ve afectado por los cambios de columna, mientras que VLOOKUP falla debido a la codificación rígida de los índices de columna.

XLOOKUP() no se ve afectado, mientras que VLOOKUP() falla. Fuente: Imagen del autor.

Ordenar y buscar

Puedes ordenar VLOOKUP() en orden ascendente, pero esto provocaría dificultades al tratar con datos sin ordenar. Sin embargo, XLOOKUP() puede utilizar el argumento search_mode para buscar tanto en orden ascendente como descendente.

XLOOKUP puede buscar tanto en orden ascendente como descendente, mientras que VLOOKUP se limita al orden ascendente.

Gestión de la inserción y la eliminación en XLOOKUP() y VLOOKUP(). Fuente: Imagen del autor.

Mensajes de error personalizados

VLOOKUP() muestra un signo de error #N/A cuando no se encuentra ninguna coincidencia. XLOOKUP() tiene un parámetro opcional if_not_found que te permite personalizar el texto de salida si no se encuentra un valor. 

XLOOKUP puede devolver un mensaje personalizado cuando no se encuentra un valor, mientras que VLOOKUP muestra un error #N/A.

Personalización de los mensajes de error en XLOOKUP() y VLOOKUP(). Fuente: Imagen del autor.

Puedes ver que VLOOKUP() no ha podido encontrar al alumno en su lista y ha mostrado un error #N/A. Del mismo modo, la función XLOOKUP() no ha podido localizar el nombre del alumno. Sin embargo, a diferencia de VLOOKUP(), XLOOKUP() devuelve un mensaje específico cuando no hay ninguna coincidencia.

Devolver varios valores

VLOOKUP() solo puede devolver un valor cada vez. Sin embargo, XLOOKUP() puede recuperar valores de varias columnas simultáneamente. Por eso, puedes utilizar una fórmula de XLOOKUP() en lugar de varias fórmulas de VLOOKUP().

XLOOKUP recupera varias columnas, mientras que VLOOKUP solo puede recuperar una única columna

Devolución de varios valores con XLOOKUP() y VLOOKUP(). Fuente: Imagen del autor.

Modo de búsqueda

VLOOKUP() examina una lista desde el principio y solo devuelve el primer valor que coincida con lo que quieres. Sin embargo, XLOOKUP() puede analizar una lista en cualquier dirección (de arriba abajo o de abajo arriba) y encontrar cosas rápidamente en listas extensas.

Diferencia entre VLOOKUP() y XLOOKUP(). Fuente: Imagen del autor.

Aquí, VLOOKUP() recupera la primera aparición, que es del primer semestre. Sin embargo, con XLOOKUP(), utilizo el código de modo de búsqueda -1 para buscar de abajo arriba.

Ejemplos prácticos y casos de uso

Veamos ahora algunos ejemplos prácticos y casos de uso.

Utilizar una búsqueda sin tener que reorganizar una tabla

Tengo una lista de nombres y puntuaciones de alumnos, y quiero encontrar la puntuación de cada alumno en función de su nombre. Para ello, utilizaré las funciones XLOOKUP() y VLOOKUP() para mostrarte las diferencias. 

Cuando utilizo XLOOKUP(), introduzco la siguiente fórmula:

=XLOOKUP(D8,B2:B5,A2:A5)

En esta fórmula:

  • D8 contiene el valor de búsqueda, que es Charlie.

  • El intervalo B2:B5 contiene los nombres de los alumnos. La función XLOOKUP() buscará el valor de D8 dentro de este intervalo.

  • A2:A5 es el intervalo que contiene las puntuaciones correspondientes a los nombres de los alumnos. 

Cuando utilizo VLOOKUP(), introduzco la siguiente fórmula:

=VLOOKUP(D4,A1:B5,1,0)

En esta fórmula:

  • D4 contiene el valor de búsqueda, que es Charlie.

  • El intervalo A1:B5 busca dentro de todas las columnas (Scores, Student y Name).

  • 1 devuelve el valor de la 1.ª columna del intervalo (Scores).

  • 0 recupera la coincidencia exacta.

VLOOKUP devuelve un error #N/A para las búsquedas a la izquierda, mientras que XLOOKUP lo gestiona perfectamente.

VLOOKUP() devuelve un error #N/A, pero XLOOKUP() lo gestiona. Fuente: Imagen del autor.

Como puedes ver, VLOOKUP() muestra un error #N/A porque no puede buscar a la izquierda.

Crear una salida personalizada cuando no se encuentra un valor

Tengo una lista de alumnos con sus ID, nombres y calificaciones. Mientras buscaba, introduje accidentalmente un ID de alumno que no estaba en la lista. Para gestionar este caso, quiero que aparezca un mensaje personalizado cada vez que no se encuentre el ID de alumno. Utilizaré las funciones XLOOKUP() y VLOOKUP() para mostrarte las diferencias. 

Cuando utilizo XLOOKUP(), introduzco la siguiente fórmula:

(=XLOOKUP(E9, A2:A5, B2:B5, "Student not Found")) 

En esta fórmula:

  • E9 contiene el valor que queremos buscar. En mi caso, es 14256.

  • A2:A5 es el intervalo de celdas que contiene el valor de búsqueda (Student ID).

  • B2:B5 busca la puntuación del ID 14526.

  • Student not Found aparece si la puntuación no está en la lista. 

Cuando utilizo VLOOKUP(), introduzco la siguiente fórmula:

(=VLOOKUP(E6, A2:C5,2,0)) 

En esta fórmula:

  • E6 hace referencia a Student ID, que es lo que estoy buscando.

  • A2:C5 hace referencia al intervalo que contiene todos los datos de la tabla.

  • 2 indica el número de columna del que se obtendrán los datos.

  • 0 recupera la coincidencia exacta.

XLOOKUP devuelve el mensaje personalizado, mientras que VLOOKUP muestra el error #N/A

XLOOKUP() devuelve un mensaje, pero VLOOKUP() no. Fuente: Imagen del autor.

Puedes ver que 14256 no existe en el intervalo A2:A5, por lo que XLOOKUP() devuelve el mensaje personalizado Student not found. Y VLOOKUP(), en cambio, arroja un error #N/A

Buscar de abajo arriba

Quiero encontrar el salario de Sarah del año más reciente. Para ello, utilizaré las funciones XLOOKUP() y VLOOKUP() para mostrarte las diferencias. 

Cuando utilizo XLOOKUP(), introduzco la siguiente fórmula:

=XLOOKUP(F8,B2:B10,C2:C10,,,-1)

En esta fórmula:

  • F8 contiene el valor de búsqueda Sarah.

  • B2:B10 mira en el intervalo y busca Sarah.

  • C2:C10 recupera los datos.

  • -1 busca desde la parte inferior de la columna. 

Cuando utilizo VLOOKUP(), introduzco la siguiente fórmula:

=VLOOKUP(F4, B2:C10,2,0)

En esta fórmula:

  • F4 contiene el valor de búsqueda Sarah.

  • B2:C10 busca el valor de búsqueda dentro de este intervalo.

  • 2 indica el número de columna Salary, de la que se obtendrán los datos.

  • 0 recupera la coincidencia exacta.

VLOOKUP devuelve la primera coincidencia de la parte superior de la lista, mientras que XLOOKUP puede buscar en ambas direcciones y encontrar la coincidencia más reciente

Diferencia entre VLOOKUP() y XLOOKUP() en modo de búsqueda. Fuente: Imagen del autor.

Puedes ver que XLOOKUP() encuentra el salario deseado para el año deseado, mientras que VLOOKUP() solo muestra el primer valor coincidente. He podido hacer esto porque XLOOKUP() me permite buscar de abajo arriba.

Rendimiento y compatibilidad

Comparemos ahora el rendimiento y la compatibilidad de ambas funciones. 

Rendimiento en grandes conjuntos de datos

VLOOKUP() puede ser más lento cuando se gestionan conjuntos de datos grandes, especialmente si la columna de búsqueda no está ordenada y el argumento de búsqueda de intervalo se establece en FALSE para una coincidencia exacta. Esto se debe a que VLOOKUP() analiza el conjunto de datos secuencialmente hasta que encuentra una coincidencia, lo que puede llevar mucho tiempo en el caso de tablas grandes. XLOOKUP() ofrece un mejor rendimiento con conjuntos de datos grandes. Puede gestionar las coincidencias exactas de forma más eficiente y buscar horizontal y verticalmente sin ordenar. 

Compatibilidad con diferentes versiones de Excel

Ahora debes estar pensando en abandonar VLOOKUP() después de ver las ventajas de XLOOKUP(). Sin embargo, permíteme una aclaración: aunque XLOOKUP() es una función mucho más rápida y excelente, hay un par de ocasiones en las que no está disponible. Esto se debe a que XLOOKUP() es una característica más reciente que solo funciona en Excel 2021 y Microsoft 365 (a partir de 2019). Si colaboras con personas que utilizan versiones anteriores de Excel, tendrás que utilizar VLOOKUP() y otras funciones en lugar de XLOOKUP().

Cuadro sinóptico

Creemos un cuadro sinóptico para facilitar la consulta. 

Característica VLOOKUP() XLOOKUP()
Modo de coincidencia predeterminado Requiere especificar FALSE para una coincidencia exacta. Usa de forma predeterminada la coincidencia exacta.
Dirección de búsqueda Solo busca a la derecha de la columna de búsqueda. Puede buscar en cualquier dirección (izquierda, derecha, arriba, abajo).
Referencias de matrices Requiere definir todo el intervalo de datos y el índice de columna en una sola fórmula. Permite matrices separadas para el valor de búsqueda y los valores de retorno.
Búsqueda horizontal No admite búsquedas horizontales (HLOOKUP() es necesario). Admite búsquedas verticales y horizontales.
Gestión de los cambios de columna Afectado por inserciones y eliminaciones de columnas debido a la codificación rígida de los índices de columna. No se ve afectado por los cambios de columna, sigue funcionando sin ajustes.
Ordenar y buscar Limitado a ordenar en orden ascendente. Puede buscar en orden ascendente y descendente utilizando el argumento search_mode .
Mensajes de error personalizados Muestra el error #N/A cuando no se encuentra ninguna coincidencia. Permite personalizar el mensaje de salida cuando no se encuentra ninguna coincidencia.
Devolver varios valores Solo puede devolver un valor cada vez. Puede recuperar valores de varias columnas simultáneamente.
Modo de búsqueda Busca de arriba abajo y devuelve la primera coincidencia. Puede buscar en ambas direcciones (de arriba abajo o de abajo arriba) para obtener resultados más rápidos en listas extensas.
Rendimiento en grandes conjuntos de datos Puede ser más lento, especialmente con datos sin ordenar o cuando range_lookup es FALSE. Mejor rendimiento, gestiona con eficiencia grandes conjuntos de datos y busca sin ordenar.
Compatibilidad Funciona con todas las versiones de Excel. Solo disponible en Excel 2021 y Microsoft 365 (a partir de 2019).
Reflexiones finales Sigue siendo útil para versiones anteriores de Excel o tareas de búsqueda más sencillas. Más potente y flexible, más adecuado para búsquedas complejas o a gran escala.

Reflexiones finales

XLOOKUP() supera a VLOOKUP(), especialmente cuando se gestionan grandes conjuntos de datos o los requisitos de la búsqueda son complejos. Su flexibilidad, que incluye búsqueda bidireccional, recuperación de varios resultados y adaptabilidad a los cambios de datos, lo convierte en una herramienta útil. Sin embargo, VLOOKUP() sigue teniendo su lugar, sobre todo para los usuarios de versiones anteriores de Excel o para los que prefieren un enfoque más sencillo de las búsquedas básicas. La mejor opción depende, en última instancia, de tus necesidades específicas y de la versión de Excel.

Si eres principiante en Excel o quieres construir una base sólida, nuestro curso Introducción a Excel y el programa de competencias Fundamentos de Excel son excelentes puntos de partida para dominar los conceptos básicos.

Preguntas frecuentes

¿Es XLOOKUP() mejor que VLOOKUP()?

Sí, XLOOKUP() es mejor porque puede buscar en cualquier columna de una tabla, devolver varios resultados, gestionar mejor los errores y realizar búsquedas verticales y horizontales.

¿Cuáles son las limitaciones de VLOOKUP() en comparación con XLOOKUP()?

VLOOKUP() se limita a buscar en la primera columna de un intervalo especificado. Y solo puede devolver un resultado por búsqueda.

¿Puede XLOOKUP() gestionar operaciones de matrices como SUMIFS() o COUNTIFS()?

Sí, XLOOKUP() puede utilizarse con funciones de matrices como SUMIFS() y COUNTIFS() para realizar cálculos más complejos y tareas de análisis de datos.

Temas

Aprende Excel con DataCamp

Certificación disponible

curso

Modelado financiero en Excel

3 hr
7.1K
Aprende sobre modelado financiero en Excel, lo que incluye flujo de caja, análisis de escenarios, valor tiempo y presupuesto de capital.
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

tutorial

Cómo hacer un VLOOKUP() con múltiples criterios

Domina el arte de utilizar VLOOKUP() con criterios múltiples en Excel. Explora técnicas avanzadas como las columnas de ayuda y la función ELEGIR().
Laiba Siddiqui's photo

Laiba Siddiqui

10 min

tutorial

Las 15 fórmulas básicas de Excel que todo el mundo debe conocer

Aprende a añadir fórmulas aritméticas, de cadena, de series temporales y complejas en Microsoft Excel.
Abid Ali Awan's photo

Abid Ali Awan

15 min

tutorial

Visualización de datos en Excel

Conozca las distintas opciones de visualización de datos de Excel que pueden ayudarle a analizar e interpretar sus datos.
Jess Ahmet's photo

Jess Ahmet

12 min

tutorial

Cómo utilizar un alias SQL para simplificar tus consultas

Explora cómo el uso de un alias SQL simplifica tanto los nombres de las columnas como los de las tablas. Aprende por qué utilizar un alias SQL es clave para mejorar la legibilidad y gestionar uniones complejas.
Allan Ouko's photo

Allan Ouko

9 min

tutorial

Cómo calcular la desviación típica en Excel

Para calcular la desviación típica en Excel, introduce tus datos en un rango de celdas y utiliza =STDEV.S() para datos de muestra o =STDEV.P() para datos de población.
Arunn Thevapalan's photo

Arunn Thevapalan

10 min

See MoreSee More