Rango de búsqueda dinámico para BUSCARV usando INDIRECTO en Excel
Como hemos visto a lo largo de varios artículos sobre BUSCARV, que por mucho es una función imprescindible que nos saca de muchos apuros.
En base a una consulta en el Blog, este artículo trata sobre tener un rango de búsqueda dinámico si es que el BUSCARV lo deseamos aplicar buscando en distintas hojas o tablas.
Cómo funciona
Tenemos un archivo con 4 hojas. En la primera hoja tenemos un formulario de búsqueda en el cual contamos con una lista de validación la cual despliega 3 ítems los cuales serán las otras 3 hojas donde tenemos datos.
Figura 1. Formulario con lista de validación.
Ver Video Buscar valores en rangos de búsqueda dinámicos usando BUSCARV e INDIRECTO
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Dando nombres a los rangos de búsqueda
Deberemos de asignar un nombre de rango a cada uno de los rangos de búsqueda que tenemos en las 3 hojas llamadas de datos.
Para eso, nos vamos a la hoja Base y elegimos el rango B1:K23. Sin dejar de selecciona el rango damos click en la opción Asignar nombre de la pestaña Fórmulas. En el TexBox Nombre escribimos Base. Hacemos el mismo procedimiento en el resto de las hoja asignando los nombres de Base2 y Base3 según corresponda.
Figura 2. Asignar nombre a rango de Excel.
Lista de validación que muestre las 3 tablas
Como tenemos 3 posibles rangos de búsqueda lo ideal es poder elegimos mediante una lista. La lista quedará en la celda G9 de la hoja Formulario. Elegimos dicha celda y nos vamos a Validación de datos de la pestaña Datos.
Estando en el formulario que se muestra, seleccionamos Lista en la sección Permitir. En Origen vamos a ingresar el texto Base,Base2,Base3 que son los 3 nombres de rangos.
Figura 3. Lista de validación en Excel.
Usar indirecto para rango de búsqueda dinámico
Ahora sí viene lo interesante. Recordemos los parámetros de la función BUSCARV:
- valor_buscado.
- matriz_buscar_en.
- indicador_columnas.
-
ordenado (opcional).
Para el primer parámetro usaremos el texo que se ingrese en la celda D9, pero para que haga una búsqueda parcial de datos usamos el comodín ( * ). El parámetro queda como “*”&D9&”*”. Para el parámetro de la matriz usamos la función INDIRECTO para tomar el nombre que esté en la celda G9 el cual ya vimos que es el nombre de los rangos, quedando así INDIRECTO($G$9). El indicador de columnas dependerá del datos que querramos devolver.
La fórmula completa queda así:
=SI.ERROR(BUSCARV(“*”&D9&”*”,INDIRECTO($G$9),5,0),”-“)
Figura 3. Parámetros de la función BUSCARV.
Seguro de interesa
Anexos
:: Descarga el ejemplo Rango de búsqueda dinámico para BUSCARV usando INDIRECTO en Excel.rar
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.