ALL 函数是 Power BI 中 DAX 的核心函数之一,理解它可以帮助你写出更强大的度量值(Measures),特别是在做环比、同比、市场份额等分析时非常关键。
✅ 一、ALL 是什么?
ALL 函数的作用是:
移除当前筛选上下文,对指定表或列进行“全表”或“全部值”计算。
它就像在 Excel 里取消了筛选,重新看完整的数据集。
📘 二、语法
ALL(<table_or_column>)
参数 | 说明 |
---|---|
table_or_column | 要移除筛选的表或字段名(可以是整个表,也可以是某列) |
🧪 三、常见用法示例
🎯 示例 1:计算所有数据的总销售额(不管筛选器)
Total Sales All = CALCULATE(SUM(Sales[Amount]), ALL(Sales))
👉 不管你筛选了地区、产品还是时间,这个度量值永远显示所有销售总额。
🎯 示例 2:计算当前产品类别占总销售额的百分比
% of Total Sales =
DIVIDE(
SUM(Sales[Amount]),
CALCULATE(SUM(Sales[Amount]), ALL(Sales[ProductCategory]))
)
👉 分母使用
ALL(Sales[ProductCategory])
表示不考虑类别筛选,始终计算“全类别”的总销售额。
🎯 示例 3:计算全公司平均销售额(不考虑任何筛选)
Company Avg Sales =
CALCULATE(
AVERAGE(Sales[Amount]),
ALL(Sales)
)
⚠️ 四、ALL 的注意事项
用法 | 注意事项 |
---|---|
用于整个表:ALL(Table) | 取消整个表的所有筛选上下文 |
用于某列:ALL(Table[Column]) | 只移除该列的筛选,保留其他筛选上下文 |
常与 CALCULATE() 搭配使用 | 因为 ALL() 本身不会计算,需配合使用 |
✅ 五、ALL 的核心用途总结
应用场景 | 原理 |
---|---|
计算总值(不管筛选) | ALL 取消筛选器 |
计算百分比占比 | 当前值 ÷ ALL 的总值 |
同比、环比分析 | 通常配合 DATEADD 、SAMEPERIODLASTYEAR 使用 |
动态排名(RANK) | 排名中对比整体数据时也会使用 ALL() 移除上下文干扰 |
🎓 六、ALL 相关的扩展函数
函数 | 用法 |
---|---|
ALLSELECTED() | 保留用户选择的上下文,但忽略可视化中的部分筛选器 |
ALLEXCEPT() | 保留某些列的筛选,其它都取消 |
REMOVEFILTERS() | 类似于 ALL() ,但语义更清晰,适用于取消筛选器 |
✨ 总结一句话:
ALL = 清空筛选上下文,拿到“整体”的数据视角,是做对比分析的必备工具。