La función FILTER devuelve una tabla que representa un subconjunto de otra tabla.
FILTER(
table,
filter
)
- table: Tabla a ser filtrada o expresión que devuelva una tabla.
- filter: Expresión booleana que será evaluada para cada fila de la tabla.
La función FILTER devuelve una tabla compuesta por aquellas filas de la tabla original que han superado el filtro.
Esta función suele utilizarse como argumento en otras funciones (principalmente en la función CALCULATE) cuando se requiere filtrar una tabla.
Supongamos que hemos definido la medida
Ventas = SUM(FactSales[SalesAmount])
...que suma los importes de ventas. Imaginemos ahora que deseamos sumar las ventas de aquellos productos cuyo precio sea superior al valor medio de los precios de venta. Para ello, nuestro primer intento sería definir la siguiente medida:
Ventas por encima del promedio = CALCULATE(
[Ventas],
DimProduct[UnitPrice]>AVERAGE(DimProduct[UnitPrice])
)
...medida que, en todo caso, provoca un error pues CALCULATE no admite expresiones complejas como ésta como argumento:
La solución pasa por añadir como argumento no la expresión compleja en cuestión, sino la tabla de ventas una vez la hemos filtrado según ese mismo criterio:
Ventas por encima del promedio = CALCULATE(
[Ventas],
FILTER(
DimProduct,
DimProduct[UnitPrice]>AVERAGE(DimProduct[UnitPrice])
)
)
...lo que nos devuelve el resultado que buscábamos.
- Existencia de registros con cierto valor en un campo
- Registros para los que no hay un campo asociado en una tabla remota
- Uso de variables en expresiones DAX
- Creación de una tabla con las ventas medias por vendedor
- Cálculo de las ventas previas a una fecha dada
- Visualización de los días de ocupación de un recurso
- Cálculo del número de días entre compras
- Emulación de la función TOTALYTD
- Cálculo de las ventas totales del país al que pertenece cada ciudad
- Cálculo de la anterior fecha de compra para cada compra de cada cliente
- Cálculo del número de valores previos a cada fecha