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.

BUSCARV en Excel

Figura 1. Formulario con lista de validación.

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.

Asignar nombre a rango en Excel

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.

Validación de datos en Excel

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:

  1. valor_buscado.
  2. matriz_buscar_en.
  3. indicador_columnas.
  4. 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),”-“)

BUSCARV con INDIRECTO para rango dinámico

Figura 3. Parámetros de la función BUSCARV.

Seguro de interesa

Artículos sobre BUSCARV

Validación de datos

Anexos

:: Descarga el ejemplo Rango de búsqueda dinámico para BUSCARV usando INDIRECTO en Excel.rar

You may also like...

  • sergio

    Muy bueno Tocayo.
    gracias
    Aprovechando :
    Tienes algo en Excel para obtener el curp ?. Baje 2 calculadores en Excel, ambas están limitadas a 500 y 1000 registros y ambas dan resultado diferente.
    Muy buen blog
    gracias

  • Oscar R

    Gracias por compartir tus conocimientos, mucho he aprendido gracias a usted.

    Una pregunta, como puedo hacer un formulario para poder mostrar varios datos, en el caso que en la matriz a buscar el nombre que busco este 5 veces, como puedo llenar un formulario con esos 5 datos que encontro de la busqueda.
    Gracias

RECIBE CONTENIDO EXCLUSIVO

Tips, trucos, videos para convertirte en un EXPERTO EN EXCEL y llegar al éxito. Suscríbete y recibe el mejor contenido en tu correo.