Sunteți pe pagina 1din 8

BUSCARV avanzado. Bsqueda dinmica en varias hojas.

Mtodo 1
Vamos a empezar con este captulo del manejo avanzado del argumento Matriz_buscar_en
de la funcin BUSCARV con una aplicacin que es muy til sobre todo para los que an no
estn muy familiarizados con la aplicacin de funciones como DESREF o INDIRECTO
que ya vimos en entregas anteriores. Tenemos la siguiente informacin:

Se trata de un pequeo sistema donde se puede realizar la consulta de varios aos para un
mismo mes sobre las ventas de 4 empresas para alguno de los tres productos que se tienen
en las bases de datos. Debido a que por cada producto hay una base de datos, es necesario
hacer un ajuste en la aplicacin de la funcin BUSCARV pues como sabemos, solo
podemos indicar un rango de celdas en el argumento Matriz_buscar_en, es decir, si
seleccionamos de la celda C6 el Producto1, entonces la funcin BUSCARV debe ir a
consultar la fecha indicada en la hoja Producto1; si el item seleccionado en la celda C6 es
Producto2 entonces la funcin BUSCARV debe ir a consultar la fecha en la hoja
Producto2.:
Para realizar esta configuracin, debemos combinar la funcin SI con la funcin
BUSCARV de la siguiente manera:
SI el texto en la celda C6 es igual a "Producto1", entonces realice la bsqueda de la
fecha en la hoja Producto1.
SI el texto en la celda C6 es igual a "Producto2", entonces realice la bsqueda de la
fecha en la hoja Producto2.
SI el texto en la celda C6 es igual a "Producto3", entonces realice la bsqueda de la
fecha en la hoja Producto3.

Al aplicar la funcin en Excel queda de la siguiente manera:

Y el resultado luego de replicar la funcin en las dems celdas es el siguiente:

Y el resultado al seleccionar otro producto en la celda C6 es el siguiente:

BUSCARV avanzado. Bsqueda dinmica en varias hojas. Mtodo 2


Por Oscar Alonso Ospina 19/09/2017
Para continuar con este captulo del manejo avanzado de la funcin BUSCARV, vamos a
ver ahora una funcionalidad que a mi parecer es de las mejores que se pueden aplicar sobre
todo para los casos en los que necesitamos habilitar mediante un sistema de consulta, la
obtencin de la informacin de varias bases de datos. Tenemos la siguiente informacin:

Se trata del mismo sistema de consulta que hemos estado utilizando en las entregas
anteriores donde podemos obtener de cualquier mes y cualquier ao que se encuentre
disponible, los datos de ventas de cuatro empresas para el PRODUCTO1 y solo el
PRODUCTO1. Sin embargo, en el libro de Excel que hemos estamos trabajando no solo
tiene la base de datos Producto1, tambin esta Producto2 y Producto3:

Vamos a ver en esta entrega como realizar una consulta a cualquiera de esta hojas pero no
de la forma como ya hicimos en una entrega pasada donde vimos cmo realizar una
bsqueda a 2 bases de datos mediante la aplicacin de la funcin condicional SI
(BUSCARV en dos matrices), esta vez lo vamos a realizar dinmicamente y para ello
vamos a utilizar las funciones INDIRECTO y CONCATENAR, veamos:
Observemos como es la estructura de la referencia Matriz de Bsqueda de la funcin
BUSCARV:
Esta referencia indica que la matriz de bsqueda se encuentra en la hoja Producto1 y el
rango es desde la celda $C$1:$G$97, as que la referencia completa es Producto1!
$C$1:$G$97 (no olvidemos el signo de admiracin ! que hay entre el nombre de la hoja y
el rango de celdas).
Ahora repasando un poco, recordemos que la funcin INDIRECTO nos ayuda a obtener el
valor de una celda a partir de las indicaciones de ubicacin o referencia. As que podemos
utilizar la celda B3 que es donde se encuentra la lista desplegable de Productos que
podemos consultar:

Con esto ya tenemos la primera parte de referencia que necesita la funcin BUSCARV en
la matriz de bsqueda. Ahora para la segunda parte de esta referencia, solo debemos utilizar
la funcin CONCATENAR para unir el producto seleccionado en la celda B3 de la lista
desplegable, con el rango de celdas $C$1:$G$97, es decir que debemos aplicar el siguiente
combo de funciones:

INDIRECTO(CONCATENAR($B$3,"!$C$1:$G$97")):
De esa manera estamos indicando que la matriz de bsqueda es el resultado que se obtiene
de unir el texto de la celda Producto1 con el texto "!$C$1:$G$97":

Si seleccionamos otro Producto de la celda B3 vemos como se actualizan las cifras:


Nota: Es muy importante entender que para esta tcnica funcione, el nombre de las hojas
debe ser idntico a cada uno de los tems del listado de los productos:

BUSCARV avanzado. Bsqueda dinmica en varias hojas.


Mtodo 3

Vamos a ver a continuacin el segundo mtodo para utilizar de forma avanzada el


argumento Matriz_buscar_en. En el mtodo anterior la estrategia consista en aplicar la
funcin INDIRECTO para utilizarla en la definicin del nombre del rango del rango de
bsqueda y combinndola con la funcin CONCATENAR para complementar el rango de
celdas, es decir
INDIRECTO(CONCATENAR($B$3,"!$C$1:$G$97")):
Observemos que en la celda C3 seleccionamos el producto que corresponde al nombre de
las hojas donde estn las bases de datos donde se realizara la consulta del BUSCARV.
Combinbamos el nombre del producto con el rango de celdas $C$1:$G$97 para completar
la referencia de la matriz de bsqueda. El inconveniente con este mtodo es que en la
medida que se vayan ingresando registros nuevos en la base de datos, es decir, en la medida
que aumenten, el rango de celdas $C$1:$G$97 lo debemos ir ajustando tambin para que
incluya las filas de los nuevos registros.
Precisamente esto es lo que vamos a solucionar con ste segundo mtodo de la aplicacin
avanzada del argumento Matriz_buscar_en mediante el uso de la funcin CONTARA que
ya vimos en entregas anteriores
Para realizar correctamente el ejercicio vamos a reemplazar de la funcin que tenemos
actualmente, el nmero de la fila donde termina el rango de bsqueda, es decir, el valor 97;
este es el que va a ser dinmico en la medida que se ingresen nuevos registros en la base de
datos:

INDIRECTO(CONCATENAR($B$3,"!$C$1:$G$97")):
Y lo reemplazamos por las siguientes funciones:

CONTARA(INDIRECTO(CONCATENAR($B$3,"!$A:$A")))
Lo que estamos haciendo es indicando a Excel que cuente cuantas filas NO vacas (Funcin
CONTARA) hay en la columna A de la hoja cuyo nombre se seleccion en la celda B3.
La funcin completa quedara de la siguiente manera:
Y el resultado luego de replicar en todo el rango sera el siguiente:

De esta manera al ingresar nuevos registros en la base de datos no nos tenemos que
preocupar por ajustar el rango de celdas en la Matriz de bsqueda.

S-ar putea să vă placă și