XLOOKUP: La evolución de BUSCARV
La función moderna que reemplaza a BUSCARV con más flexibilidad.
XLOOKUP llegó a Excel 365 para resolver todas las limitaciones de BUSCARV. En esta lección aprenderás por qué deberías migrar a XLOOKUP y cómo aprovechar sus capacidades avanzadas.
Por qué XLOOKUP es superior
| Característica | BUSCARV | XLOOKUP |
|---|---|---|
| Dirección de búsqueda | Solo derecha | Cualquier dirección |
| Manejo de errores | Requiere SI.ERROR | Integrado |
| Valor si no encuentra | N/A | Personalizable |
| Número de columna | Fijo (hardcoded) | No necesario |
| Múltiples resultados | No | Sí (rangos) |
| Modo de búsqueda | 2 opciones | 4 modos |
| Sintaxis | 4 argumentos | 6 argumentos (3 obligatorios) |
Sintaxis de XLOOKUP
=XLOOKUP(valor_buscado, rango_buscar, rango_devolver, [si_no_encontrado], [modo_coincidencia], [modo_busqueda])
Los 6 argumentos explicados
| Argumento | Descripción | Obligatorio |
|---|---|---|
valor_buscado |
El valor que quieres encontrar | Sí |
rango_buscar |
Dónde buscar el valor (una columna o fila) | Sí |
rango_devolver |
Qué columna(s) devolver | Sí |
si_no_encontrado |
Valor a mostrar si no encuentra | No |
modo_coincidencia |
Tipo de coincidencia (0, -1, 1, 2) | No |
modo_busqueda |
Dirección de búsqueda (1, -1, 2, -2) | No |
Escenario práctico: Datos de ventas
Usaremos las mismas tablas que en la lección anterior:
Catálogo de Productos (A1:C5)
| ID Producto | Nombre | Precio Unit. |
|---|---|---|
| PROD-001 | Laptop Pro | $50 |
| PROD-002 | Mouse Wireless | $15 |
| PROD-003 | Teclado Mecánico | $90 |
| PROD-004 | Monitor 24" | $75 |
Tabla de Ventas (E1:G6)
| ID Producto | Cantidad | Total |
|---|---|---|
| PROD-001 | 5 | ? |
| PROD-003 | 2 | ? |
| PROD-002 | 8 | ? |
XLOOKUP básico vs BUSCARV
Con BUSCARV (forma antigua)
=BUSCARV(E2, $A$2:$C$5, 2, FALSO)
Con XLOOKUP (forma moderna)
=XLOOKUP(E2, $A$2:$A$5, $B$2:$B$5)
Ventajas inmediatas:
- No necesitas contar columnas
- El rango de búsqueda y retorno son independientes
- Más fácil de leer y mantener
Búsqueda bidireccional
La característica más celebrada de XLOOKUP: buscar en cualquier dirección.
Buscar hacia la izquierda
Tabla con nombre primero:
| Nombre | ID Producto |
|---|---|
| Laptop Pro | PROD-001 |
| Mouse Wireless | PROD-002 |
| Teclado Mecánico | PROD-003 |
// Con BUSCARV: IMPOSIBLE (no puede buscar a la izquierda)
// Con XLOOKUP: Sin problemas
=XLOOKUP("Laptop Pro", $A$2:$A$5, $B$2:$B$5)
// Resultado: "PROD-001"
Buscar en filas horizontales
XLOOKUP también funciona con búsquedas horizontales (como BUSCARH):
=XLOOKUP("Q2", $B$1:$E$1, $B$2:$E$2)
Busca "Q2" en la fila de encabezados y devuelve el valor correspondiente.
El argumento si_no_encontrado
En lugar de envolver todo en SI.ERROR, XLOOKUP tiene manejo de errores integrado:
Con BUSCARV + SI.ERROR
=SI.ERROR(BUSCARV(E2, $A$2:$C$5, 2, FALSO), "No encontrado")
Con XLOOKUP (integrado)
=XLOOKUP(E2, $A$2:$A$5, $B$2:$B$5, "No encontrado")
Opciones comunes para si_no_encontrado:
// Texto descriptivo
=XLOOKUP(E2, A:A, B:B, "Producto no existe")
// Valor numérico (0 para cálculos)
=XLOOKUP(E2, A:A, C:C, 0)
// Celda vacía
=XLOOKUP(E2, A:A, B:B, "")
// Otra fórmula o cálculo
=XLOOKUP(E2, A:A, B:B, PROMEDIO(B:B))
Modos de coincidencia
El quinto argumento controla cómo XLOOKUP busca coincidencias:
| Valor | Descripción | Uso típico |
|---|---|---|
0 |
Coincidencia exacta (default) | Códigos, IDs, nombres |
-1 |
Exacta o siguiente menor | Tablas de descuento, rangos |
1 |
Exacta o siguiente mayor | Fechas de vencimiento |
2 |
Coincidencia con comodines | Búsquedas parciales |
Modo 0: Coincidencia exacta (default)
=XLOOKUP("PROD-001", $A$2:$A$5, $B$2:$B$5, "N/A", 0)
Modo -1: Exacta o siguiente menor
Perfecto para tablas de rangos como descuentos por volumen:
| Cantidad Mínima | Descuento |
|---|---|
| 0 | 0% |
| 10 | 5% |
| 50 | 10% |
| 100 | 15% |
=XLOOKUP(35, $A$2:$A$5, $B$2:$B$5, 0, -1)
// Resultado: 5% (35 está entre 10 y 50, devuelve el menor = 10 -> 5%)
Modo 1: Exacta o siguiente mayor
Útil para encontrar fechas de vencimiento o próximos hitos:
=XLOOKUP(HOY(), $A$2:$A$10, $B$2:$B$10, "Sin vencimiento", 1)
Modo 2: Coincidencia con comodines
Permite usar * (cualquier secuencia) y ? (un carácter):
// Buscar productos que empiecen con "Laptop"
=XLOOKUP("Laptop*", $B$2:$B$5, $C$2:$C$5, "N/A", 2)
// Buscar productos con patrón específico
=XLOOKUP("PROD-00?", $A$2:$A$5, $B$2:$B$5, "N/A", 2)
Modos de búsqueda
El sexto argumento controla la dirección y método de búsqueda:
| Valor | Descripción | Cuándo usar |
|---|---|---|
1 |
Primero al último (default) | Datos no ordenados |
-1 |
Último al primero | Encontrar última ocurrencia |
2 |
Búsqueda binaria ascendente | Datos ordenados (más rápido) |
-2 |
Búsqueda binaria descendente | Datos ordenados desc |
Encontrar la última ocurrencia
=XLOOKUP("PROD-001", $A$2:$A$100, $D$2:$D$100, "N/A", 0, -1)
Busca desde el final, devolviendo la última venta de PROD-001.
Optimizar con búsqueda binaria
Para tablas grandes ordenadas, la búsqueda binaria es significativamente más rápida:
=XLOOKUP(E2, $A$2:$A$100000, $B$2:$B$100000, "N/A", 0, 2)
Importante: Solo usa modo 2 o -2 si tus datos están ordenados correctamente.
Devolver múltiples columnas
XLOOKUP puede devolver rangos completos en una sola fórmula:
=XLOOKUP(E2, $A$2:$A$5, $B$2:$C$5, {"N/A", 0})
Esta fórmula devuelve tanto el Nombre como el Precio en celdas adyacentes (usando desbordamiento de arrays).
Resultado para PROD-001:
| Laptop Pro | $50 |
XLOOKUP anidado
Puedes usar XLOOKUP dentro de otro XLOOKUP para búsquedas en dos dimensiones:
Tabla de precios por región:
| Producto | Norte | Sur | Este | Oeste |
|---|---|---|---|---|
| PROD-001 | $50 | $48 | $52 | $49 |
| PROD-002 | $15 | $14 | $16 | $15 |
| PROD-003 | $90 | $88 | $92 | $89 |
=XLOOKUP(G2, $A$2:$A$4, XLOOKUP(H2, $B$1:$E$1, $B$2:$E$4))
Desglose:
- El XLOOKUP interno busca la región (H2) en los encabezados y devuelve la columna completa
- El XLOOKUP externo busca el producto (G2) en esa columna
Migración de BUSCARV a XLOOKUP
Conversión directa
| BUSCARV | XLOOKUP equivalente |
|---|---|
=BUSCARV(A2, $D$2:$F$10, 2, FALSO) |
=XLOOKUP(A2, $D$2:$D$10, $E$2:$E$10) |
=BUSCARV(A2, $D$2:$F$10, 3, FALSO) |
=XLOOKUP(A2, $D$2:$D$10, $F$2:$F$10) |
=SI.ERROR(BUSCARV(...), "N/A") |
=XLOOKUP(..., "N/A") |
=BUSCARV(A2, Rango, 2, VERDADERO) |
=XLOOKUP(A2, Col1, Col2, , -1) |
Patrón de migración
// Antes (BUSCARV)
=SI.ERROR(BUSCARV(A2, $D$2:$F$100, 2, FALSO), "No encontrado")
// Después (XLOOKUP)
=XLOOKUP(A2, $D$2:$D$100, $E$2:$E$100, "No encontrado")
Beneficios de migrar:
- Código más limpio y legible
- Menos propenso a errores cuando cambias columnas
- Mejor rendimiento en tablas grandes
Casos de uso avanzados
Caso 1: Obtener el último precio registrado
=XLOOKUP(A2, $D$2:$D$1000, $E$2:$E$1000, 0, 0, -1)
Caso 2: Búsqueda parcial de email
=XLOOKUP("*@empresa.com", $A$2:$A$100, $B$2:$B$100, "No encontrado", 2)
Caso 3: Tabla de precios con rangos
=XLOOKUP(B2, $E$2:$E$10, $F$2:$F$10, 0, -1)
Caso 4: Devolver información completa del cliente
=XLOOKUP(A2, Clientes[ID], Clientes[Nombre]:Clientes[Email])
Limitaciones de XLOOKUP
- Disponibilidad: Solo Excel 365 y Excel 2021+
- Compatibilidad: Archivos compartidos con versiones antiguas mostrarán errores
- Una dimensión: Para matrices bidimensionales, considera INDEX/MATCH
Tabla de referencia rápida
| Tarea | Fórmula XLOOKUP |
|---|---|
| Búsqueda básica | =XLOOKUP(A2, B:B, C:C) |
| Con valor predeterminado | =XLOOKUP(A2, B:B, C:C, "N/A") |
| Coincidencia aproximada | =XLOOKUP(A2, B:B, C:C, 0, -1) |
| Con comodines | =XLOOKUP("*texto*", B:B, C:C, "", 2) |
| Última coincidencia | =XLOOKUP(A2, B:B, C:C, "", 0, -1) |
| Múltiples columnas | =XLOOKUP(A2, B:B, C:E) |
| Búsqueda bidimensional | =XLOOKUP(A2, B:B, XLOOKUP(C1, D1:F1, D:F)) |
Práctica: Ejercicios de migración
Convierte esta fórmula BUSCARV a XLOOKUP:
=SI.ERROR(BUSCARV(A2, $D$2:$G$100, 3, FALSO), "")Escribe un XLOOKUP que busque hacia la izquierda (el nombre está en columna B, el ID en columna A).
Crea un XLOOKUP con coincidencia de comodín para encontrar emails de Gmail.
Escribe un XLOOKUP anidado para buscar precio por producto y región.
Puntos clave de esta lección
- XLOOKUP reemplaza y mejora a BUSCARV, BUSCARH e INDEX/MATCH
- Puede buscar en cualquier dirección (izquierda, derecha, arriba, abajo)
- El manejo de errores está integrado (no necesitas SI.ERROR)
- Ofrece 4 modos de coincidencia incluyendo comodines
- Puede devolver múltiples columnas con una sola fórmula
- XLOOKUP anidado permite búsquedas bidimensionales
Próxima lección
En la siguiente lección aprenderás INDEX/MATCH, el combo clásico que sigue siendo relevante por su flexibilidad extrema y compatibilidad universal con todas las versiones de Excel.
Quiz de comprensión
¿Cuáles son las tres ventajas principales de XLOOKUP sobre BUSCARV?
¿Qué hace el cuarto argumento de XLOOKUP (
si_no_encontrado)?¿Cuál es la diferencia entre modo de coincidencia 0 y -1?
¿Cómo harías una búsqueda que encuentre la última ocurrencia de un valor?
Escribe un XLOOKUP que busque el email en columna D basándose en el nombre en columna A, devolviendo "Email no registrado" si no existe.
¿Completaste esta lección?
Marca esta lección como completada. Tu progreso se guardará en tu navegador.