FILTER() 是 Power BI / DAX 中非常重要的函数,用来对表进行筛选,并返回一个筛选后的新表。它通常和 CALCULATE()、SUMX() 等函数一起使用,是写复杂逻辑时的利器!⚔️
✅ 一句话总结:
FILTER()= 返回一个“满足条件”的新表(不做计算,只返回筛选过的行)
🧠 基本语法:
FILTER(<表名>, <筛选条件>)
<表名>:要筛选的原始表<筛选条件>:返回 TRUE/FALSE 的判断语句
🎯 举个例子:筛选金额大于1000的订单
FILTER(Sales, Sales[Amount] > 1000)
这个表达式会返回 Sales 表中,Amount > 1000 的所有行。
🔧 常见用法:配合 CALCULATE() 使用
大单销售额 =
CALCULATE(
SUM(Sales[Amount]),
FILTER(Sales, Sales[Amount] > 1000)
)
👉 意思是:只计算大于 1000 元的订单金额总和
🎯 示例 2:计算“某类产品”利润
电子类利润 =
CALCULATE(
SUMX(Sales, Sales[Quantity] * (RELATED(Product[Price]) - RELATED(Product[Cost]))),
FILTER(Product, Product[Category] = "电子产品")
)
📌 FILTER() 的特点
| 特性 | 说明 |
|---|---|
| 返回的是表 | 和 SUM() 不同,返回不是值,而是表 |
| 可以多条件筛选 | 支持 AND / OR 多条件 |
常用于 CALCULATE() | CALCULATE 接收的是“表形式的筛选器” |
🔥 多条件筛选写法:
FILTER(Sales, Sales[Amount] > 1000 && Sales[Region] = "华南")
或者用 AND():
FILTER(Sales, AND(Sales[Amount] > 1000, Sales[Region] = "华南"))
🤯 FILTER vs CALCULATE 关系?
FILTER:筛选表的工具CALCULATE:让度量公式在特定“筛选上下文”中运行
组合起来才强大:
CALCULATE(SUM(Sales[Amount]), FILTER(...))
✅ 小结口诀:
想控制“在哪些数据上”做计算?用
FILTER()!
想“在这个筛选后再做计算”?用CALCULATE()+FILTER()!