PowerBi中ALL怎么使用?

21 阅读2分钟

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 的总值
同比、环比分析通常配合 DATEADDSAMEPERIODLASTYEAR 使用
动态排名(RANK)排名中对比整体数据时也会使用 ALL() 移除上下文干扰

🎓 六、ALL 相关的扩展函数

函数用法
ALLSELECTED()保留用户选择的上下文,但忽略可视化中的部分筛选器
ALLEXCEPT()保留某些列的筛选,其它都取消
REMOVEFILTERS()类似于 ALL(),但语义更清晰,适用于取消筛选器

✨ 总结一句话:

ALL = 清空筛选上下文,拿到“整体”的数据视角,是做对比分析的必备工具。