En este post vamos a continuar con el tema “búsqueda inteligente en
Excelpost10/post18/post19”. El objetivo es crear un sistema de búsqueda en Excel sin la
necesidad de utilizar macros, solo con la ayuda de algunas funciones. Este sistema de búsqueda
permitirá que introduciendo una palabra clave nos haga una lista de sugerencias para poder elegir
el dato que nos interesa, tipo "motor de búsqueda en Excel".
La formula principal que utilizamos para hacer nuestra mini aplicación es “Buscarv”. Y luego
utilizándolo en forma inteligente podemos crear lo que necesitamos.
Click en la imagen para ver el video o en este link.
Descripción del Funcionamiento
Para empezar tenemos una base de datos dónde está la información que nos interesa. De esta
información, para agilizar nuestro trabajo muchas veces queremos ubicarla mediante un código.
Sin embargo al ser extensa la base de datos, normalmente es difícil recordar los códigos para eso
es que necesitamos una forma de encontrar la información más eficientemente.
Para este ejemplo suponemos que tenemos una concesionaria de autos Audi, BMW y Alfa Romeo.
En la base de datos se listan los diferentes modelos de cada marca, pero obviamente son muchos
modelos.
Como ven en la lista tenemos el ID del producto, en este caso el modelo, la cantidad disponible y
el precio. Además en la primera columna tenemos un dato auxiliar, en esta columna se verifica
que la palabra clave buscada se encuentra en la descripción del Marca/Modelo. Si lo encuentra lo
cuenta, sino mantiene el valor anterior, como ven en la figura. La fórmula que se utiliza para el
primer dato, por ejemplo suponiendo que el segundo dato del ID está en la celda “H9“, es la
siguiente:
“=SI((CONTAR.SI($I9;"*"&$B$9&"*"))=1;G8+1;G8)”
La columna auxiliar en este caso la utilizamos delante por conveniencia, como ya van a ver. Ya
que vamos a referir a ese número auxiliar para la búsqueda.
Ahora vamos a ver el dashboard o panel de control en donde utilizamos el motor de búsqueda.
Vamos a ver qué es lo que tenemos:
En la parte superior tenemos lo que sería el formulario de búsqueda por ID. En dónde
introducimos el ID y nos muestra los datos del artículo. En este caso, solo tres datos que son la
Marca y el modelo, la cantidad en stock y el precio de lista.
En la parte inferior se encuentra el formulario de búsqueda que nos hará más fácil la tarea de
encontrar el artículo que necesitamos.
Como ven en la imagen anterior, para esta búsqueda nos muestra 4 datos. Cada dato tiene una
etiqueta de titulo que nos dice de que datos se trata. Básicamente para este caso queremos que
nos muestre el ID, la descripción del artículo, la cantidad y el precio. Es decir, dos o tres datos
que nos identifica claramente el artículo. La primera columna de los datos vuelve a ser la
posición que es un dato auxiliar que necesitamos.
La lógica del formulario de búsqueda es el siguiente:
Necesitamos mostrar los datos de un artículo en particular, y no recordamos el código.
Tenemos algunos datos del artículo, por ejemplo una parte del nombre del modelo o la
marca por ejemplo.
Introducimos la palabra clave que nos parece en la celda de búsqueda.
Nos muestra una lista de sugerencias.
Observamos cuál es el artículo que estamos buscando, que está identificado con el ID.
Introducimos el ID en el formulario de arriba.
Finalmente logramos mostrar la información del artículo solicitado.
Proceso de creación
Para la creación tengamos en cuenta la siguiente imagen.
Para crear el formulario de búsqueda por ID, simplemente en cada celda utilizamos la función
“BuscarV” correspondiente al dato buscado.
Modelo/Artículo: “=BUSCARV($B$5;$H$8:$K$25;2;FALSO)”
Cantidad: “=BUSCARV($B$5;$H$8:$K$25;3;FALSO)”
Precio: “=BUSCARV($B$5;$H$8:$K$25;4;FALSO)”
Para crear el formulario del “motor de búsqueda” se usan formulas similares. Solamente hay
que tener en cuenta lo siguiente:
La celda dónde se introduce la palabra clave es la “B9”.
Este sistema puede mostrar una lista de hasta 10 coincidencias, es decir, 10 posiciones.
El número de posición es el que ayuda a generar la lista, se usa como Identificación transitoria
de las coincidencias. Como ven en la base de datos que tenemos a la derecha se nos ordena la
info dándole una numeración relativa a cada dato. En la imagen como hay cuatro coincidencias
hay cuatro posiciones.
Teniendo en cuenta lo anterior, utilizando como dato de búsqueda la posición, buscamos
en la base de datos a que dato corresponde cada posición. Por ejemplo para la posición 1:
“BUSCARV ($A11;$G$8:$I$24;2;FALSO)”. El resto de los datos se obtienen del resultado de esta
fórmula, es decir el ID del producto.
Todas las celdas contienen esta fórmula. Deberemos utilizar un condicional para que no
nos muestre dato si no encuentra la posición, con lo cual para el primer dato nos quedaría:
“=SI($A11=0;0;BUSCARV($A11;$G$8:$I$24;2;FALSO))”. Es decir, que si no encuentra posición no
muestra nada en la celda.
Para saber cuántas coincidencias hay en la lista de datos utilizamos un “Contar.Si” que
está en el titulo de la columna “Aux” en la base de datos. Esto lo realizamos para saber de
antemano cuantos datos vamos a tener.
En la columna posición en la lista de coincidencias utilizamos un condicional para no
mostrar más posiciones que la encontradas con la formula anterior. Para el segundo dato de la
celda “A12” tenemos: “=SI(Y($G$7>=2;$B$9>0);2;0)”