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

无Pro许可证下用DAX实现状态值跨记录重复传递需求

实现DAX状态值传递的解决方案

需求回顾

  • 无状态值时默认Status为Not Closed
  • 状态值持续传递到后续记录,直到下一次状态变更
  • 支持多项目同日期/时间的场景
  • 无Pro许可证限制

解决方案思路

在Data表中创建计算列,筛选当前项目下时间不晚于当前记录时间的所有评论记录,取最新一条的状态;若无匹配记录则返回默认值。

DAX计算列公式

Carried Status = 
VAR CurrentProject = Data[Project]
VAR CurrentDTETm = Data[DTETm]
-- 筛选当前项目下时间早于等于当前记录时间的评论
VAR RelevantComments = 
    FILTER(
        'YEC Comments',
        'YEC Comments'[Project] = CurrentProject && 'YEC Comments'[DteTm] <= CurrentDTETm
    )
-- 获取最新的一条评论(按时间降序取第一条)
VAR LatestComment = 
    TOPN(
        1,
        RelevantComments,
        'YEC Comments'[DteTm], DESC
    )
-- 处理空状态,返回默认值
VAR LatestStatus = 
    IF(
        ISBLANK(LatestComment[Status]),
        "Not Closed",
        LatestComment[Status]
    )
RETURN LatestStatus

关键说明

  1. 数据类型匹配:确保YEC Comments表的DteTm字段与Data表的DTETm字段均为datetime类型,否则时间比较会出错。
  2. 多状态同时间处理:若同一项目同一时间存在多条评论记录,TOPN会返回按时间降序的第一条记录;若需优先特定状态,可在TOPN中添加额外排序条件(如评论创建时间)。
  3. 免费版兼容性:使用的FILTER、TOPN、IF、ISBLANK均为基础DAX函数,无需Pro许可证即可使用。

效果验证(以示例数据为例)

  • Proj 1:9/27/2023 9:00无匹配评论,返回Not Closed;9/28/2023 9:30及之后所有记录均继承Closed状态。
  • Proj 2:9/27/2023 9:00返回Not Closed;9/28/2023 9:30至10/1/2023 0:15保持Not Closed;10/1/2023 0:45及之后继承Closed状态。
  • Proj 3:9/30/2023 22:00匹配到最新的Closed状态;9/30/2023 23:00匹配到Not Closed;10/1/2023 0:45及之后恢复Closed状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:44:49