Necesitas encontrar un solo valor de una lista en Excel, pero tu fórmula devuelve varios resultados o un error. Esto ocurre cuando tu rango de búsqueda contiene valores duplicados. La función XLOOKUP está diseñada para manejar esto de forma predeterminada. Este artículo explica cómo usar XLOOKUP para devolver de forma confiable solo el primer elemento coincidente.
Puntos clave: usar XLOOKUP para la primera coincidencia
- XLOOKUP con argumentos predeterminados: Encuentra y devuelve automáticamente el valor de la primera fila coincidente en tus datos.
- argumento match_mode establecido en 0: Garantiza que la función busque una coincidencia exacta, que es el uso más común.
- argumento search_mode omitido o establecido en 1: Indica a la función que busque desde el primer elemento hasta el último, garantizando que se encuentre la primera coincidencia.
Cómo encuentra XLOOKUP la primera coincidencia de forma predeterminada
XLOOKUP es un reemplazo moderno de funciones como VLOOKUP y HLOOKUP. Su diseño principal es buscar un valor de búsqueda dentro de una matriz de búsqueda. Cuando encuentra una coincidencia, devuelve un valor correspondiente de una matriz de retorno ubicada en la misma posición. Un comportamiento clave es que XLOOKUP detiene su búsqueda en cuanto encuentra el primer valor coincidente en la matriz de búsqueda. No necesitas ordenar tus datos para que esto funcione correctamente. La función buscará desde la parte superior de tu rango especificado hacia abajo de forma predeterminada, haciendo que la primera aparición que encuentre sea la que devuelva.
Pasos para escribir una fórmula XLOOKUP para la primera coincidencia
La sintaxis básica de XLOOKUP es =XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode]). Para devolver la primera coincidencia, normalmente solo necesitas los tres primeros argumentos. Los argumentos opcionales controlan el comportamiento para valores faltantes, coincidencias aproximadas y dirección de búsqueda.
- Identifica tu valor de búsqueda
Selecciona la celda que contiene el valor que deseas encontrar, o escribe el valor directamente en la fórmula entre comillas. - Define la matriz de búsqueda
Selecciona el rango de celdas donde Excel debe buscar tu valor de búsqueda. Este rango debe contener los posibles duplicados. - Define la matriz de retorno
Selecciona el rango de celdas del que deseas extraer el resultado. Este rango debe tener el mismo tamaño que tu matriz de búsqueda. - Introduce la fórmula básica
En tu celda de resultado, escribe =XLOOKUP(, luego haz clic en tu celda de valor de búsqueda, escribe una coma, selecciona tu matriz de búsqueda, escribe una coma y selecciona tu matriz de retorno. Cierra la fórmula con un paréntesis y presiona Enter.
Usar argumentos opcionales para tener control
Para un control preciso, puedes usar los argumentos opcionales. El argumento match_mode es fundamental para garantizar una coincidencia exacta.
- Agrega el argumento if_not_found
Después de return_array, escribe una coma y luego tu mensaje de error personalizado entre comillas, como “No encontrado”. Esto hace que el resultado sea más claro si no existe ninguna coincidencia. - Establece match_mode en 0
Agrega otra coma después del texto de if_not_found, luego escribe el número 0. Esto le indica explícitamente a XLOOKUP que encuentre una coincidencia exacta. - Confirma el search_mode
Normalmente puedes omitir el argumento final search_mode. Si lo incluyes, usa 1 para buscar de primero a último o -1 para buscar de último a primero. El valor predeterminado es 1, que encuentra la primera coincidencia.
Errores comunes y limitaciones que debes evitar
La fórmula devuelve el error #N/A
Este error significa que XLOOKUP no puede encontrar tu valor de búsqueda. Primero, verifica si hay errores tipográficos o espacios adicionales tanto en el valor de búsqueda como en los datos dentro de la matriz de búsqueda. Usa la función TRIM para eliminar espacios. Asegúrate de que tu match_mode esté establecido en 0 para una coincidencia exacta, o considera usar 1 para una coincidencia aproximada si trabajas con datos numéricos ordenados.
La fórmula devuelve el valor incorrecto
Si el resultado es incorrecto, es probable que tu lookup_array y tu return_array estén desalineados. Verifica que ambos rangos seleccionados comiencen en la misma fila y contengan el mismo número de filas. Un error común es que un rango sea una sola celda mientras que el otro sea una columna. Además, confirma que estás buscando en la columna correcta para tu valor de búsqueda.
Necesitas encontrar la última coincidencia en su lugar
XLOOKUP puede encontrar el último duplicado coincidente cambiando el argumento search_mode. Usa una fórmula como =XLOOKUP(F2, A2:A100, B2:B100, , 0, -1). El -1 al final le indica a Excel que busque desde la parte inferior de la lista hacia arriba, devolviendo la última coincidencia que encuentre.
XLOOKUP vs. VLOOKUP para la primera coincidencia
| Elemento | XLOOKUP | VLOOKUP |
|---|---|---|
| Comportamiento de búsqueda predeterminado | Devuelve la primera coincidencia automáticamente | Devuelve la primera coincidencia automáticamente |
| Flexibilidad de la dirección de búsqueda | Puede buscar de primero a último o de último a primero | Solo puede buscar de arriba hacia abajo |
| Método de referencia de columna | Usa un rango de matriz de retorno separado | Requiere un número de índice de columna estático |
| Manejo de valores no encontrados | Tiene un argumento [if_not_found] dedicado | Requiere envolverlo en la función IFERROR |
| Ubicación de la matriz de búsqueda | La matriz de búsqueda puede ser cualquier columna, a la izquierda o a la derecha | El valor de búsqueda debe estar en la primera columna de la tabla |
Ahora puedes usar XLOOKUP para extraer de forma limpia el primer valor coincidente de una lista que contiene duplicados. Intenta usar el argumento [if_not_found] para manejar datos faltantes de forma elegante en tus informes. Para escenarios más complejos, recuerda que puedes usar XLOOKUP para realizar una búsqueda bidireccional anidándolo dentro de otro XLOOKUP como argumento lookup_value.