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

求DAX代码:按ID查找首次匹配指定状态集的记录

标记工作项首次达到指定状态集的DAX计算列

核心需求实现

针对Azure DevOps工作项状态变更数据表,以下DAX代码可创建计算列,精准标记每个工作项首次进入指定状态集的记录,为后续SLA合规性统计提供依据:

首次达标标记 = 
VAR 指定状态集 = {"已完成", "已关闭"} // 替换为你的目标状态集合
VAR 当前工作项ID = '工作项状态变更表'[工作项ID]
VAR 当前变更日期 = '工作项状态变更表'[状态变更日期]
// 获取当前工作项首次进入指定状态集的最早日期
VAR 首次达标日期 = 
    CALCULATE(
        MIN('工作项状态变更表'[状态变更日期]),
        FILTER(
            ALL('工作项状态变更表'),
            '工作项状态变更表'[工作项ID] = 当前工作项ID &&
            '工作项状态变更表'[状态] IN 指定状态集
        )
    )
// 判断当前记录是否为首次达标记录
RETURN
    IF(
        当前变更日期 = 首次达标日期 && '工作项状态变更表'[状态] IN 指定状态集,
        "是",
        "否"
    )

代码细节说明

  • 指定状态集:直接替换为你实际需要监控的状态列表,比如{"已解决", "已验收"}
  • 首次达标日期:通过CALCULATE+MIN组合逻辑,筛选当前工作项所有进入指定状态的记录,提取最早的状态变更日期
  • 最终判断:仅当当前记录的状态属于指定集合,且变更日期与首次达标日期完全匹配时,标记为"是",其余记录标记为"否"

可选:直接集成SLA合规判断

如果需要在同一计算列中完成SLA合规性判断(是否超过7天),可使用以下扩展代码:

SLA合规标记 = 
VAR 指定状态集 = {"已完成", "已关闭"}
VAR 当前工作项ID = '工作项状态变更表'[工作项ID]
VAR 当前变更日期 = '工作项状态变更表'[状态变更日期]
VAR 首次达标日期 = 
    CALCULATE(
        MIN('工作项状态变更表'[状态变更日期]),
        FILTER(
            ALL('工作项状态变更表'),
            '工作项状态变更表'[工作项ID] = 当前工作项ID &&
            '工作项状态变更表'[状态] IN 指定状态集
        )
    )
VAR 创建日期 = '工作项状态变更表'[工作项创建日期]
VAR 天数差 = DATEDIFF(创建日期, 首次达标日期, DAY)
RETURN
    IF(
        当前变更日期 = 首次达标日期 && '工作项状态变更表'[状态] IN 指定状态集,
        IF(天数差 <=7, "合规", "不合规"),
        BLANK()
    )

内容的提问来源于stack exchange,提问作者Chris D King

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:43:17