Tabla de contenido
El tutorial presenta XLOOKUP, la nueva función de búsqueda vertical y horizontal de Excel. La búsqueda a la izquierda, la última coincidencia, Vlookup con múltiples criterios y muchas otras cosas que antes requerían un título en ciencias espaciales, ahora son tan fáciles como el abecedario.
Siempre que necesites realizar una búsqueda en Excel, ¿qué función utilizarías? ¿La piedra angular VLOOKUP o su hermana horizontal HLOOKUP? En un caso más complejo, ¿confiarías en la canónica combinación INDEX MATCH o encomendarías el trabajo a Power Query? La buena noticia es que ya no tienes que elegir: todos estos métodos están dejando paso a una sucesora más potente y versátil, la función XLOOKUP.
¿Cómo es mejor XLOOKUP? ¡De muchas maneras! Puede mirar vertical y horizontalmente, a la izquierda y arriba, buscar con múltiples criterios, e incluso devolver una columna o fila entera de datos, no sólo un valor. Microsoft ha tardado más de 3 décadas, pero finalmente han conseguido diseñar una función robusta que supera muchos errores frustrantes y debilidades de VLOOKUP.
La función XLOOKUP sólo está disponible en Excel para Microsoft 365, Excel 2021 y Excel para la Web.
Función XLOOKUP de Excel - sintaxis y usos
La función XLOOKUP de Excel busca un valor especificado en un rango o una matriz y devuelve el valor relacionado de otra columna. Puede buscar tanto vertical como horizontalmente y realizar una coincidencia exacta (por defecto), aproximada (la más cercana) o comodín (parcial).
La sintaxis de la función XLOOKUP es la siguiente:
XLOOKUP(valor_de_busqueda, matriz_de_busqueda, matriz_de_retorno, [si_no_encontrado], [modo_coincidencia], [modo_busqueda])Los 3 primeros argumentos son obligatorios y los tres últimos opcionales.
- Valor_buscado - el valor a buscar.
- Matriz_de_busqueda - el rango o array donde buscar.
- Matriz_de_devolución - el rango o array del que devolver valores.
- Si_no_se_encuentra [opcional] - el valor a devolver si no se encuentra ninguna coincidencia. Si se omite, se devuelve un error #N/A.
- Modo_partido [opcional] - el tipo de coincidencia a realizar:
- 0 u omitido (por defecto) - coincidencia exacta. Si no se encuentra, se devuelve un error #N/A.
- -1 - coincidencia exacta o siguiente menor. Si no se encuentra una coincidencia exacta, se devuelve el siguiente valor menor.
- 1 - coincidencia exacta o siguiente mayor. Si no se encuentra una coincidencia exacta, se devuelve el siguiente valor mayor.
- 2 - coincidencia de caracteres comodín.
- Modo_búsqueda [opcional] - la dirección de búsqueda:
- 1 u omitido (por defecto) - para buscar del primero al último.
- -1 - para buscar en orden inverso, del último al primero.
- 2 - búsqueda binaria en datos ordenados ascendentemente.
- -2 - búsqueda binaria en datos ordenados de forma descendente.
Según Microsoft, búsqueda binaria se incluye para usuarios avanzados. Se trata de un algoritmo especial que encuentra la posición de un valor de búsqueda dentro de una matriz ordenada comparándolo con el elemento central de la matriz. Una búsqueda binaria es mucho más rápida que una búsqueda normal, pero sólo funciona correctamente con datos ordenados.
Fórmula básica XLOOKUP
Para entenderlo mejor, vamos a construir una fórmula Xlookup en su forma más simple para realizar una búsqueda exacta. Para ello, sólo necesitaremos los 3 primeros argumentos.
Supongamos que se dispone de una tabla resumen con información sobre los cinco océanos de la Tierra. Se desea obtener el área de entrada de un océano concreto en F1 ( buscar_valor Con los nombres de los océanos en A2:A6 ( matriz_de_busqueda ) y zonas en C2:C6 ( matriz_de_devolución ), la fórmula es la siguiente:
=XLOOKUP(F1, A2:A6, C2:C6)
Traducido al inglés sencillo, dice: busca el valor F1 en A2:A6 y devuelve un valor de C2:C6 en la misma fila. Sin números de índice de columna, sin ordenación, sin otras rarezas ridículas de Vlookup. Simplemente funciona :)
XLOOKUP vs. VLOOKUP en Excel
Comparado con el tradicional VLOOKUP, XLOOKUP tiene muchas ventajas. ¿En qué sentido es mejor que VLOOKUP? Aquí tienes una lista de las 10 mejores características que hacen volar las puertas de cualquier otra función de búsqueda en Excel:
- Búsqueda vertical y horizontal La función XLOOKUP debe su nombre a su capacidad para buscar tanto vertical como horizontalmente.
- Mira en cualquier dirección: derecha, izquierda, abajo o arriba Mientras que VLOOKUP sólo puede buscar en la columna más a la izquierda y HLOOKUP en la fila más arriba, XLOOKUP no tiene estas limitaciones. La famosa búsqueda a la izquierda en Excel ya no es una molestia!
- Coincidencia exacta por defecto En la mayoría de los casos, lo que se busca es una coincidencia exacta, y XLOOKUP la devuelve por defecto (a diferencia de la función VLOOKUP, que devuelve por defecto una coincidencia aproximada). Por supuesto, también se puede hacer que XLOOKUP realice una coincidencia aproximada si es necesario.
- Coincidencia parcial con comodines Cuando sólo se conoce una parte del valor de la búsqueda, pero no todo, resulta útil utilizar un comodín.
- Búsqueda en orden inverso Antes, para obtener la última ocurrencia, había que invertir el orden de los datos de origen. Ahora, basta con establecer el parámetro modo_buscar a -1 para forzar que su fórmula Xlookup busque desde atrás y devuelva la última coincidencia.
- Devolver varios valores Manipulando con el matriz_de_devolución puede extraer toda una fila o columna de datos relacionados con su valor de búsqueda.
- Búsqueda con múltiples criterios Excel XLOOKUP maneja matrices de forma nativa, lo que permite realizar búsquedas con múltiples criterios.
- Si la funcionalidad de error Tradicionalmente, utilizamos la función IFNA para atrapar errores #N/A. XLOOKUP incorpora esta funcionalidad en la función if_not_found que permite mostrar su propio texto si no se encuentra ninguna coincidencia válida.
- Inserción/supresión de columnas Uno de los problemas más irritantes de VLOOKUP es que al añadir o eliminar columnas se rompe una fórmula, ya que la columna de retorno se identifica por su número de índice. Con XLOOKUP, se proporciona el rango de retorno, no el número, lo que significa que puede insertar y eliminar tantas columnas como necesite sin romper nada.
- Mejor rendimiento VLOOKUP podría ralentizar sus hojas de cálculo porque incluye toda la tabla en los cálculos, lo que resulta en el procesamiento de muchas más celdas de las que realmente se necesitan. XLOOKUP maneja sólo las matrices de búsqueda y retorno de las que realmente depende.
Cómo utilizar XLOOKUP en Excel - ejemplos de fórmulas
Los siguientes ejemplos muestran las funciones más útiles de XLOOKUP en acción. Además, descubrirá un par de usos no triviales que llevarán sus habilidades de búsqueda en Excel a un nuevo nivel.
Mirar hacia arriba vertical y horizontalmente
Microsoft Excel solía tener dos funciones para diferentes tipos de búsqueda, cada una con su propia sintaxis y reglas de uso: VLOOKUP para buscar verticalmente en una columna y HLOOKUP para buscar horizontalmente en una fila.
La función XLOOKUP puede hacer ambas cosas con la misma sintaxis. La diferencia está en lo que se proporciona para las matrices de búsqueda y de retorno.
Para v-lookup, suministrar columnas:
=XLOOKUP(E1, A2:A6, B2:B6)
Para la búsqueda h, introduzca filas en lugar de columnas:
=XLOOKUP(I1, B1:F1, B2:F2)
Búsqueda a la izquierda realizada de forma nativa
En versiones anteriores de Excel, la fórmula INDEX MATCH era la única forma fiable de buscar a la izquierda o arriba. Ahora, ya no es necesario combinar dos funciones donde bastaría con una. Basta con especificar la matriz de búsqueda de destino, y XLOOKUP la manejará sin problemas independientemente de su ubicación.
Como ejemplo, añadamos el Rango El objetivo es obtener el rango de la entrada del océano en F1. VLOOKUP tropezaría aquí porque sólo puede devolver un valor de una columna a la derecha de la columna de búsqueda. Una fórmula Xlookup se las arregla con facilidad:
=XLOOKUP(F1, B2:B6, A2:A6)
De forma similar, puede mirar arriba cuando busque horizontalmente en filas.
XLOOKUP con coincidencia exacta y aproximada
El comportamiento de la coincidencia se controla mediante el 5º argumento llamado modo_partido Por defecto, se realiza una coincidencia exacta.
Tenga en cuenta que aunque elija una coincidencia aproximada ( modo_partido a 1 o -1), la función seguirá buscando primero una coincidencia exacta. La diferencia está en lo que devuelve si no se encuentra un valor de búsqueda exacto.
Argumento Match_mode:
- 0 o se omite - coincidencia exacta; si no se encuentra - #N/A error.
- -1 - coincidencia exacta; si no se encuentra - siguiente elemento más pequeño.
- 1 - coincidencia exacta; si no se encuentra - siguiente elemento mayor.
Coincidencia exacta XLOOKUP
Esta es la opción que probablemente utilice el 99% de las veces que realice una búsqueda en Excel. Dado que la coincidencia exacta es el comportamiento por defecto de XLOOKUP, puede omitir modo_partido y proporcionar sólo los 3 primeros argumentos requeridos.
Una situación típica es cuando la tabla de consulta no contiene todos los valores, sino "hitos" o "límites" como descuentos por cantidad, comisiones por ventas, etc.
Nuestra tabla de búsqueda de ejemplo muestra la correlación entre las puntuaciones de los exámenes y las calificaciones. Como puede ver en la captura de pantalla siguiente, una coincidencia exacta sólo funciona cuando la puntuación de un estudiante concreto coincide exactamente con el valor de la tabla de búsqueda (como Christian en la fila 3). En todos los demás casos, se devuelve un error #N/A.
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6)
Para obtener las calificaciones en lugar de los errores #N/A, tenemos que buscar una coincidencia aproximada como se muestra en el siguiente ejemplo.
Coincidencia aproximada XLOOKUP
Para realizar una búsqueda aproximada, configure la opción modo_partido a -1 o 1, dependiendo de cómo estén organizados los datos.
En nuestro caso, la tabla de consulta lista los límites inferiores de las calificaciones. Por lo tanto, establecemos modo_partido a -1 para buscar el siguiente valor más pequeño cuando no se encuentra una coincidencia exacta:
=XLOOKUP(F11, $B$11:$B$15, $C$11:$C$15, ,-1)
Por ejemplo, Brian tiene la nota 98 (F2). La fórmula busca este valor de búsqueda en B2:B6 pero no lo encuentra. Entonces, busca el siguiente elemento más pequeño y encuentra 90, que corresponde a la nota A:
Si nuestra tabla de consulta contuviera los límites superiores de las calificaciones, estableceríamos modo_partido a 1 para buscar el siguiente elemento mayor si falla una coincidencia exacta:
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6, ,1)
La fórmula busca 98 y de nuevo no lo encuentra. Esta vez, intenta encontrar el siguiente valor mayor y obtiene 100, correspondiente al grado A:
Sugerencia: cuando copie una fórmula Xlookup en varias celdas, bloquee los rangos de búsqueda o de retorno con referencias de celda absolutas (como $B$2:$B$6) para evitar que cambien.
XLOOKUP con coincidencia parcial (comodines)
Para realizar una búsqueda de coincidencias parciales, defina la opción modo_partido a 2, lo que indica a la función XLOOKUP que procese los caracteres comodín:
- Un asterisco (*) - representa cualquier secuencia de caracteres.
- Un signo de interrogación (?) - representa un carácter cualquiera.
Para ver cómo funciona, considere el siguiente ejemplo. En la columna A, tiene algunos modelos de teléfonos inteligentes y, en la columna B, la capacidad de su batería. Tiene curiosidad por saber cuál es la batería de un determinado teléfono inteligente. El problema es que no está seguro de poder escribir el nombre del modelo exactamente como aparece en la columna A. Para solucionarlo, introduzca la parte que sin duda está ahí y sustituya el resto porcaracteres con comodines.
Por ejemplo, para obtener información sobre la batería del iPhone X, utiliza esta fórmula:
=XLOOKUP("*iphone X*", A2:A8, B2:B8, ,2)
O bien, introduzca la parte conocida del valor de búsqueda en alguna celda y concatene la referencia de celda con los caracteres comodín:
=XLOOKUP("*"&E1& "*", A2:A8, B2:B8, ,2)
XLOOKUP en orden inverso para obtener la última ocurrencia
En caso de que su tabla contenga varias apariciones del valor de búsqueda, es posible que a veces necesite devolver el valor último partido Para ello, configure su fórmula Xlookup para que busque en orden inverso.
La dirección de búsqueda se controla mediante el sexto argumento denominado modo_buscar :
- 1 u omitido (por defecto) - busca del primer valor al último, es decir, de arriba abajo con búsqueda vertical o de izquierda a derecha con búsqueda horizontal.
- -1 - busca en orden inverso del último al primer valor.
Como ejemplo, devolvamos la última venta realizada por un vendedor concreto. Para ello, juntamos los tres primeros argumentos necesarios (G1 para buscar_valor B2:B9 para matriz_de_busqueda y D2:D9 para matriz_de_devolución ) y poner -1 en el 5º argumento:
=XLOOKUP(G1, B2:B9, D2:D9, , ,-1)
Sencillo y fácil, ¿verdad?
XLOOKUP para devolver varias columnas o filas
Otra característica sorprendente de XLOOKUP es su capacidad para devolver más de un valor relacionado con la misma coincidencia. Todo ello con la sintaxis estándar y sin manipulaciones adicionales!
En la siguiente tabla, supongamos que desea recuperar todos los detalles relativos al vendedor que le interesa (F2). Lo que tiene que hacer es proporcionar un rango, no una sola columna o fila, para el campo matriz_de_devolución argumento:
=XLOOKUP(F2, A2:A7, B2:D7)
Se introduce la fórmula en la celda superior izquierda del rango de resultados, y Excel vierte automáticamente los resultados en las celdas en blanco adyacentes. En nuestro caso, el rango de resultados (B2:D7) incluye 3 columnas ( Fecha , Artículo y Importe ), y los tres valores se devuelven en el rango G2:I2.
Si prefiere ordenar los resultados verticalmente en una columna, anide XLOOKUP en la función TRANSPOSE para voltear la matriz devuelta:
=TRANSPOSE(XLOOKUP(G1, A2:A7, B2:D7))
De forma similar, puede devolver una columna entera de datos, digamos la columna Importe Para ello, utilice la celda F1 que contiene "Importe" como buscar_valor el rango A1:D1 que contiene las cabeceras de columna como matriz_de_busqueda y el rango A2:D7 que contiene todos los datos como matriz_de_devolución .
=XLOOKUP(F1, A1:D1, A2:D7)
Nota. Como los valores múltiples se rellenan en celdas vecinas, asegúrese de que tiene suficientes celdas en blanco a la derecha o abajo. Si Excel no puede encontrar suficientes celdas vacías, se produce un error #SPILL!
Sugerencia: XLOOKUP no sólo puede devolver varias entradas, sino también sustituirlas por otros valores que especifique. Puede encontrar un ejemplo de sustitución masiva aquí: Cómo buscar y sustituir varios valores con XLOOKUP.
XLOOKUP con criterios múltiples
Otra gran ventaja de XLOOKUP es que maneja matrices de forma nativa. Gracias a esta capacidad, puede evaluar múltiples criterios directamente en el método matriz_de_busqueda argumento:
XLOOKUP(1, ( rango_de_criterios1 = criterios1 ) * ( rango_de_criterios2 = criterios2 ) * (...), matriz_de_devolución )Cómo funciona esta fórmula El resultado de cada prueba de criterios es una matriz de valores TRUE y FALSE. La multiplicación de las matrices convierte TRUE y FALSE en 1 y 0, respectivamente, y produce la matriz de búsqueda final. Como sabe, multiplicar por 0 siempre da cero, por lo que en la matriz de búsqueda, sólo los elementos que cumplen todos los criterios están representados por 1. Y como nuestro valor de búsqueda es "1", Excel toma el primer "1" en matriz_de_busqueda (primera coincidencia) y devuelve el valor de matriz_de_devolución en la misma posición.
Para ver la fórmula en acción, extraigamos un importe de D2:D10 ( matriz_de_devolución ) con las siguientes condiciones:
- Criterios1 (fecha) = G1
- Criterios2 (vendedor) = G2
- Criterios3 (elemento) = G3
Con fechas en A2:A10 ( rango_de_criterios1 ), los nombres de los vendedores en B2:B10 ( rango_de_criterios2 ) y los elementos de C2:C10 ( rango_de_criterios3 ), la fórmula toma esta forma:
=XLOOKUP(1, (B2:B10=G1) * (A2:A10=G2) * (C2:C10=G3), D2:D10)
Aunque la función XLOOKUP de Excel procesa matrices, funciona como una fórmula normal y se completa con la pulsación habitual de la tecla Intro.
La fórmula XLOOKUP con criterios múltiples no se limita a condiciones "igual a". También puede utilizar otros operadores lógicos. Por ejemplo, para filtrar pedidos realizados en la fecha en G1 o antes, ponga "<=G1" en el primer criterio:
=XLOOKUP(1, (A2:A10<=G1) * (B2:B10=G2) * (C2:C10=G3), D2:D10)
Doble XLOOKUP
Para encontrar un valor en la intersección de una fila y una columna determinadas, realice la operación denominada búsqueda doble o búsqueda de matrices Sí, Excel XLOOKUP también puede hacerlo, simplemente anida una función dentro de otra:
XLOOKUP( valor_buscado1 , matriz_de_busqueda1 XLOOKUP( buscar_valor2 , matriz_de_busqueda2 , valores_datos ))Cómo funciona esta fórmula La fórmula se basa en la capacidad de XLOOKUP de devolver una fila o columna completa. La función interna busca su valor de búsqueda y devuelve una columna o fila de datos relacionados. Esa matriz va a la función externa como el valor matriz_de_devolución .
En este ejemplo, vamos a buscar las ventas realizadas por un vendedor concreto en un trimestre determinado. Para ello, introducimos los valores de búsqueda en H1 (nombre del vendedor) y H2 (trimestre), y realizamos un Xlookup bidireccional con la siguiente fórmula:
=XLOOKUP(H1, A2:A6, XLOOKUP(H2, B1:E1, B2:E6))
O al revés:
=XLOOKUP(H2, B1:E1, XLOOKUP(H1, A2:A6, B2:E6))
Donde A2:A6 son los nombres de los vendedores, B1:E1 son los trimestres (cabeceras de columna) y B2:E6 son los valores de los datos.
También se puede realizar una búsqueda bidireccional con una fórmula INDEX Match y de algunas otras formas. Para más información, consulta Búsqueda bidireccional en Excel.
Si Error XLOOKUP
Cuando no se encuentra el valor de búsqueda, Excel XLOOKUP devuelve un error #N/A. Bastante familiar y comprensible para los usuarios expertos, puede resultar algo confuso para los novatos. Para sustituir la notación de error estándar por un mensaje fácil de usar, escriba su propio texto en el 4º argumento llamado if_not_found .
Si alguien introduce un nombre de océano no válido en E1, la siguiente fórmula le dirá explícitamente que "No se ha encontrado ninguna coincidencia":
=XLOOKUP(E1, A2:A6, B2:B6, "No se ha encontrado ninguna coincidencia")
Notas:
- En if_not_found atrapa sólo los errores #N/A, no todos los errores.
- Los errores #N/A también se pueden manejar con IFNA y VLOOKUP, pero la sintaxis es un poco más compleja y la fórmula es más larga.
XLOOKUP con mayúsculas y minúsculas
Por defecto, la función XLOOKUP trata las letras minúsculas y mayúsculas como los mismos caracteres. Para que distinga entre mayúsculas y minúsculas, utilice la función EXACT para el carácter matriz_de_busqueda argumento:
XLOOKUP(TRUE, EXACT( buscar_valor , matriz_de_busqueda ), matriz_de_devolución )Cómo funciona esta fórmula Función EXACT: La función EXACT compara el valor de búsqueda con cada valor de la matriz de búsqueda y devuelve TRUE si son exactamente iguales, incluidas las mayúsculas y minúsculas, y FALSE en caso contrario. Esta matriz de valores lógicos va a la función matriz_de_busqueda de XLOOKUP. Como resultado, XLOOKUP busca el valor TRUE en la matriz anterior y devuelve una coincidencia de la matriz de retorno.
Por ejemplo, para obtener el precio de B2:B7 ( matriz_de_devolución ) para el elemento de E1 ( valor_buscado) la fórmula en E2 es:
=XLOOKUP(TRUE, EXACT(E1, A2:A7), B2:B7, "No encontrado")
Nota: si hay dos o más valores exactamente iguales en la matriz de búsqueda (incluidas las mayúsculas y minúsculas), se devuelve la primera coincidencia encontrada.
Excel XLOOKUP no funciona
Si su fórmula no funciona correctamente o da error, lo más probable es que se deba a las siguientes razones:
XLOOKUP no está disponible en mi Excel
La función XLOOKUP no es compatible con versiones anteriores. Solo está disponible en Excel para Microsoft 365 y Excel 2021, y no aparecerá en versiones anteriores.
XLOOKUP devuelve un resultado erróneo
Si su fórmula Xlookup, obviamente correcta, devuelve un valor incorrecto, lo más probable es que el rango de búsqueda o de retorno se haya "desplazado" al copiar la fórmula hacia abajo o hacia el otro lado. Para evitar que esto ocurra, asegúrese de bloquear siempre ambos rangos con referencias de celda absolutas (como $A$2:$A$10).
XLOOKUP devuelve #N/A error
Un error #N/A sólo significa que no se ha encontrado el valor de búsqueda. Para solucionarlo, intente buscar una coincidencia aproximada o informe a sus usuarios de que no se ha encontrado ninguna coincidencia.
XLOOKUP devuelve error #VALOR
Se produce un error #VALUE! si las matrices de búsqueda y devolución tienen dimensiones incompatibles. Por ejemplo, no es posible buscar en una matriz horizontal y devolver valores de una matriz vertical.
XLOOKUP devuelve #REF error
Se produce un error #REF! al buscar entre dos libros de trabajo diferentes, uno de los cuales está cerrado. Para solucionar el error, basta con abrir ambos archivos.
Como acabas de ver, XLOOKUP tiene muchas características impresionantes que la convierten en LA función para casi cualquier búsqueda en Excel. Te doy las gracias por leer y ¡espero verte en nuestro blog la próxima semana!
Cuaderno de prácticas para descargar
Ejemplos de fórmulas XLOOKUP de Excel (archivo .xlsx)