PowerBi中FILTER怎么使用?

281 阅读1分钟

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()