Cómo crear un buscador en Excel en tiempo real con FILTRAR, HALLAR y ESNUMERO · Hazlo Con Excel

← Volver al blog

Cómo crear un buscador en Excel en tiempo real con FILTRAR, HALLAR y ESNUMERO

Descarga los materiales del buscador en Excel

Recibe los materiales de la lección para comparar tu resultado con el ejercicio mostrado.

¡Ya casi lo tienes!

Revisa tu bandeja de entrada, en minutos recibirás la plantilla.

Crear un buscador en Excel en tiempo real te permite localizar productos u otros registros conforme escribes, sin capturar la palabra completa ni presionar Enter después de cada cambio. En este ejercicio, el resultado se basa en FILTRAR, HALLAR y ESNUMERO, y se conecta a un cuadro de texto ActiveX para actualizar el criterio automáticamente.

El buscador devuelve las filas completas de una matriz, incluidos los datos asociados al producto, como los colores disponibles. La clave es generar una matriz de valores VERDADERO y FALSO que indique en qué nombres de producto aparece el texto capturado.

Paso 1: Crea un filtro por coincidencia exacta

Primero, usa FILTRAR para devolver el conjunto de datos que quieres consultar. Su primer argumento es la matriz: todos los valores o filas que deseas mostrar como resultado.

El segundo argumento, incluir, define qué registros se conservarán. En la prueba inicial se compara toda la columna de productos con la celda que contiene el texto de búsqueda. Si no hay coincidencias, el tercer argumento evita que se muestre un error y devuelve el texto "no encontrado".

La estructura inicial es la siguiente:

=FILTRAR([matriz];[nombres de producto]=F3;"no encontrado")

En el ejercicio, F3 es la celda vinculada al texto buscado. Sustituye [matriz] y [nombres de producto] por los rangos reales de tu libro, procurando que el rango de productos tenga la misma cantidad de filas que la matriz que vas a filtrar.

Con esta versión, si escribes el nombre completo del producto, por ejemplo bufanda h, FILTRAR devuelve los registros correspondientes. Sin embargo, esta condición requiere que el contenido de la celda sea exactamente igual al nombre del producto.

Paso 2: Identifica por qué una palabra incompleta no devuelve resultados

Si cambias el criterio y escribes solo una parte del nombre, como bufanda sin la h, la comparación directa deja de encontrar resultados. Esto ocurre porque la condición:

[nombres de producto]=F3

solo puede producir VERDADERO cuando ambos textos son iguales por completo.

El argumento incluir de FILTRAR necesita una capa booleana, es decir, una matriz de resultados VERDADERO y FALSO. Cada posición de esa matriz determina si la fila ubicada en la misma posición dentro de la matriz original se muestra o se excluye.

Puedes comprobarlo evaluando por separado la comparación exacta. Si ninguno de los nombres de producto es idéntico al texto parcial escrito, todos los resultados serán FALSO; por eso FILTRAR responde con "no encontrado".

Paso 3: Busca un fragmento de texto con HALLAR

Para detectar una coincidencia parcial, utiliza HALLAR. Esta función busca un texto dentro de otro texto y, cuando lo encuentra, devuelve la posición en la que comienza la coincidencia.

Por ejemplo, al buscar buff dentro de cada producto, HALLAR devuelve 1 en los productos donde ese fragmento comienza desde el primer carácter. Si buscaras uff, el resultado puede ser 2, porque la coincidencia inicia en la segunda posición.

La estructura que debes probar es:

=HALLAR(F3;[nombres de producto])

Como [nombres de producto] representa varios registros, el resultado se evalúa para cada nombre. Las coincidencias devuelven números; en los productos donde el texto no aparece, el resultado es un error.

También puedes cambiar el criterio por otro fragmento, como corp, para localizar los productos que contienen esas letras. Lo importante es que HALLAR no compara el nombre completo: identifica si el texto buscado aparece dentro de cada valor.

Paso 4: Convierte las coincidencias en una capa booleana con ESNUMERO

