Buscar en varias columnas con Excel. Donde no llega la función BUSCARV…

Excel es sin duda alguna un gran programa y aunque, como es mi caso, lleves mucho tiempo trabajando con él, siempre encuentras cosas que aprender e investigar. Lo mejor de Excel es que siempre puedes aprender algo.

No sé si me equivoco, pero tengo la impresión de que en general las fórmulas matriciales son unas grandes desconocidas. Y sin embargo estoy convencidísima de su gran utilidad. Puede que tengan algún inconveniente (quizá consuman muchos recursos, es cierto), pero en la “dosis” justa, seguro que podemos obtener un rendimiento óptimo de nuestras hojas.

Ya hemos dedicado algún que otro post a la función BUSCARV (*), una de las más útiles que tiene Excel, sin duda. El caso es que BUSCARV tiene algunas limitaciones, y probablemente las más importantes es que sólo permite buscar en la primera columna de la tabla de datos. Es extremadamente útil cuando esta posición es ocupada por datos únicos y de los cuales sabemos a ciencia cierta que no se van a dar repetidos (ejemplos típicos podrían ser el DNI, el número de las facturas, el código de artículo), que identifican de manera única el registro.

¿Qué pasa entonces si en nuestro caso tenemos registros que no hay manera de identificar como hemos descrito anteriormente? Imaginemos que tenemos la siguiente tabla de productos y, por los motivos que sean,  no podemos modificar su estructura:

Ejemplo de tabla
Tabla de varias columnas

Como vemos, hay varios modelos idénticos de un mismo artículo. Mismo tipo de artículo, mismo diseñador y temporada. Se distinguen por el campo situado en la cuarta columna, que nos indica el modelo. Por ejemplo, en las filas 3, 4 y 12 coincide que el artículo es Sandalia, el diseñador se llama Ramirez y es de Verano. Cuando miramos la cuarta columna, comprobamos que el dato varía y a cada una de ellas corresponde un modelo diferente: 3, 2 y 5, respectivamente. Imaginemos que lo que desearíamos es obtener cual es el precio de las sandalias de verano diseñadas por Ramirez del modelo 5. Sería imposible de localizar con un BUSCARV normal, pues encontraríamos nada más que la primera sandalia, que es del modelo 3, y no es la que buscamos. ¿Cómo podemos solucionar este problema?

La solución viene de la mano de las funciones COINCIDIR e INDICE, además de las fórmulas matriciales.

En otra ocasión ya vimos un ejemplo de la función COINCIDIR(**). Volvemos a repasar rápidamente:

La función COINCIDIR: Te indica la posición (mediante un número) de un elemento dentro de una matriz. Su sintaxis es la siguiente:

=COINCIDIR(Valor_buscado;matriz;[tipo_coincidencia])

El valor buscado es lo que estamos buscando.

La matriz es la tabla en la cual queremos hacer la búsqueda

El tipo de coincidencia es un argumento opcional (por eso se suele representar entre corchetes [ ]) e indica si tiene que buscarse el valor exacto o, en otros casos, encontrar un valor inferior o superior al dado.

La función INDICE: Devuelve un valor que se encuentra dentro de una matriz en la posición que indiquemos mediante el número de columna y de fila. La sintaxis es como se indica a continuación:

=INDICE(matriz;fila;columna)

La matriz es la tabla en la que se busca

La fila y la columna indican la posición del elemento a extraer.

Sabiendo todo esto, volvamos al ejemplo inicial y construiremos el siguiente apartado en el que escribiremos los datos que queremos consultar:

Búsqueda en tabla
Panel para la búsqueda en una tabla de datos que están en varias columnas.

En la posición I5 es donde irá nuestra fórmula. Donde queremos obtener el precio. Vamos por partes.

Sitúa el cursor y comienza escribiendo la fórmula siguiente:

Fórmula
Fórmula con INDICE y COINCIDIR

¡¡Atención!! ¡¡NO PULSES INTRO!!. En primer lugar, observamos que en el lugar del valor buscado hemos puesto I1&I2&I3&I4 Esto lo que hace es que concatena lo que hay en la celda I1, lo que hay en la celda I2, etc. El resultado sería algo así como la cadena SandaliaRamirezVerano5 (es como si convertimos todos en un solo valor a buscar, por así decir). Ahora mira el segundo argumento, realiza una operación similar, pero con las columnas. Muy importante, como es una fórmula matricial, no debes pulsar INTRO, tienes que pulsar CTRL + May + INTRO. En ese momento verás que aparece como resultado 11, que si miras, es la posición que buscamos, el registro 11. Además, como se trata de una fórmula matricial, aparecerá entre llaves, así { }.

Aún no es lo que buscamos, tenemos la posición, pero queremos extraer el precio. Para esto usamos la anterior fórmula en combinación con índice (que es el que extrae el dato, coincidir sólo da el número de la posición). Vamos allá:

Fórmula
La fórmula al completo

Podemos interpretarla de la manera siguiente: de la matriz E2:E17 extrae el elemento que ocupa la fila 11 (lo sé porque ya hemos visto el resultado de coincidir anteriormente). Por cierto, la columna es un elemento opcional, en este caso la matriz solo tiene una columna, así que sin problemas. ¡¡NO olvides PULSAR CTRL + May + INTRO, pues nuevamente estamos trabajando la forma matricial y si se nos olvida y solo pulsamos INTRO, NO funciona.

El resultado es 23. A partir de aquí puedes variar lo que contienen las celdas I1, I2, I3 e I4, y podrás ir viendo los precios de los distintos artículos. La función COINCIDIR (que es la “interior”) se evalúa y dará como resultado la fila de los valores buscados, y este valor será a su vez el argumento usado en la función INDICE.  Incluso puedes ayudarte de listas desplegables para elegir los valores y de esta forma hacer el trabajo mucho más rápido y eficaz.

Saludos y feliz semana (en Madrid después de fin de semana de 4 días 🙂 )

(*) Puedes ver la entrada de BUSCARV, pulsando aquí.

(**) Puedes ver la entrada de COINCIDIR, pulsando aquí.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s