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

如何在SharePoint中记录列表项创建至首次状态变更的时间差?

解决方案:捕获SharePoint状态列首次变更时间并计算时间差

步骤1:给SharePoint列表添加辅助列

在目标列表里新增两个列:

  • 首次状态变更时间:类型选「日期和时间」,无需默认值
  • 状态已首次变更:类型选「是/否」,默认值设为「否」

步骤2:创建Power Automate流记录首次状态变更

  1. 新建「自动云流」,触发条件选择「当项目被创建或修改时」(SharePoint连接器动作)
  2. 配置站点地址和列表名称,打开高级选项设置「触发条件」:
    @and(equals(triggerBody()?['状态已首次变更'], false), not(equals(triggerBody()?['状态'], triggerBody()?['状态']?['PreviousValue'])))
    
    这个条件确保仅当「状态已首次变更」为否,且状态列新值与旧值不同时才触发流。
  3. 添加「更新项目」动作,选择同一站点和列表,项目ID用触发器返回的「ID」
  4. 在「更新项目」中,将「首次状态变更时间」设为触发器里的「Modified」(本次状态变更时间),「状态已首次变更」设为「是」

步骤3:计算时间差

在SharePoint列表新增计算列自动计算时长:

  • 列名示例:「创建到首次状态变更时长」
  • 类型选「计算(计算结果为单行文本)」
  • 公式按需选择:
    • 计算天数:=IF(ISBLANK([首次状态变更时间]),"未变更",DATEDIF([创建时间],[首次状态变更时间],"d") & " 天")
    • 计算小时数:=IF(ISBLANK([首次状态变更时间]),"未变更",DATEDIF([创建时间],[首次状态变更时间],"h") & " 小时")
    • 计算分钟数:=IF(ISBLANK([首次状态变更时间]),"未变更",DATEDIF([创建时间],[首次状态变更时间],"m") & " 分钟")

额外注意事项

  • 若列表有初始状态(比如创建时状态为「新建」),可在流中添加判断:仅当当前状态不是初始状态时,才执行更新操作,避免误判创建时的状态为变更
  • 流创建后,已存在但未变更过状态的项,后续第一次修改状态时也会被捕获记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:12:34