Microsoft Lists如何实现Status列选值时填充Start Date当日日期且后续不更新
MS Lists 固定Start Date填充值不随Status变更的实现方案
你当前使用的IF语句属于动态计算逻辑,每次Status变动、列表刷新都会重新计算生成值,因此无法保留首次填充的日期,该需求可通过以下两种方案实现:
方案1:Power Automate 自动化流(最稳定,推荐)
- 进入Power Automate后台,创建一个当项被创建或修改时的自动化云流,绑定你的MS Lists对应列表作为触发数据源
- 新增「条件」控制步骤,同时满足两个判断规则:
Status列值等于你设定的触发填充的状态(如In Progress)Start Date列值 为空
- 条件为「是」的分支中,添加「更新项」操作,将当前项的
Start Date字段赋值为utcNow(),可根据你的时区做对应偏移调整 - 条件为「否」的分支无需添加任何操作,即可保证已填充的
Start Date不会被后续Status变更覆盖 - 若要完全避免用户手动修改
Start Date的值,可在列表设置中调整列权限,仅允许流的服务账号修改该列,普通用户仅可读
方案2:表单规则配置(无需额外工具)
- 首先将
Start Date列从原计算列类型改为普通日期列,删除原有的IF计算逻辑 - 打开列表的新建/编辑表单,进入「编辑列」-「配置规则」界面
- 新增规则:规则触发条件设置为「Status 等于 你指定的触发状态(如In Progress)」且「Start Date 为空」,规则执行动作设置为「将Start Date设为当前日期」
注意:该方案无法阻止用户手动修改已填充的
Start Date值,仅能实现自动填充时不覆盖已有值的需求
额外提示:不要使用计算列实现该需求,计算列的逻辑会在每次项更新、列表刷新时重新执行,天生不支持存储固定的历史值
内容的提问来源于stack exchange,提问作者Cryptical1
相关产品推荐
相关产品推荐

