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

Power BI需求:编写DAX代码计算DEF类型TOTMHR的指定累计值

筛选DEF类型并按指定规则累计求和的DAX实现

需求说明

从包含year(对应示例中CoINP_YEAR)、month(对应示例中INP_MONTH)、totmhr、msjob_type(对应示例中MISJOB_TYPE)的数据表中,筛选出msjob_type = "DEF"的记录,按以下规则计算totmhr的累计总和:

  • 当当前月份为4时,仅统计当年4月的totmhr总和
  • 当当前月份为5时,统计当年4月+5月的totmhr总和
  • 当当前月份为6时,统计当年4月+5月+6月的totmhr总和
  • 以此类推,后续月份均从当年4月开始累计到当前月份

DAX代码实现

DEF累计工时 = 
VAR 当前年份 = SELECTEDVALUE('数据表'[year])
VAR 当前月份 = SELECTEDVALUE('数据表'[month])
RETURN
CALCULATE(
    SUM('数据表'[totmhr]),
    FILTER(
        ALL('数据表'),
        '数据表'[year] = 当前年份 &&
        '数据表'[msjob_type] = "DEF" &&
        '数据表'[month] >= 4 &&
        '数据表'[month] <= 当前月份
    )
)

代码逻辑解释

  1. 变量定义:通过SELECTEDVALUE获取当前上下文的年份和月份,确保计算基于当前筛选的年月维度
  2. 筛选与求和:
    • 使用CALCULATE修改筛选上下文,对符合条件的记录求和
    • ALL('数据表')清除原有筛选,确保能跨月份累计
    • 筛选条件:匹配当前年份、msjob_type为DEF、月份在4到当前月份之间

示例数据验证

以2023年的数据为例:

  • 4月DEF类型的totmhr总和:160+50+80+0+160+160 = 610
  • 5月累计总和:610 + 160×4 = 1250
  • 6月累计总和:1250 + 0+40+0+160+160+160+160 = 1930

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:53:29