Lección 5 de 37Funciones de Búsqueda

XLOOKUP: La evolución de BUSCARV

La función moderna que reemplaza a BUSCARV con más flexibilidad.

15 minutos

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
rango_buscar Dónde buscar el valor (una columna o fila)
rango_devolver Qué columna(s) devolver
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:

  1. El XLOOKUP interno busca la región (H2) en los encabezados y devuelve la columna completa
  2. 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

  1. Disponibilidad: Solo Excel 365 y Excel 2021+
  2. Compatibilidad: Archivos compartidos con versiones antiguas mostrarán errores
  3. 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

  1. Convierte esta fórmula BUSCARV a XLOOKUP:

    =SI.ERROR(BUSCARV(A2, $D$2:$G$100, 3, FALSO), "")
    
  2. Escribe un XLOOKUP que busque hacia la izquierda (el nombre está en columna B, el ID en columna A).

  3. Crea un XLOOKUP con coincidencia de comodín para encontrar emails de Gmail.

  4. 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

  1. ¿Cuáles son las tres ventajas principales de XLOOKUP sobre BUSCARV?

  2. ¿Qué hace el cuarto argumento de XLOOKUP (si_no_encontrado)?

  3. ¿Cuál es la diferencia entre modo de coincidencia 0 y -1?

  4. ¿Cómo harías una búsqueda que encuentre la última ocurrencia de un valor?

  5. 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.