Filtro multicriteria dinámico con LET, FILTRAR y LAMBDA
Hector comparte con la comunidad una fórmula avanzada para filtrar una tabla de productos/servicios por múltiples criterios opcionales (clave, descripción y palabras similares). Lo interesante del caso es que los filtros son dinámicos: si un campo de búsqueda está vacío, se ignora ese criterio.
La primera versión usa una función auxiliar LAMBDA dentro de LET que devuelve 1 cuando el campo de búsqueda está vacío (para no filtrar por ese criterio) o evalúa HALLAR cuando hay un valor:
``
=LET(
f, LAMBDA(_value,_rango, SI(_value="", 1, ESNUMERO(HALLAR(_value, _rango)))),
_mFiltrada, FILTRAR(tblProductoServicio,
f(B2, tblProductoServicio[c_ClaveProdServ])
f(B3, tblProductoServicio[Descripcion])
f(B4, tblProductoServicio[Palabras_similares])),
_result, SI.ERROR(
EXCLUIR(_mFiltrada,,-2),
SI.ERROR(LET(
CveProducto, SI(B2="", SECUENCIA(CONTARA(tblProductoServicio[c_ClaveProdServ])),
tblProductoServicio[c_ClaveProdServ]=B2),
Descripcion, ESNUMERO(HALLAR(B3, tblProductoServicio[Descripcion])),
Similar, ESNUMERO(HALLAR(B4, tblProductoServicio[Palabras_similares])),
FILTRAR(tblProductoServicio[[c_ClaveProdServ]:[Material Peligroso]],
CveProductoDescripcionSimilar)),
"No hay registros")),
_result)
`
Tras iterar, Hector refina la fórmula a una versión más legible, añadiendo una validación para el caso en que todos los campos de búsqueda estén vacíos (devuelve la tabla completa):
`
=LET(
f, LAMBDA(_value, _rango, SI(_value = "", 1, ESNUMERO(HALLAR(_value, _rango)))),
todosVacíos, Y(B2 = "", B3 = "", B4 = ""),
_mFiltrada, SI(todosVacíos,
tblProductoServicio,
FILTRAR(tblProductoServicio,
f(B2, tblProductoServicio[c_ClaveProdServ])
f(B3, tblProductoServicio[Descripcion])
f(B4, tblProductoServicio[Palabras_similares]))),
_resultado, SI.ERROR(EXCLUIR(_mFiltrada,,-2), "No hay registros"),
_resultado)
``
Un patrón muy útil para crear buscadores interactivos en Excel sin macros.
Más contenido de Excel en InflueXcel
- Reto de Excel: El cumpleaños de Bilbo 🎂 | CONTAR.SI y SUMAR.SI desde cero (Nivel 1) TutorialEn La Comarca se celebra el cumpleaños número 111 de Bilbo Bolsón: cerveza, pasteles, fuegos artificiales… y algún curioso escondido tras el
- ¡Excel PowerQuery Hack! Conexiones con rutas relativas en 10 minutos! Tutorial¿Harto de ajustar las conexiones en PowerQuery cada vez que compartes tu archivo de Excel? 🙄 Convierte las conexiones de PowerQuery con ruta
- Mejora un 90% el rendimiento de Power Query con SQLite TutorialPower Query es una herramienta potente para consolidar, combinar y calcular datos, pero cuando trabajamos con millones de registros y calcul
- Nueva Función IMPORTTEXT TutorialNueva función IMPORTTEXT en Excel!! https://techcommunity.microsoft.com/blog/microsoft365insiderblog/bring-data-into-excel-with-the-new-impo
- ¿Columnas con nombres distintos en Power Query? Tutorial¿Columnas con nombres distintos en Power Query? Aquí tienes la solución definitiva para normalizar tus datos y evitar errores al combinar fi
- BUSCARX con valor devuelto dinámico: elige la columna con un botón o un segmentador CasoUna integrante de la comunidad planteó un reto muy habitual al trabajar con tablas de varias columnas: tiene una lista de municipios con cua
- Saldo acumulado por mes: tres enfoques (REDUCE+BYROW, PIVOTARPOR+acumulado, MMULT) CasoJuan plantea una pregunta que parece sencilla y se acaba convirtiendo en tres clases magistrales sobre cómo recorrer una matriz mes a mes. T
- Mapa de España con burbujas: ubicar variables por provincia usando coordenadas X/Y CasoEsta semana surgió una duda muy visual en el grupo: cómo mostrar dos variables por provincia en un mapa de España — una pintada en intensida
- Regularización trimestral con AGRUPARPOR y ARCHIVOMAKEARRAY: del caos a una fórmula CasoCaso fresquito de la comunidad. Juan plantea un problema contable: tiene una tabla de movimientos (Nombre, Cuenta, Importe, Fecha) y necesit
- Grado de avance por proyecto: despivotar y volver a pivotar por fecha CasoNuevo caso de la comunidad con mucho jugo para los que trabajan con reporting de proyectos. Juan plantea un problema habitual en oficinas té