En AppSheet, es muy común que queramos filtrar una lista de productos en base a diferentes criterios como marca, color o un rango de precios. Sin embargo, hacer esto de forma dinámica y sin errores requiere aplicar correctamente funciones como SELECT, AND, OR e ISBLANK.
En este artículo aprenderás cómo crear un filtro completo que reacciona automáticamente a los valores seleccionados por el usuario en un formulario. ¡Ideal para apps de ventas o inventario!
🧩 ¿Qué hace esta fórmula?
SELECT(PRODUCTOS[ID], AND(
OR(ISBLANK([_THISROW].[MARCA]), [MARCA]=[_THISROW].[MARCA]),
OR(ISBLANK([_THISROW].[COLOR]), [COLOR]=[_THISROW].[COLOR]),
OR(ISBLANK([_THISROW].[PRECIO_MINIMO]), [PRECIO] >= [_THISROW].[PRECIO_MINIMO]),
OR(ISBLANK([_THISROW].[PRECIO_MAXIMO]), [PRECIO] <= [_THISROW].[PRECIO_MAXIMO])
))
Esta fórmula busca en la tabla PRODUCTOS todos los IDs que cumplan con las condiciones seleccionadas en el formulario de ventas. Si el usuario no llena un campo, el filtro no lo toma en cuenta, permitiendo así mostrar todos los productos.
Imágenes Importantes de mi base de datos y app
Aqui te muestro la hoja de productos y Ventas, estas dos hojas son las que nos ayudarán a realizar este filtro.


🔍 Explicación de cada parte
1. SELECT(PRODUCTOS[ID], ...)
Usamos SELECT para obtener una lista de los ID de la tabla PRODUCTOS. El segundo parámetro indica qué condiciones deben cumplir esos productos.
2. AND(...)
La función AND se asegura de que todas las condiciones dentro del filtro se cumplan. Solo se incluirán productos que cumplan con todos los criterios seleccionados.
3. OR(ISBLANK([_THISROW].[MARCA]), [MARCA]=[_THISROW].[MARCA])
Este bloque verifica si el usuario no ha seleccionado una marca.
- Si está en blanco, se ignora la condición y se incluyen todas las marcas.
- Si hay una marca seleccionada, solo se muestran productos con esa marca.
4. OR(ISBLANK([_THISROW].[COLOR]), [COLOR]=[_THISROW].[COLOR])
Lo mismo que con la marca, pero aplicado al color.
Permite filtrar por color solo si el usuario lo ha seleccionado.
5. OR(ISBLANK([_THISROW].[PRECIO_MINIMO]), [PRECIO] >= [_THISROW].[PRECIO_MINIMO])
Si el usuario escribe un precio mínimo, solo se mostrarán productos con precio mayor o igual.
6. OR(ISBLANK([_THISROW].[PRECIO_MAXIMO]), [PRECIO] <= [_THISROW].[PRECIO_MAXIMO])
Permite establecer un precio máximo para el filtro. Si no se escribe nada, se muestran todos los precios sin límite superior.
🧪 Ejemplo práctico
Imagina que estás llenando un formulario para registrar una venta. Seleccionas:
- Marca: Samsung
- Color: Blue
- Precio mínimo: 500
- Precio máximo: (lo dejas vacío)
El filtro te mostrará todos los productos de Samsung, de color azul, con precio igual o mayor a 500, sin importar el precio máximo.

¿Te gustaría una versión visual o un tutorial paso a paso en video? ¡Ya está disponible en nuestro canal de YouTube!
📥 Base de Datos para Practicar
Haz clic en el siguiente enlace para acceder a la hoja de cálculo (base de datos) que utilizamos en este curso. Recuerda que debes hacer una copia en tu propio Google Drive para poder editarla y conectarla a tu app en AppSheet.
➡️ Haz clic aquí para abrir la base de datos
(Sigue el ejemplo que ves en la imagen de abajo para hacer tu copia correctamente)







