You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI:创建仅按日期分组且忽略其他筛选器的度量值

解决Power BI中忽略额外筛选器、仅按月份+ID聚合Value的问题

我完全懂你的困扰——你想要一个度量值,不管报表里其他筛选器(比如filter1)怎么选,都只按照月份+ID的组合来返回对应的value值,之前尝试SUMX、MAX、SUM这些函数没成功,核心原因是它们默认会继承当前的所有筛选上下文,把那些你想忽略的筛选器也算进去了对吧?

这里给你一个精准的解决方案,用到Power BI里的ALLEXCEPT函数——它的作用就是保留你指定列的筛选逻辑,移除其他所有筛选器的影响,完美匹配你的需求:

基础版度量值(直接用原表日期列)

假设你的表名为数据集,日期列是日期,那度量值可以这么写:

按月份&ID取值 = 
CALCULATE(
    MAX('数据集'[value]), -- 如果每个月份+ID组合只有一个value,用MAX/SUM/MIN都可以
    ALLEXCEPT('数据集', '数据集'[id], '数据集'[日期])
)

优化版(按月份分组,而非具体日期)

如果你的日期列是具体到某天的(比如2020-01-01),建议先把日期转换成月份维度(避免同一天多条记录的干扰),先创建一个计算列:

月份 = DATE(YEAR('数据集'[日期]), MONTH('数据集'[日期]), 1)

然后用这个月份列来写度量值:

按月份&ID取值 = 
CALCULATE(
    MAX('数据集'[value]),
    ALLEXCEPT('数据集', '数据集'[id], '数据集'[月份])
)

为什么这个方案有效?

ALLEXCEPT会告诉DAX:“只保留id和月份这两列的筛选逻辑,其他所有筛选器(比如filter1)都忽略掉”。这样不管你在报表里怎么筛选filter1或者其他列,这个度量值都会严格按照月份+ID的组合来计算对应的value,完全不受额外筛选的干扰。

举个例子:如果你的数据里2020年1月+ID1的value是0.5,哪怕你筛选filter1为某个值,这个度量值在2020年1月+ID1的行里依然会显示0.5,不会因为筛选而改变结果。

内容的提问来源于stack exchange,提问作者eponkratova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 20:23:13