Saltar al contenido

lección 5

Búsquedas: BUSCARV, ÍNDICE+COINCIDIR y BUSCARX

Traer un dato de otra tabla. Es la pregunta más repetida de las entrevistas de analista y el JOIN de la hoja de cálculo, con sus tres trampas y sus dos alternativas.

45 min

Imagina la escena. Estás en la segunda ronda de una entrevista para un puesto de analista junior. El entrevistador gira la pantalla, te enseña dos pestañas de un Excel —una con pedidos, otra con precios de producto— y te dice: "necesito traer el precio de cada producto a la tabla de pedidos, ¿cómo lo harías?". No quiere una respuesta teórica. Quiere ver si sabes escribir la fórmula ahí mismo, sin dudar, y si entiendes por qué funciona.

Esta lección es exactamente ese momento. Y es la que más veces vas a usar de todo el módulo, porque el problema que resuelve es el pan de cada día del analista: tengo un identificador y el dato que necesito está en otro sitio.

La buena noticia es que ya sabes lo que hay debajo. Cruzar dos tablas por una clave común es un JOIN, y eso lo viste en la primera lección de la sección. Lo único que falta es la sintaxis de la hoja, y hay tres maneras de escribirla: la clásica y frágil, la clásica y robusta, y la moderna. Vamos a ver las tres, porque en una entrevista pueden preguntarte por cualquiera y porque cada una tiene su momento.

### BUSCARV: la agenda telefónica

BUSCARV —en inglés VLOOKUP, de vertical lookup— es la reina de las entrevistas. Funciona como la agenda telefónica de toda la vida: tienes un nombre (la clave), lo buscas en la primera columna, y cuando lo encuentras lees hacia la derecha hasta la columna que te interesa. Ésa es toda la idea, y las tres trampas que tiene salen de ahí.

1=BUSCARV(A2; productos!$A$2:$C$500; 3; FALSO)

BUSCARV que trae el precio de un producto a la tabla de pedidos

BUSCARV siempre busca en la primera columna del rango y solo puede leer hacia la derecha

Las tres trampas de BUSCARV, que son exactamente las tres cosas que te van a preguntar. Primera: solo mira hacia la derecha, así que si la columna que quieres devolver está a la IZQUIERDA de la clave, BUSCARV no puede y punto. Segunda: el número de columna es frágil; si alguien inserta una columna en medio de la tabla de origen, tu "3" ahora apunta al dato equivocado y la fórmula no se entera, sigue devolviendo un número pero el que no es. Tercera: si olvidas el FALSO, la búsqueda aproximada te devuelve el valor "más parecido" en vez de fallar, y eso es un error silencioso de manual.

### Un BUSCARV es un LEFT JOIN, y ahora ya sabes por qué

La lección de apertura ya lo avisó: la equivalencia con el JOIN es real pero tiene dos sitios donde se rompe, y los dos aparecen cuando la clave no está exactamente una vez en la otra tabla. Ahora que sabes cómo funciona BUSCARV por dentro, esas dos grietas dejan de ser algo que hay que memorizar y se pueden deducir. Las dos salen de lo mismo: BUSCARV rellena UNA celda, y un JOIN construye una tabla nueva.

Primera grieta: cuando no hay pareja, la fila sobrevive. Y ahora se ve por qué. La fila del pedido YA EXISTE antes de que tú escribas la fórmula; lo único que hace BUSCARV es rellenar un hueco de esa fila, así que si no encuentra nada deja el hueco con un aviso y la fila sigue en su sitio. Un INNER JOIN no rellena huecos: decide qué filas entran en una tabla nueva, y una fila sin pareja no entra. Por eso el equivalente fiel es el LEFT JOIN, que sí las conserva. Dicho de otro modo: la fórmula no puede borrar la fila donde vive, y el JOIN sí puede.

Segunda grieta: cuando hay dos parejas, BUSCARV escoge una. Y el motivo es igual de mecánico que el anterior: en una celda cabe UN valor, así que en cuanto encuentra la primera coincidencia deja de buscar. No es que decida cuál es la buena; es que no tiene sitio para las dos. El JOIN sí, porque está construyendo filas: te devuelve las dos y el pedido pasa a contar doble. Lo importante de entender esto es cómo cambia lo que piensas cuando ocurre: el JOIN no ha roto nada, ha destapado que en el catálogo hay un código repetido, y llevaba ahí todo el tiempo.

Y aquí conviene decir qué se hace cuando pasa, porque es el caso real más frecuente y casi nadie lo cuenta. Si al traducir a SQL el total sube, no se arregla volviendo al BUSCARV: se va al catálogo y se busca el duplicado, con un CONTAR.SI sobre la columna de códigos. Si el duplicado es basura —un alta repetida—, se borra. Si son dos filas legítimas con precios distintos porque el producto cambió de precio, entonces la pregunta no era «tráeme el precio» sino «tráeme el precio VIGENTE», y eso necesita una condición de fecha que ninguna de las tres funciones de esta lección sabe expresar. Ése es el momento exacto en que el problema se le ha quedado grande a la hoja.

Regla práctica para las dos diferencias: antes y después de traducir, cuenta las filas. Si el número cambia, no has traducido, has cambiado la pregunta. Es una comprobación de diez segundos que caza los dos problemas de golpe.

### ÍNDICE + COINCIDIR: el clásico robusto

