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

如何创建考虑历史状态的工作项状态计数度量值?

统计指定月份特定状态工作项数量(含无记录时取最近状态)

核心思路

对每个工作项,找到不晚于选定月份的最近一条状态记录,判断该记录的状态是否为目标值(如4),最终统计符合条件的唯一工作项总数。

DAX度量值代码

状态为4的工作项数量 = 
VAR SelectedMonth = MAX('日历表'[日期]) -- 取切片器选定的月份(建议日历表日期用月末值,或用EOMONTH(MAX('日历表'[日期]),0)处理)
RETURN
CALCULATE(
    DISTINCTCOUNT('工作项表'[Work Item ID]),
    FILTER(
        ALL('工作项表'),
        '工作项表'[Date Recalc] <= SelectedMonth &&
        '工作项表'[Date Recalc] = CALCULATE(
            MAX('工作项表'[Date Recalc]),
            ALLEXCEPT('工作项表', '工作项表'[Work Item ID]),
            '工作项表'[Date Recalc] <= SelectedMonth
        ) &&
        '工作项表'[状态] = 4
    )
)

代码说明

  • SelectedMonth:捕获切片器选定的目标月份,确保日历表日期字段为标准日期格式(若用月初日期,逻辑同样适用)
  • 外层CALCULATE+DISTINCTCOUNT:统计符合条件的唯一工作项ID数量
  • 内层FILTER逻辑:
    1. 筛选出所有日期不晚于选定月份的工作项记录
    2. 对每个工作项,锁定它在选定月份之前的最后一条状态记录(即最大的Date Recalc值)
    3. 仅保留该记录状态为4的工作项

示例验证

当选定2023-01时:

  • Work Item 12:2023-01有状态4的记录,直接符合条件
  • Work Item 10:2023-01无记录,系统自动匹配最近的2022-12状态4记录,符合条件
    最终统计结果为2,与预期一致。

注意事项

  • 确保工作项表包含Work Item ID、Date Recalc(日期型月份字段)、状态三个核心字段,若Date Recalc是文本格式(如"2023-01"),需用DATEVALUE('工作项表'[Date Recalc] & "-01")转换为日期型后再比较
  • 日历表需包含连续日期字段,用于切片器选择月份

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:43:12