Funciones de busqueda en Excel
A lo largo de mi carrera, primero en la parte contable, y ahora en el area de IT, me ha topado con mucha gente que necesito ayuda para solucionar problemas de busquedas de datos en una planilla de Excel.
Por esta razon, en este articulo voy a explicar como utilizar las principales funciones de búsqueda que nos ofrece Excel. Voy a referirme a las funciones por su nombre en ingles, ya que estoy más acostumbrado a la versión de Excel en ese idioma; para buscar el nombre equivalente de un función en español, pueden darse una vuelta por el siguiente artículo.
Si bien Excel nos ofrece una gran variedad de funciones para realizar búsquedas, las principales que deberíamos dominar para resolver casi cualquier problema que se nos presente en nuestro día a día son las siguientes:
- VLOOKUP (BUSCARV): Esta función busca un valor en la primer columna de una tabla y devuelve el valor de la misma linea de una columna que se especifique. Realiza la búsqueda verticalmente, de allí su nombre.
- MATCH (COINCIDIR): Esta función devuelve la posición de un item en un rango que coincide con un valor especificado.
- INDEX (INDICE): Esta función devuelve el valor de una celda en la interseccion entre una columna y una linea en un rango espeficado.
La funcion VLOOKUP:
Esta función es probablemente una de las más utilizadas, y casi siempre la primera opción cuando queremos realizar una búsqueda en los datos de nuestras planillas. Su sintaxis es la siguiente:
VLOOKUP(valor_a_buscar; rango_en_donde_buscar; columna_donde_buscar_el_resultado; exacto_o_aproximado)
Los argumentos de esta función son los siguientes:
rango_en_donde_buscar: Este es el rango que contiene todos nuestros datos donde queremos realizar la búsqueda.
Veamos algunos ejemplos:
Ejemplo 1:
En este primer ejemplo vemos que estamos buscando el valor de la celda “E1”, en este caso el texto “CALL”, en la primer columna del rango que va desde la celda “A1” a la celda “B225”, y queremos que nos traiga como resultado el valor de la columna “2” de la fila donde el texto “CALL” sea encontrado en la primer columna; en caso de que el texto no sea encontrado, queremos que nos arroje un error. Como vemos en el ejemplo, es indistinto que ingresemos el texto en mayusculas o en minusculas.
Ejemplo 2:
En este ejemplo, podemos ver cuando se vuelve util la omisión del último argumento de la función. Aquí, al no solicitar que la coincidencia sea exacta, la función nos arroja el resultado del valor anterior más próximo al que estamos buscando. Como vemos es ideal para busquedas de rangos. Como el valor 15000 que estamos buscando en la primer columna, no existe; entonces la funcion nos arroja el valor de la columna 3 de la fila inmediatamente anterior al valor que estamos buscando (10001; en la proxima fila ya nos habríamos pasado); obteniendo el resultado deseado(25%).
Ejemplo 3:
En este ejemplo, vemos unos de los problemas más comunes con que nos encontramos cuando trabajamos con VLOOKUP; si queremos sumar los resultados de las búsquedas, pero alguna de ella arroja el error #N/A, no podemos hacerlo; para corregirlo podemos utilizar la función IFERROR (en excel 2007 en adelante) o la combinación de las funciones IF e ISERROR (en excel 2003) como podemos ver en los siguientes ejemplos:
Tener en cuenta que para utilizar la función VLOOKUP, siempre la primer columna de nuestro rango de búsqueda debe ser la que contiene el valor que estamos buscando.
Lo que nos lleva a la pregunta, ¿y si yo no puedo tener un rango donde el valor a buscar este en la primer columna, como hago para realizar la búsqueda?; no se preocupen, para todo siempre existe una solución; para estos casos es donde podemos utilizar la combinación de las funciones MATCH e INDEX.
Las funciones MATCH e INDEX
Estas dos funciones, son utilizadas generalmente juntas para realizar búsquedas. La función MATCH, como ya dijimos, nos devuelve la posición de un item en un rango que coincide con un valor especificado. Su sintaxis es la siguiente:
MATCH(valor_a_buscar; rango_en_donde_buscar; tipo_de_coincidencia)
Los argumentos de esta función son los siguientes:
rango_en_donde_buscar: Este es el rango que contiene los datos donde queremos realizar la búsqueda.
La función INDEX nos devuelve el valor de una celda en un rango. Su sintaxis es la siguiente:
INDEX(rango; numero_linea; numero_columna)
Los argumentos de esta función son los siguientes:
numero_linea: un numero de fila dentro del rango. Si el rango contiene una sola linea este argumento no es necesario.
Combinando estas dos funciones, podemos solucionar el problemas que teniamos con VLOOKUP, como lo demuestra el siguiente ejemplo:
Ejemplo 4:
Como vemos en este ejemplo, para realizar la busqueda no podemos utilizar VLOOKUP, ya que la columna donde debemos buscar nuestro valor no es la primer columna, sino que es la segunda columna de nuestro rango de datos; y si quisieramos mover esa columna al primer lugar, estariamos rompiendo otras formulas. Por esa razón utilizamos la combinación de MATCH e INDEX; en este caso MATCH nos esta devolviendo el número de fila en que coincide nuestra busqueda dentro del rango que le estamos pasando, luego ese valor esta siendo utilizado como argumento de numero_linea en la función INDEX para que nos traiga el resultado deseado.
Quienes quieran, pueden descargarse el excel con los ejemplos del siguiente enlace.
Imagenes de los ejemplos:
Espero les haya servido este artículo, y no se pierdan los próximos!!.
Saludos!