SITIO DEDICADO  SOLO A EXCEL 2007 Y EXCEL 2003, CON TUTORIALES Y EJERCICIOS  RESUELTOS DE  TODOS LOS TEMAS

NIVELES, BASICO, MEDIO Y AVANZADO

 

FUNCION BUSCARV

La función BUSCARV busca datos que están en primera columna de una tabla(a esta tabla se la denomina matriz de búsqueda o de datos), si el valor es encontrado devuelve el dato asociado (valor que esta en la misma fila que el dato a buscar) de una columna especificada, la sintaxis es;

los primeros tres argumentos son obligatorios y el cuarto es opcional

Veamos el siguiente ejemplo:

Un profesor tiene una tabla con las notas de un alumno puestas en números y quiere completarla poniendo las notas en palabras

para hacer esto cuenta con otra tabla de equivalencias

 

vuelca estos datos en un libro de Excel poniendo en la Hoja1 la tabla a completar y en la Hoja2 la tabla con las equivalencias pero sin los rótulos para tener directamente la matriz de datos

despues coloca la siguiente fórmula en la celda E3 de la Hoja 1:

en la que D3 es una referencia donde está el contenido , que en este caso es el valoor 2, aunque hay casos en que por la naturaleza del problema, por ejemplo una consulta, la referencia puede al principio estar vacia, dando el error #N/A (no aplicable), en el tutorial ELIMINAR MESAJE DE ERROR EN BV, daremos una solución a este antiestético mensaje.

 

A continuación se arrastra la función hasta completar la tabla

en este caso la matriz de búsqueda está en otra hoja, pero puede estar en cualquier lado,  incluso dentro de otra tabla.

BUSCARV EN VARIAS COLUMNAS

BUSCAR VERTICALMENTE CON MULTIPLES RESULTADOS

En el problema visto arriba los datos a buscar no se pueden repetir, ya que las notas no pueden aparecer más de una vez o como en las listas de precios a destinos desde una terminal aérea, estos destinos tampoco se pueden repetir y así podemos encontrar muchos casos mas en los cuales los datos a buscar no se pueden repetir ( piensen algunos ejemplos).

Existen, sin embargo, casos en los cuales los datos a buscar pueden estar repetidos y ni siquiera podemos saber cuantas veces lo están. Veamos un ejemplo sencillo:

 

Supongamos que un comercio tirne 4 empleados y el dueño quiere saber, en las 8 hs que está abierto, cuantos ventas realizo cada uno de ellos. Se dispone, para esto, de una planilla donde se vuelcan los datos

 

Como verán Sara aparece 1 vez, Leandro 2, Eugenia 2 y Agustín 5 veces. En todos los casos BUSCARV traería la primera ocurrencia y esta es la falencia de esta función, no hay forma de que nos diga, si las hubiere, las otras apariciones. Este problema tiene solución pero hay que pagar el precio de que las fórmulas que resultan son mucho más complicadas.

Hagamos una prueba con Agustín utilizando BUSCARV, para lo que utilizaremos la fórmula

 

BUSCARV

 

Donde la matriz de búsqueda es

 

Matriz de busqueda para multiples valores

 

 

que nos trae el resultado de la primera aparición de Agustín

 

Primera aparicion

 

Traer todos los valores de Agustín implica devolver más de un resultado y las fórmulas matriciales son las que pueden hacer esto, para lo que debemos anidar varias funciones y luego pulsar CONTROL-SHIFT-ENTER para transformar esta fórmula en matricial.

Lo primero que debemos hacer es localizar las filas en la se repite Agustín. Para esto vamos a comparar el rango de los empleados A2:A11con la celda G2 donde hemos colocaremos el nombre Agustín para lo que usaremos la formula matricial

{=SI($A$2:$A$11=$G$2, FILA())}

la que ubicaremos en la celda H2 y luego de arrastrarla hasta la celda H11, como se ve mas

abajo

primer paso

aquí podemos apreciar que el resultado es FALSO si no hay coincidencias y cuando las hay me devuelve el numero de fila donde aparece Agustín o sea las filas 3,6,7,9,10.

Lo siguiente es ordenar las filas en forma tal que no estén separados por la palabra FALSO, que para Excel es considerado como el 0. Para esto usamos la función K.ESIMO.MENOR()

K.ESIMO.MENOR

en la que podemos ver que el primer argumento es la misma fórmula que usamos en el primer paso y el segundo FILA()-1. Como se ve debemos restar el 1, ya que los datos comienzan en la segunda fila y de esta manera es como si comenzaran en la primera. Al aplicar esta fórmula nos quedan las filas de forma consecutiva

 

 

ERGUNDO PASO

 

Nos queda traer los valores del rango B1:B11correspondientes a esas filas que son las que contienen los valores de las ventas de Agustín. Para esto usamos la función INDICE()

=INDICE($B$1:$B$11, K.ESIMO.MENOR(SI($A$2:$A$11=$F$1, FILA()), FILA()-1))

 

donde el segundo argumento es el mismo del segundo paso y el primero es el rango donde están las ventas. Al aplicar la fórmula matricial nos quedan todos los valores de las ventas de Agustín y ya podemos cambiar el rotulo "FILAS " por el de "VENTAS" que deben dar

                                                                                                                 

 

Solo nos resta la eliminación de los errores, para lo que utilizamos la función SI.ERROR()

{=SI.ERROR(INDICE($B$1:$B$11;K.ESIMO.MENOR(SI($A$2:$A$11=$G$2;FILA());FILA()-1));"")}

 

quedándonos

Si ahora ponemos en la celda G2 cualquier otro empleado, como Leandro, en la columna H se desplegarían las ventas de Leandro

 

 

Leandro

Sería una buena idea que ustedes probaran con los demás empleados.

 

 

 

Copyright © 2009. Diseño José María César Leston