PowerBi中ALLEXCEPT怎么使用?

在 Power BI 的 DAX 中,ALLEXCEPT() 是一个非常重要的函数,用来实现**"在保留部分筛选条件的前提下,移除其他所有筛选器"**,它常用于 同比、占比、累计汇总 等分析中。


✅ 一、ALLEXCEPT 是什么意思?

函数全称:

ALLEXCEPT(table, column1, column2, ...)

作用:

保留你指定的列的筛选器,移除该表中其他列上的所有筛选器。


🔍 二、语法结构

ALLEXCEPT(<table>, <column1>, <column2>, ...)

参数 说明
table 要移除筛选器的表
column1, column2 你想保留筛选上下文的字段

📊 三、为什么需要 ALLEXCEPT?

有时我们想要做分组内的汇总或对比,但又不想被其他字段干扰,这时就可以用 ALLEXCEPT。


🎯 四、使用示例

🔸 示例 1:按"产品类别"保留筛选,计算每个类别的总销售额

Category Sales =

CALCULATE(

SUM(Sales[Amount]),

ALLEXCEPT(Sales, Sales[Category])

)

这个公式的意思是:
忽略所有其他筛选条件,仅按 Category 来分组求和。

非常适合后续计算占比!


🔸 示例 2:计算某城市销售额占该省的比例

城市销售额占比 =

DIVIDE(

SUM(Sales[Amount]),

CALCULATE( SUM(Sales[Amount]), ALLEXCEPT(Sales, Sales[Province]) )

)

意思是:
分母计算该省的总销售额,忽略城市等其他筛选

从而得到该城市在本省中的占比。


🔸 示例 3:分产品类别计算最大销售额(忽略其他筛选)

Max Sales Per Category =

CALCULATE(

MAX(Sales[Amount]),

ALLEXCEPT(Sales, Sales[Category])

)


🧠 五、与其他函数对比

函数名 作用
ALL() 移除所有筛选器
REMOVEFILTERS() 与 ALL 类似,但语义更清晰,不返回值集合
ALLEXCEPT() 保留指定列的筛选器,移除该表中其他所有列的筛选器

📌 六、常见应用场景

场景 使用 ALLEXCEPT 的目的
同一类别下求汇总 保留 Category,忽略其他干扰筛选
省内各城市占比 保留 Province,忽略城市等其他筛选
某字段分组内的最大/平均值 保留分组字段,忽略其他上下文
构建环比/同比时排除时间筛选 搭配 DATEADD 等函数使用

✅ 总结一句话:

ALLEXCEPT 可以让你保留一个或多个字段的分组逻辑,同时移除其他字段的筛选影响,是做"分组内汇总"、"占比计算"的利器。

相关推荐
过期的秋刀鱼!3 天前
用“做饭”理解数据分析流程(Excel三件套实战)
数据挖掘·数据分析·excel·powerbi·数据分析入门
y52364815 天前
PowerBI HtmlContent生成表格
powerbi
瓶子xf1 个月前
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
powerbi
瓶子xf1 个月前
微软PowerBI考试 PL300-在 Power BI 中设计语义模型 【附练习数据】
powerbi
瓶子xf1 个月前
微软PowerBI考试 PL300-使用 Power BI 准备数据以供分析【提供练习数据】
powerbi
瓶子xf1 个月前
PowerBI企业运营分析—列互换式中国式报表分析
powerbi
瓶子xf1 个月前
微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表
powerbi
瓶子xf1 个月前
EXCEL通过DAX Studio获取端口号连接PowerBI
powerbi
瓶子xf1 个月前
PowerBI企业运营分析—全动态盈亏平衡分析
powerbi
过期的秋刀鱼!1 个月前
04powerbi-度量值-筛选引擎CALCULATE()
powerbi