Antes de que existiera BUSCARX, los analistas que sabían de verdad no usaban BUSCARV para los cruces importantes: usaban ÍNDICE + COINCIDIR (INDEX + MATCH). Sigue siendo muy común, funciona en cualquier versión, y todavía aparece en entrevistas porque demuestra que entiendes cómo se busca por dentro. La idea es partir la pregunta en dos: primero "¿en qué fila está lo que busco?" y luego "dame el valor de esa fila en la columna que quiero".

1=INDICE(productos!$C$2:$C$500; COINCIDIR(A2; productos!$A$2:$A$500; 0))

El mismo cruce, con ÍNDICE + COINCIDIR

Por qué esta combinación es más robusta, y merece entenderlo en vez de memorizarlo: BUSCARV localiza el dato por la POSICIÓN de la columna dentro del rango, con un número. ÍNDICE + COINCIDIR lo localiza señalando la columna entera. Si alguien inserta una columna en medio de la tabla de origen, el número de BUSCARV deja de apuntar donde apuntaba, pero la referencia a una columna concreta se ajusta sola. Es la diferencia entre decir "el tercero de la fila" y decir "el precio".

### BUSCARX: el sustituto moderno

En 2019 Microsoft presentó BUSCARX (XLOOKUP), y no fue un capricho de marketing: fue la respuesta a las tres trampas de BUSCARV. Llevaban décadas pidiéndolo. Le dices por separado dónde buscar y de dónde devolver, igual que en ÍNDICE + COINCIDIR, pero en una sola función y con la coincidencia exacta ya de serie.

1=BUSCARX(A2; productos!$A$2:$A$500; productos!$C$2:$C$500)

El mismo cruce de antes, ahora con BUSCARX

Y ahora el detalle que te puede costar una entrevista, así que fíjate bien: que se anunciara en 2019 NO significa que esté en Excel 2019. Son dos cosas distintas y se confunden constantemente. BUSCARX llegó a Microsoft 365, que es la versión por suscripción que se actualiza sola, y de las versiones de licencia perpetua está en Excel 2021 y posteriores. En Excel 2019 no existe, y Excel 2019 sigue instalado en muchísimas empresas porque se compró una vez y no caduca. En Google Sheets llegó en agosto de 2022, así que "un Sheets antiguo" significa de antes de 2022.

ÍNDICE+COINCIDIR es el punto medio: quita dos de las tres trampas y funciona en cualquier versión

La mejor respuesta a "¿BUSCARV o BUSCARX?" en una entrevista no es elegir uno: es demostrar que sabes los tres y por qué existe cada uno. Algo así: "usaría BUSCARX porque es más robusto y más legible, pero si el equipo está en Excel 2019 o anterior no la tienen, y entonces uso ÍNDICE+COINCIDIR, que es igual de robusta y funciona en cualquier versión. BUSCARV lo sé hacer y lo leo sin problema, pero con cuidado del número de columna y del FALSO". Eso demuestra criterio y conocimiento de la historia de la herramienta, que es lo que separa a un junior de alguien que ha memorizado fórmulas.

### Cuando no encuentra: SI.ERROR

Un #N/D no es un fallo tuyo: es información. Significa "esta clave no está en la otra tabla", y muchas veces es justo lo que necesitas saber. Pero en un informe que se enseña a alguien, una columna llena de #N/D queda mal y asusta, así que se envuelve con SI.ERROR para poner un texto en su lugar.

1=SI.ERROR(BUSCARV(A2; productos!$A$2:$C$500; 3; FALSO); "sin precio")

Cambiar el #N/D por un mensaje legible

Y aquí un aviso importante que casi nadie da: SI.ERROR es un cuchillo de dos filos. Tapa TODOS los errores, no solo el #N/D. Si tu fórmula tenía además un #¡REF! porque alguien borró una columna, o un #¡VALOR! porque el tipo de dato no cuadra, SI.ERROR también los esconde y te deja "sin precio" donde en realidad tienes una fórmula rota. Así que úsalo al final, cuando ya sepas que el único error posible es el de "no encontrado", y nunca mientras estás montando la hoja: mientras construyes, los errores son tus amigos.

### Resumen

  • Las tres hacen lo mismo: traer un dato de otra tabla cruzando por una clave. En SQL, las tres son un LEFT JOIN.
  • BUSCARV busca en la primera columna del rango y lee hacia la derecha contando posiciones. Tres trampas: no mira a la izquierda, el número de columna es frágil, y sin FALSO hace búsqueda aproximada.
  • ÍNDICE + COINCIDIR parte el trabajo en localizar la fila y leer el valor. Más verbosa, sin dos de las tres trampas, y funciona en cualquier versión.
  • BUSCARX es la moderna: columnas por separado, exacta por defecto, busca en cualquier dirección. Pero solo en Microsoft 365 y Excel 2021 o posterior; en Excel 2019 no existe.
  • Un BUSCARV es un LEFT JOIN, no un JOIN: conserva la fila y deja #N/D donde el INNER JOIN la eliminaría. Y trae una sola coincidencia donde el JOIN trae todas.
  • Cuenta las filas antes y después de traducir a SQL. Si el número cambia, has cambiado la pregunta.
  • SI.ERROR tapa todos los errores, no solo el #N/D. Ponlo al final, nunca mientras montas la hoja.

Regístrate para guardar tu progreso.

## comentarios

Reporta erratas, ayuda a otros o comparte tu opinión. Sé constructivo.

Inicia sesión para comentar y responder.

cargando comentarios...