La solicitud

De Shirley Chen, Compradora
Tu objetivo
En E2:E21, usa INDEX y MATCH para devolver el precio de lista actual de cada línea: busca el product_id de la columna B en la columna product_id del catálogo I2:I21 con coincidencia exacta (tipo de coincidencia 0) y devuelve el precio de esa fila de H2:H21.
- Llena
E2:E21con los valores correctospendiente - Con fórmulas, no con números escritospendiente
- Usa
INDEXMATCHpendiente
Tu hoja
| A | B | C | D | E | F | G | H | I | J | |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | order_item_id | product_id | quantity | price_paid | list_price | name | unit_price | product_id | ||
| 2 | 19100 | 128 | 2 | 54.99 | Ashford Linen Pendant Light | 349.00 | 131 | |||
| 3 | 19101 | 127 | 1 | 179.00 | Bramble Ceramic Floor Lamp | 31.99 | 121 | |||
| 4 | 19111 | 135 | 1 | 149.00 | Delancey Black Metal Wall Sconce | 54.99 | 128 | |||
| 5 | 19116 | 139 | 2 | 179.00 | Dune Black Metal Floor Lamp | 51.99 | 133 | |||
| 6 | 19122 | 133 | 1 | 48.99 | Dune Black Metal Pendant Light | 189.00 | 127 | |||
| 7 | 19137 | 132 | 2 | 189.00 | Dune Ceramic Arc Lamp | 109.00 | 129 | |||
| 8 | 19146 | 129 | 2 | 109.00 | Fairhaven Brass Wall Sconce | 189.00 | 132 | |||
| 9 | 19177 | 122 | 2 | 29.99 | Fern Rattan Desk Lamp | 379.00 | 126 | |||
| 10 | 19184 | 135 | 2 | 149.00 | Marlow Glass Wall Sconce | 349.00 | 124 | |||
| 11 | 19197 | 122 | 1 | 29.99 | Marlow Linen Floor Lamp | 219.00 | 137 | |||
| 12 | 19208 | 128 | 1 | 54.99 | Monroe Glass Desk Lamp | 29.99 | 122 | |||
| 13 | 19215 | 122 | 1 | 29.99 | Oakley Brass Table Lamp | 199.00 | 138 | |||
| 14 | 19221 | 134 | 1 | 92.99 | Pacifica Black Metal Arc Lamp | 279.00 | 125 | |||
| 15 | 19224 | 131 | 1 | 349.00 | Pacifica Black Metal Table Lamp | 409.00 | 130 | |||
| 16 | 19232 | 127 | 1 | 179.00 | Quarry Ceramic Picture Light | 329.00 | 140 | |||
| 17 | 19234 | 122 | 1 | 29.99 | Quarry Rattan Picture Light | 159.00 | 136 | |||
| 18 | 19237 | 124 | 2 | 349.00 | Ridge Ceramic Chandelier | 159.00 | 135 | |||
| 19 | 19239 | 134 | 3 | 92.99 | Rowan Ceramic Chandelier | 189.00 | 139 | |||
| 20 | 19247 | 124 | 1 | 349.00 | Sable Linen Table Lamp | 92.99 | 134 | |||
| 21 | 19249 | 128 | 12 | 54.99 | Sutton Brass Chandelier | 30.99 | 123 | |||
| 22 | ||||||||||
| 23 |
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Comprobar. Cada celda correcta se vuelve una luciérnaga en tu linterna.
Lo que recibe Shirley, y por qué
La lección
Antes de XLOOKUP, la búsqueda flexible era un par de funciones: INDEX y MATCH. La encontrarás en casi todos los libros que heredes, así que conviene conocerla al dedillo. El catálogo de Shirley es el caso clásico: ordenado por nombre en G1:I21, con el id en la última columna. VLOOKUP no puede buscar en él, porque los ids no están en su primera columna.
MATCH encuentra la posición
=MATCH(lookup_value, lookup_range, match_type)
MATCH no devuelve un valor de la tabla. Devuelve dónde está el valor: su posición dentro del rango. =MATCH(B2,$I$2:$I$21,0) busca 128 entre los ids del catálogo y devuelve 3, porque 128 es el tercer id de I2:I21. El último argumento, 0, significa coincidencia exacta.
INDEX elige el valor en una posición
=INDEX(range, position)
=INDEX($H$2:$H$21,3) devuelve el tercer precio del catálogo: 54.99. Junta las dos y MATCH le dice a INDEX qué fila leer:
=INDEX($H$2:$H$21,MATCH(B2,$I$2:$I$21,0))
El rango de búsqueda y el rango de retorno son argumentos separados, así que la columna de precios puede estar a la izquierda de los ids, como aquí, o en cualquier otro lugar. Los dos rangos solo necesitan empezar y terminar en las mismas filas.
El 0 que falta
MATCH tiene una trampa en su valor por defecto. Sin el tercer argumento usa 1, una coincidencia aproximada: asume que los ids están ordenados de menor a mayor y salta entre ellos (una búsqueda binaria) buscando el id más grande que no supere el tuyo. La fila 4 es el producto 135, el Ridge Ceramic Chandelier, 159.00. MATCH(B4,$I$2:$I$21) devuelve 9 en lugar de 17, e INDEX entrega 349.00, el precio de otra lámpara. Ningún error. Rellena esa versión hacia abajo y solo 3 de las 20 líneas salen bien, por suerte. VLOOKUP sin FALSE tiene exactamente la misma trampa. Escribe el 0 siempre que busques un id, un nombre o un código.
VLOOKUP, INDEX/MATCH y XLOOKUP lado a lado
| VLOOKUP | INDEX/MATCH | XLOOKUP | |
|---|---|---|---|
| Dirección | la clave debe estar en la primera columna, devuelve hacia la derecha | cualquier dirección | cualquier dirección |
| Columna de retorno | un número (4) |
un rango | un rango |
| Se inserta una columna en la tabla | el número ahora apunta a la columna equivocada | sigue bien | sigue bien |
| Coincidencia por defecto | aproximada: escribe FALSE |
aproximada: escribe 0 |
exacta |
| Clave no encontrada | #N/A, envuélvelo en IFNA |
#N/A, envuélvelo en IFNA |
argumento if_not_found |
| Dónde funciona | en todas partes | en todas partes | Excel 2021, Microsoft 365, Google Sheets |
La fila de la columna insertada es la silenciosa. En el nivel 3, VLOOKUP(…,4,FALSE) devolvía el precio porque el precio era la 4.ª columna de F:I. Inserta una columna “supplier” dentro del catálogo y la columna 4 pasa a ser la categoría, sin ningún error. INDEX y MATCH apuntan a la propia columna de precios, así que Excel ajusta sus rangos cuando las columnas se mueven. En esta hoja, la versión con XLOOKUP es =XLOOKUP(B4,$I$2:$I$21,$H$2:$H$21), que también da 159.00.
Usa XLOOKUP cuando todos los que abran el archivo lo tengan; INDEX/MATCH cuando el archivo deba funcionar en versiones antiguas de Excel; VLOOKUP con FALSE cuando la clave ya sea la primera columna y quieras la fórmula que un colega puede leer de un vistazo.
Errores comunes
- Sin
0en MATCH. La búsqueda funciona en una tabla ordenada y falla en silencio en una desordenada. - Rangos sin fijar. El catálogo debe quedarse quieto al rellenar hacia abajo:
$H$2:$H$21,$I$2:$I$21. - Rangos que no encajan.
MATCHsobreI2:I21conINDEXsobreH3:H22devuelve el precio de la fila siguiente en cada coincidencia. - INDEX y MATCH intercambiados.
MATCHrecibe la columna de ids,INDEXrecibe la columna que quieres recuperar.
¡Linterna encendida!
Practicaste: index matchmatchexact matchlookupsvlookup
- Resuelto
- Sin pistas
- Al primer intento
