Es sorprendente lo que se puede hacer con Excel. En este tutorial te voy a mostrar cómo convertirlo en un buscador inteligente: eliges una modalidad de una lista y la tabla se filtra al instante, eliges también un departamento y se filtra por ambos, y si además escribes un nombre en un cuadro de texto, la tabla se va filtrando conforme escribes. Todo esto sin necesidad de dar clic en ningún botón. Vamos a aprenderlo desde cero.
El filtro de Excel que parece imposible (y es muy fácil de crear)
🎁 Descarga el archivo de ejempl
Escribe tu correo electrónico para recibir gratis el archivo para practicar.
*Al enviar mi correo electrónico, acepto recibir noticias y ofertas. Puedo darme de baja en cualquier momento.
De dónde viene la idea
Hace unos días, en un video anterior, le pedí a la IA de Claude un sistema CRUD para consultar datos: alta, baja y modificación. Lo que más me gustó de ese reporte fue que, conforme yo filtraba por departamento o por estatus, e incluso conforme escribía, los datos se iban filtrando en tiempo real. Me puse como reto replicar esa misma experiencia en Excel, y eso es justo lo que vamos a construir hoy.
El reto con la función FILTRAR
Normalmente, cuando usas la función FILTRAR, esta solo te devuelve resultados cuando tienes un valor definido para filtrar. Pero yo no quería eso. Yo quería que, cuando no hubiera ningún filtro aplicado, se mostrara la tabla completa, y que conforme fuera eligiendo o escribiendo, se fuera filtrando. Sí se puede hacer, aplicando un truco que te muestro más adelante.
Paso 1: Crear las listas de validación
Partimos de una tabla llamada TBL_Empleados. El primer paso es definir cómo la vamos a filtrar: por listas (modalidad y departamento) y por nombre.
Para cada lista:
- Selecciona la celda donde quieres la lista.
- Ficha Datos → Validación de datos → Permitir: Lista.
- En origen, selecciona la columna correspondiente de la tabla (Modalidad o Departamento).
- Aceptar.
Con esto obtienes los valores únicos de cada columna, listos para elegir desde un dropdown.
Paso 2: Insertar el cuadro de texto (control ActiveX)
Para que el filtrado también funcione mientras escribes, necesitamos un cuadro de texto que capture ese valor y lo escriba en una celda.
- Ficha Programador → Insertar → dentro de Controles ActiveX, elige Cuadro de texto.
- Dibújalo en la hoja.
Si no tienes la ficha Programador activada: Archivo → Opciones → Personalizar cinta de opciones → activa Programador.
Paso 3: La macro que conecta el textbox con la celda
Queremos que, conforme escribamos en el cuadro de texto, el valor se refleje automáticamente en una celda (en este caso, E6).
- Doble clic sobre el TextBox para entrar al editor de Visual Basic.
- En el evento Change del TextBox, escribimos:
vb
Range("E6").Value = Me.TextBox1.Value
Esto dice: cada vez que cambie el contenido del TextBox, el valor de la celda E6 será igual al valor del TextBox.
Importante: para que la macro funcione, el archivo debe guardarse como Libro de Excel habilitado para macros (.xlsm).
Después, regresa a la ficha Programador y desactiva el Modo Diseño para que el TextBox funcione en modo uso (no edición).
Paso 4: La fórmula mágica con FILTRAR
Aquí viene la parte clave. Queremos filtrar por modalidad, por departamento y por nombre, ya sea con uno, con dos o con los tres criterios a la vez, y que si no hay ningún filtro, se muestre la tabla completa.
La lógica es esta: para cada criterio, evaluamos si la celda de referencia está vacía (entonces mostramos todo) o si tiene un valor (entonces filtramos por ese valor). Cada uno de estos bloques se une con el signo + (funciona como un “o”), y entre criterios distintos usamos el asterisco * (funciona como un “y”).
La fórmula completa queda así:
=FILTRAR(TBL_Empleados,
((Buscador!B6="") + (TBL_Empleados[Modalidad]=Buscador!B6)) *
((Buscador!C6="") + (TBL_Empleados[Departamento]=Buscador!C6)) *
((Buscador!E6="") + (ESNUMERO(HALLAR(Buscador!E6, TBL_Empleados[Nombre]))))
)
¿Por qué ESNUMERO + HALLAR para el nombre?
Para modalidad y departamento, buscamos una coincidencia exacta (el valor completo de la lista). Pero para el nombre queremos una búsqueda aproximada: que encuentre “Ana” o “Patricia” dentro del nombre completo, sin necesidad de escribirlo exacto.
Para eso:
- HALLAR busca el texto que escribiste dentro de cada valor de la columna Nombre, y te devuelve la posición donde lo encontró (o un error si no lo encontró).
- ESNUMERO convierte ese resultado en VERDADERO (si encontró algo) o FALSO (si no encontró nada).
Así, FILTRAR se queda solo con las filas donde ESNUMERO devuelve VERDADERO, es decir, donde el nombre contiene el texto que escribiste.
El resultado
Con esto, ya tienes tu buscador inteligente: eliges modalidad, departamento, o escribes un nombre, y la tabla se filtra dinámicamente por cualquier combinación de los tres. Si borras todo, la tabla completa vuelve a aparecer. Y lo mejor: el filtro por nombre se actualiza mientras escribes, letra por letra.
Esta misma lógica de combinar listas de validación, controles ActiveX y FILTRAR con condiciones dinámicas la puedes adaptar a cualquier tabla de tu trabajo: inventarios, clientes, proyectos, lo que necesites consultar rápido.
Si quieres seguir dominando este tipo de fórmulas dinámicas, Power Query, Macros y todo lo que te ayuda a ser más productivo en Excel, en Deztaca tenemos cursos y talleres en vivo pensados exactamente para esto. Conoce todo lo disponible aquí: www.deztaca.com/cursos
