INDEX/MATCH: El combo más potente
La combinación más versátil para búsquedas complejas.
Antes de XLOOKUP, INDEX/MATCH era la solución definitiva para superar las limitaciones de BUSCARV. Hoy sigue siendo relevante por su compatibilidad universal, flexibilidad extrema y mejor rendimiento en archivos grandes.
Por qué aprender INDEX/MATCH
- Compatibilidad total: Funciona en TODAS las versiones de Excel
- Flexibilidad máxima: Búsquedas en cualquier dirección
- Mejor rendimiento: Más eficiente que BUSCARV en tablas grandes
- Múltiples criterios: Se combina naturalmente con condiciones
- Búsquedas bidimensionales: Filas y columnas dinámicas
Entendiendo INDEX
La función INDEX devuelve el valor de una celda en la intersección de una fila y columna específicas.
Sintaxis de INDEX
=INDEX(rango, num_fila, [num_columna])
| Argumento | Descripción |
|---|---|
rango |
El rango de celdas |
num_fila |
Número de fila dentro del rango |
num_columna |
Número de columna (opcional si es una sola columna) |
Ejemplos de INDEX
Tabla de productos (A1:C5):
| Producto | Categoría | Precio |
|---|---|---|
| Laptop | Electrónicos | $1,200 |
| Mouse | Accesorios | $35 |
| Monitor | Electrónicos | $450 |
| Teclado | Accesorios | $85 |
// Devolver el valor de la fila 2, columna 1
=INDEX(A2:C5, 2, 1)
// Resultado: "Mouse"
// Devolver el valor de la fila 3, columna 3
=INDEX(A2:C5, 3, 3)
// Resultado: $450
// Con una sola columna, no necesitas el tercer argumento
=INDEX(A2:A5, 2)
// Resultado: "Mouse"
Entendiendo MATCH (COINCIDIR)
MATCH busca un valor en un rango y devuelve su posición (no el valor).
Sintaxis de MATCH
=COINCIDIR(valor_buscado, rango_busqueda, [tipo_coincidencia])
| Argumento | Descripción |
|---|---|
valor_buscado |
Lo que buscas |
rango_busqueda |
Dónde buscar (una fila o columna) |
tipo_coincidencia |
0 = exacta, 1 = menor o igual, -1 = mayor o igual |
Ejemplos de MATCH
// ¿En qué posición está "Monitor"?
=COINCIDIR("Monitor", A2:A5, 0)
// Resultado: 3 (tercera posición en el rango)
// ¿En qué posición está "Electrónicos"?
=COINCIDIR("Electrónicos", B2:B5, 0)
// Resultado: 1 (primera ocurrencia)
Importante: MATCH devuelve la posición relativa dentro del rango, no el número de fila de la hoja.
El combo INDEX/MATCH
La magia ocurre al combinarlas: MATCH encuentra la posición, INDEX devuelve el valor.
Fórmula básica
=INDEX(rango_resultados, COINCIDIR(valor_buscado, rango_busqueda, 0))
Ejemplo paso a paso
Objetivo: Buscar el precio del "Monitor"
=INDEX(C2:C5, COINCIDIR("Monitor", A2:A5, 0))
Desglose:
COINCIDIR("Monitor", A2:A5, 0)→ Devuelve 3 (Monitor está en la posición 3)INDEX(C2:C5, 3)→ Devuelve $450 (el valor en la posición 3 de precios)
Resultado: $450
INDEX/MATCH vs BUSCARV
Comparación lado a lado
| Característica | BUSCARV | INDEX/MATCH |
|---|---|---|
| Buscar a la izquierda | No | Sí |
| Insertar columnas | Rompe fórmula | No afecta |
| Rendimiento | Más lento | Más rápido |
| Legibilidad inicial | Más simple | Más complejo |
| Flexibilidad | Limitada | Máxima |
Ejemplo: Buscar hacia la izquierda
Tabla con ID a la derecha:
| Nombre | Categoría | ID |
|---|---|---|
| Laptop | Electrónicos | P001 |
| Mouse | Accesorios | P002 |
| Monitor | Electrónicos | P003 |
// Con BUSCARV: IMPOSIBLE
// (el ID está a la derecha del Nombre)
// Con INDEX/MATCH: Sin problema
=INDEX(A2:A4, COINCIDIR("P002", C2:C4, 0))
// Resultado: "Mouse"
Búsquedas bidireccionales (Two-Way Lookup)
INDEX/MATCH permite búsquedas en dos dimensiones: encontrar un valor basándose en la fila Y la columna.
Escenario: Tabla de ventas por región y trimestre
| Región | Q1 | Q2 | Q3 | Q4 |
|---|---|---|---|---|
| Norte | 150 | 180 | 200 | 220 |
| Sur | 120 | 140 | 160 | 175 |
| Este | 200 | 220 | 250 | 280 |
| Oeste | 100 | 110 | 130 | 145 |
Objetivo: Obtener las ventas de "Sur" en "Q3"
=INDEX(B2:E5, COINCIDIR("Sur", A2:A5, 0), COINCIDIR("Q3", B1:E1, 0))
Desglose:
COINCIDIR("Sur", A2:A5, 0)→ 2 (fila 2)COINCIDIR("Q3", B1:E1, 0)→ 3 (columna 3)INDEX(B2:E5, 2, 3)→ 160
Resultado: 160
Fórmula dinámica con referencias
=INDEX($B$2:$E$5, COINCIDIR(G2, $A$2:$A$5, 0), COINCIDIR(H2, $B$1:$E$1, 0))
Donde G2 contiene la región y H2 contiene el trimestre.
Múltiples criterios con INDEX/MATCH
Para búsquedas con múltiples condiciones, combina INDEX/MATCH con fórmulas de array.
Escenario: Ventas por producto Y vendedor
| Producto | Vendedor | Monto |
|---|---|---|
| Laptop | Ana | $1,200 |
| Mouse | Carlos | $35 |
| Laptop | Carlos | $1,150 |
| Monitor | Ana | $450 |
Objetivo: Encontrar el monto de "Laptop" vendido por "Carlos"
=INDEX(C2:C5, COINCIDIR(1, (A2:A5="Laptop")*(B2:B5="Carlos"), 0))
Nota: En Excel clásico, esta fórmula debe ingresarse como fórmula de array con Ctrl+Shift+Enter. En Excel 365, funciona directamente.
Desglose:
(A2:A5="Laptop")→ {VERDADERO; FALSO; VERDADERO; FALSO}(B2:B5="Carlos")→ {FALSO; VERDADERO; VERDADERO; FALSO}- Multiplicación → {0; 0; 1; 0} (solo la fila 3 cumple ambas condiciones)
COINCIDIR(1, ..., 0)→ 3INDEX(C2:C5, 3)→ $1,150
Casos de uso avanzados
Caso 1: Última coincidencia en una lista
=INDEX(B2:B100, COINCIDIR(9.99E+307, SI(A2:A100="Laptop", FILA(A2:A100)), 0) - FILA(A1))
O más simple con BUSCAR:
=BUSCAR(2, 1/(A2:A100="Laptop"), B2:B100)
Caso 2: Valor más cercano (sin ser exacto)
Para encontrar el valor más cercano en una lista no ordenada:
=INDEX(A2:A100, COINCIDIR(MIN(ABS(B2:B100-G2)), ABS(B2:B100-G2), 0))
Caso 3: Búsqueda insensible a mayúsculas
=INDEX(B2:B100, COINCIDIR(MAYUSC(F2), MAYUSC(A2:A100), 0))
Caso 4: Retornar múltiples columnas
// En G2 (primera columna de resultado)
=INDEX(B2:B100, COINCIDIR(F2, A2:A100, 0))
// En H2 (segunda columna de resultado)
=INDEX(C2:C100, COINCIDIR(F2, A2:A100, 0))
O con un solo MATCH reutilizado:
// Definir nombre "PosicionEncontrada" = COINCIDIR(F2, A2:A100, 0)
// Luego usar:
=INDEX(B2:B100, PosicionEncontrada)
=INDEX(C2:C100, PosicionEncontrada)
Rendimiento: INDEX/MATCH vs BUSCARV
En tablas grandes, INDEX/MATCH es significativamente más rápido:
| Filas en tabla | BUSCARV | INDEX/MATCH |
|---|---|---|
| 10,000 | ~0.3s | ~0.1s |
| 100,000 | ~2.5s | ~0.5s |
| 1,000,000 | ~25s | ~3s |
Por qué INDEX/MATCH es más rápido:
- BUSCARV evalúa todo el rango de columnas
- MATCH solo evalúa la columna de búsqueda
- INDEX es una operación directa de memoria
Variantes y alternativas
MATCH con diferentes tipos de coincidencia
| Tipo | Descripción | Requiere orden |
|---|---|---|
0 |
Exacta | No |
1 |
Menor o igual | Ascendente |
-1 |
Mayor o igual | Descendente |
// Coincidencia exacta (la más común)
=COINCIDIR("Laptop", A2:A100, 0)
// Encontrar el rango de precio (tabla ordenada)
=COINCIDIR(150, PreciosMinimos, 1)
INDEX con rangos no contiguos
=INDEX((A2:A10, C2:C10), 3, 2)
Devuelve el valor de la fila 3 del segundo rango (C2:C10).
Errores comunes y soluciones
Error #N/A
Causa: MATCH no encontró el valor.
// Solución: Envolver en SI.ERROR
=SI.ERROR(INDEX(B2:B100, COINCIDIR(F2, A2:A100, 0)), "No encontrado")
Error #REF!
Causa: La posición devuelta por MATCH excede el rango de INDEX.
// Problema: rangos de diferente tamaño
=INDEX(B2:B10, COINCIDIR(F2, A2:A100, 0))
// Solución: Asegurar mismo tamaño
=INDEX(B2:B100, COINCIDIR(F2, A2:A100, 0))
Error #VALUE! en fórmulas de array
Causa: No se ingresó como fórmula de array.
Solución: Presiona Ctrl+Shift+Enter en lugar de solo Enter (Excel clásico).
Tabla de referencia rápida
| Tarea | Fórmula |
|---|---|
| Búsqueda básica | =INDEX(B:B, COINCIDIR(A2, C:C, 0)) |
| Buscar a la izquierda | =INDEX(A:A, COINCIDIR(D2, C:C, 0)) |
| Búsqueda 2D | =INDEX(B2:E5, COINCIDIR(G2, A2:A5, 0), COINCIDIR(H2, B1:E1, 0)) |
| Múltiples criterios | =INDEX(C:C, COINCIDIR(1, (A:A=F2)*(B:B=G2), 0)) |
| Con manejo error | =SI.ERROR(INDEX(B:B, COINCIDIR(A2, C:C, 0)), "") |
| Última coincidencia | =BUSCAR(2, 1/(A:A=F2), B:B) |
Práctica: Ejercicios de INDEX/MATCH
Básico: Escribe una fórmula INDEX/MATCH para buscar el precio de un producto por su nombre.
Bidireccional: Crea una fórmula que busque ventas por región (fila) y mes (columna).
Hacia la izquierda: El ID está en columna C, el nombre en columna A. Busca el nombre por ID.
Múltiples criterios: Encuentra el monto de venta para un producto específico de un vendedor específico.
Comparación: Convierte esta fórmula BUSCARV a INDEX/MATCH:
=BUSCARV(A2, $D$2:$G$100, 3, FALSO)
Puntos clave de esta lección
- INDEX devuelve un valor basándose en posición de fila y columna
- MATCH devuelve la posición de un valor en un rango
- Juntos permiten búsquedas en cualquier dirección
- Son más rápidos que BUSCARV en tablas grandes
- Permiten búsquedas bidimensionales (fila y columna dinámicas)
- Se pueden combinar con condiciones para múltiples criterios
- Funcionan en todas las versiones de Excel
Próxima lección
En la siguiente lección aprenderás a realizar búsquedas con múltiples criterios usando SUMIFS, COUNTIFS y combinaciones avanzadas de INDEX/MATCH para resolver problemas de análisis de datos complejos.
Quiz de comprensión
¿Qué devuelve la función MATCH: un valor o una posición?
¿Por qué INDEX/MATCH es más rápido que BUSCARV en tablas grandes?
Escribe una fórmula INDEX/MATCH que busque hacia la izquierda (el valor de búsqueda está en columna D, el resultado en columna A).
¿Cómo harías una búsqueda bidimensional para encontrar un valor en la intersección de una fila y columna específicas?
¿Qué modificación necesita una fórmula INDEX/MATCH con múltiples criterios en versiones antiguas de Excel?
¿Completaste esta lección?
Marca esta lección como completada. Tu progreso se guardará en tu navegador.