如何在SharePoint中记录列表项创建至首次状态变更的时间差?
步骤1:给SharePoint列表添加辅助列
在目标列表里新增两个列:
- 首次状态变更时间:类型选「日期和时间」,无需默认值
- 状态已首次变更:类型选「是/否」,默认值设为「否」
步骤2:创建Power Automate流记录首次状态变更
- 新建「自动云流」,触发条件选择「当项目被创建或修改时」(SharePoint连接器动作)
- 配置站点地址和列表名称,打开高级选项设置「触发条件」:
这个条件确保仅当「状态已首次变更」为否,且状态列新值与旧值不同时才触发流。@and(equals(triggerBody()?['状态已首次变更'], false), not(equals(triggerBody()?['状态'], triggerBody()?['状态']?['PreviousValue']))) - 添加「更新项目」动作,选择同一站点和列表,项目ID用触发器返回的「ID」
- 在「更新项目」中,将「首次状态变更时间」设为触发器里的「Modified」(本次状态变更时间),「状态已首次变更」设为「是」
步骤3:计算时间差
在SharePoint列表新增计算列自动计算时长:
- 列名示例:「创建到首次状态变更时长」
- 类型选「计算(计算结果为单行文本)」
- 公式按需选择:
- 计算天数:
=IF(ISBLANK([首次状态变更时间]),"未变更",DATEDIF([创建时间],[首次状态变更时间],"d") & " 天") - 计算小时数:
=IF(ISBLANK([首次状态变更时间]),"未变更",DATEDIF([创建时间],[首次状态变更时间],"h") & " 小时") - 计算分钟数:
=IF(ISBLANK([首次状态变更时间]),"未变更",DATEDIF([创建时间],[首次状态变更时间],"m") & " 分钟")
- 计算天数:
额外注意事项
- 若列表有初始状态(比如创建时状态为「新建」),可在流中添加判断:仅当当前状态不是初始状态时,才执行更新操作,避免误判创建时的状态为变更
- 流创建后,已存在但未变更过状态的项,后续第一次修改状态时也会被捕获记录
内容的提问来源于stack exchange,提问作者helpmepls
相关产品推荐
相关产品推荐

