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

相关推荐
瓶子xf12 天前
陪跑教学大纲:PowerBI & QuickBI & FineBI & 数据运营& 面试 & 简历修改等
powerbi·finebi·副业·quickbi
咋吃都不胖lyh15 天前
MySQL 与Power BI 的作用,以及在数据分析中扮演的角色
mysql·数据分析·powerbi
瓶子xf1 个月前
PowerBI 的双隐藏,我在QuickBI 里也找到了
powerbi·quickbi
瓶子xf1 个月前
PowerBI 没实现的的联动同步下钻,QuickBI 实现了
powerbi·quickbi
瓶子xf2 个月前
第二家公司虽然用PowerBI ,可能更适合用以前的QuickBI
powerbi
瓶子xf2 个月前
第三家公司虽然用了powerbi,但更适合用excel
excel·powerbi
Yuki_Xzz2 个月前
powerbi其他切片器能控制而只有Result切片器不能控制
powerbi
Sharewinfo_BJ2 个月前
66别错过!一杯奶茶钱开启企业微信 Power BI 之旅
数据分析·企业微信·数据可视化·powerbi
奔跑草-2 个月前
【服务器】Apache Superset功能、部署与体验
运维·服务器·apache·powerbi·superset
芦骁骏2 个月前
自动处理考勤表——如何使用Power Query,步步为营,一点点探索自定义函数
数据分析·excel·powerbi