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

Power BI技术咨询:计算金额Running Total并乘以当月数值

在Power BI中实现累计值×当月数值的度量值方案

当然可以用度量值实现这个需求!我来一步步给你拆解怎么做,完全适配你想要的「先累计金额,再和当月数值相乘」的逻辑。

前提准备

首先得确保你的数据模型里有一个日期表(Date Table),并且已经和你的事实表(比如存着金额、当月数值的业务表)建立了关系。日期表需要包含完整的日期序列,以及「年份」「月份」「年月」(比如"2024-03")这类方便分组展示的字段,最好在建模选项卡把它标记为「日期表」,这样时间智能函数才能正常工作。

步骤1:创建累计金额的度量值

先写一个计算截至当前月份累计金额的度量值,分两种场景供你选择:

场景1:按自然年累计(仅统计当年内的累计)

累计金额_当年 = 
CALCULATE(
    SUM('业务表'[金额]),
    DATESYTD('日期表'[日期])
)

场景2:跨年度累计(从数据起始日期到当前月份的全周期累计)

累计金额_全周期 = 
VAR 当前月份末 = EOMONTH(MAX('日期表'[日期]), 0)
VAR 数据起始日 = MIN('业务表'[日期])
RETURN
CALCULATE(
    SUM('业务表'[金额]),
    DATESBETWEEN('日期表'[日期], 数据起始日, 当前月份末)
)

步骤2:创建累计值×当月数值的度量值

接下来我们把累计金额和当月的数值相乘,这里要注意:如果你的「当月数值」是每个月唯一的单值(比如每月一个系数),就用MAX或SELECTEDVALUE;如果是多条记录的汇总值,就用SUM,根据你的数据结构调整:

累计×当月数值 = 
VAR 累计值 = [累计金额_当年] -- 或者替换成[累计金额_全周期],按需选择
VAR 当月数值 = 
    CALCULATE(
        SUM('业务表'[当月数值]), -- 单值场景换成MAX('业务表'[当月数值])即可
        DATESINPERIOD('日期表'[日期], MAX('日期表'[日期]), -1, MONTH)
    )
RETURN
累计值 * 当月数值

验证与展示

把日期表的「年月」字段拖到矩阵、折线图这类视觉对象的轴上,再添加累计×当月数值度量值,就能看到每个月份对应的计算结果了。如果加了筛选器(比如筛选特定产品、区域),度量值会自动响应筛选范围更新计算。

小提醒

  • 要是你的「当月数值」存在空值,记得在度量值里加个判断(比如IF(ISBLANK(当月数值), 0, 累计值 * 当月数值)),避免出现错误结果。
  • 测试时可以先单独展示累计金额和当月数值,确认两者计算正确后再看乘积结果,排查问题更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:45:23