El blog de PlanillaExcel

BUSCARV con matriz de búsqueda dinámica

Cuando queremos traer un dato con BUSCARV y tenemos organizada la información en diferentes tablas, necesitamos que de alguna forma la función detecte en qué tabla debe buscar el dato.

En este video-tutorial te explico como realizar un rango dinámico para la función BUSCARV con la ayudar de función INDIRECTO.

 

Explicación

En Excel es usual tener la información organizada en diferentes tablas: por ejemplo aquí tenemos los datos de ventas de productos y queremos que al seleccionar la sucursal, busque el valor en la tabla correspondiente y nos arroje las ventas totales.
 

rango dinamico en buscarv
 

Fórmula General

=BUSCARV(valor_buscado;INDIRECTO(“tabla_de_busqueda”);columna;0) 

En el ejemplo:

=BUSCARV(C3;INDIRECTO(D3);5;0)

Se trata de la función estándar de BUSCARV donde el primer argumento será el producto a buscar y el segundo argumento es la matriz donde buscará ese valor, que con la ayuda de la función INDIRECTO haremos que sea dinámico: es decir que el rango de búsqueda cambie de acuerdo a la sucursal que seleccione en la celda D3.

Para que esta fórmula funcione, primero debemos crear nombres para cada tabla que tiene información.  
Así, iremos a la pestaña Fórmulas>Administrador de nombres>Nuevo

En la ventana emergente escribiremos en la sección “Nombre” el nombre de la primer tabla o sucursal: en nuestro ejemplo Castilla y en la sección “Se refiere a“ seleccionaremos la tabla con información de A8:E14.
Rangos dinamicos en buscarv


Así creamos el primer nombre. Esto hay que repetirlo para las 3 tablas con información de las sucursales restantes.


rangos dinamicos en BUSCARV con INDIRECTO

Ahora bien, en la fórmula BUSCARV, la matriz de búsqueda la va a proporcionar la función INDIRECTO cuyo argumento será la celda donde aparece la sucursal seleccionada, es decir la celda D3.

La función INDIRECTO devolverá el rango de valores a los que se refiere la celda D3.  Por ejemplo, si en la celda D3 la sucursal es Castilla traerá la tabla de datos asociada a ese nombre: que es el rango A8:E14.  
Entonces la función BUSCARV quedaría:

=BUSCARV(C3;A8:E14;5;0)

Si en la celda D3 la sucursal dice Murcia traerá la tabla de datos asociada a ese nombre: que es el rango G8:KE14.  
Entonces la función BUSCARV quedaría gracias a la función INDIRECTO de esta manera:

=BUSCARV(C3;G8:KE14;5;0)

De esta forma podemos hacer rangos de búsqueda dinámicos en BUSCARV con INDIRECTO.

 

Espero que te haya servido.

¡Saludos!

Cecilia - www.planillaexcel.com

PD: si quieres aprender más de Excel, dicto cursos online desde el nivel básico a avanzado.
Haz click aquí para ver los cursos.