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

Power BI中DAX累计求和无法按期限桶筛选的问题

Power BI中按期限桶(Tenor)拆分计算累计余额的DAX解决方案

问题说明

创建的累计求和度量值无法按表格内的**期限桶(Tenor)**拆分计算,使用FILTER/ALL调整筛选时要么结果无变化,要么报错,需要实现每个Tenor分组下单独计算余额累计。

模拟数据

日期期限桶(Tenor)余额(Balance)
December 202218m0.196072326627487
December 20222y0.149643186475954
December 20223y0.180522608363889
December 20224y0.780540306321475
December 20225y0.156029893270158
January 202218m0.512496934496972
January 20232y0.068123785829084
January 20233y0.349971677118287

正确DAX度量值

将表名替换为你的实际数据表名称:

累计余额 = 
VAR 当前日期 = MAX('表名'[日期])
VAR 当前期限桶 = SELECTEDVALUE('表名'[期限桶(Tenor)])
RETURN
CALCULATE(
    SUM('表名'[余额(Balance)]),
    FILTER(
        ALLSELECTED('表名'),
        '表名'[期限桶(Tenor)] = 当前期限桶 &&
        '表名'[日期] <= 当前日期
    )
)

关键逻辑说明

  1. 保留期限桶上下文:通过当前期限桶 = SELECTEDVALUE('表名'[期限桶(Tenor)])获取当前行的Tenor分组,确保累计计算仅针对同一Tenor的数据。
  2. 控制筛选范围:ALLSELECTED('表名')保留报表中已有的全局/页面级筛选,但清除当前行的日期和Tenor上下文,再通过FILTER限定两个条件:
    • 数据的Tenor与当前行一致
    • 数据的日期小于等于当前行日期
  3. 日期格式兼容:如果你的日期列是文本类型,需将MAX('表名'[日期])替换为MAX(DATEVALUE('表名'[日期])),确保日期比较逻辑正确。

常见问题排查

  • 若之前用ALL('表名'),会清除所有筛选(包括Tenor),导致累计结果为全局总和,无法按Tenor拆分。
  • 若FILTER中未关联当前期限桶,则筛选逻辑未限定Tenor分组,结果自然不会按Tenor拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:15:35