Aunque HALLAR encuentra el fragmento, todavía no entrega el tipo de resultado que FILTRAR requiere. Necesitas transformar los números que representan posiciones y los errores de las no coincidencias en valores lógicos.

Para hacerlo, envuelve HALLAR dentro de ESNUMERO:

=ESNUMERO(HALLAR(F3;[nombres de producto]))

ESNUMERO comprueba cada resultado de HALLAR:

  • Devuelve VERDADERO cuando HALLAR encontró el texto y regresó una posición numérica.
  • Devuelve FALSO cuando HALLAR no encontró el texto y produjo un error.

El resultado es la capa booleana que utilizarás en FILTRAR. Cada VERDADERO representa un producto cuyo nombre contiene el texto escrito en F3.

Paso 5: Integra FILTRAR, HALLAR y ESNUMERO

Ahora coloca la condición booleana dentro del argumento incluir de FILTRAR. La estructura final del buscador es:

=FILTRAR([matriz];ESNUMERO(HALLAR(F3;[nombres de producto]));"no encontrado")

La fórmula funciona de esta manera:

  1. HALLAR(F3;[nombres de producto]) intenta localizar el texto de F3 dentro de cada nombre de producto.
  2. ESNUMERO(...) convierte las posiciones encontradas en VERDADERO y las no coincidencias en FALSO.
  3. FILTRAR devuelve las filas de [matriz] que corresponden a los valores VERDADERO.
  4. Si no hay registros coincidentes, muestra "no encontrado".

Con esta fórmula ya puedes escribir una palabra incompleta o solo las primeras letras del producto. Por ejemplo, al capturar buff o corp, el filtro devuelve los productos en cuyos nombres se encuentra ese texto, junto con la información asociada incluida en la matriz.

Paso 6: Activa la pestaña Programador o Desarrollador

Hasta este punto, debes escribir en la celda y presionar Enter para actualizar el filtro. Para que el resultado cambie conforme tecleas, inserta un cuadro de texto ActiveX y vincúlalo con la celda de búsqueda F3.

Si no ves la pestaña Programador en la cinta de opciones, haz clic derecho sobre cualquier opción de la cinta y selecciona Personalizar la cinta de opciones. Después, activa la casilla Programador.

En algunas versiones de Excel, esta pestaña puede aparecer con el nombre Desarrollador. Una vez activada, podrás acceder a la sección Controles.

Paso 7: Inserta y vincula un cuadro de texto ActiveX

En la pestaña Programador, ve a Controles y selecciona Insertar controles ActiveX. Elige Cuadro de texto, control ActiveX.

Mantén presionado el clic y arrastra para dibujar el cuadro de texto en la hoja. Al insertarlo, trabajarás en Modo diseño, lo que te permite mover y colocar el control donde quieras mostrar el buscador.

Para sincronizar el texto del control con la fórmula:

  1. Haz clic derecho sobre el cuadro de texto.
  2. Selecciona Propiedades.
  3. Ubica la propiedad LinkCell.
  4. Escribe F3 como la celda vinculada.
  5. Cierra la ventana de propiedades.

Al configurar LinkCell con F3, el contenido del cuadro de texto y el valor de esa celda quedan enlazados. Si había texto en F3, se reflejará en el control; cuando escribas en el control, el valor se imprimirá en la celda.

Paso 8: Prueba el buscador en tiempo real

Desactiva Modo diseño para poder usar el cuadro de texto como campo de búsqueda. A partir de ese momento, cada letra que escribas se actualizará en F3 de forma automática.

Como la fórmula FILTRAR toma F3 como criterio, los resultados también cambian mientras escribes. Con la primera letra puedes ver los productos que contienen esa coincidencia; al completar más letras, el filtro reduce los resultados hasta encontrar los productos que correspondan al texto capturado.

Si necesitas mover o ajustar el cuadro de búsqueda, activa otra vez Modo diseño. El cuadro de texto ActiveX será el campo de búsqueda del libro, mientras que F3 seguirá funcionando como la celda que alimenta la fórmula.

Materiales de la lección

Puedes descargar los materiales de esta lección para comparar tu resultado con el ejercicio mostrado.