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

如何用Power Automate查找SharePoint列重复值并更新最新重复项

处理SharePoint列表重复值的Power Automate问题

我有一个SharePoint列表,其中某列存在重复数值(包括同时创建的重复项),需要通过Power Automate查询该列所有重复值,并更新最新创建的重复项的值,目标是获取最新重复项的ID并修改其值。

SharePoint列表重复项示例

已尝试的操作步骤

  • 步骤1:执行Get items操作获取列表数据
  • 步骤2:使用Select操作尝试排序数据:
    sort(body('Select'),'sortby'))
    
    Select操作配置
  • 步骤3:使用Compose操作生成索引范围:
    range(0,length(outputs('Compose_2')))
    
    Compose操作配置
  • 步骤4:使用Select 2操作标记重复项:
    addProperty(
      outputs('Compose_2')?[item()],
      'IsDuplicate',
      if(
        equals(
        outputs('Compose_2')?[item()]?['concat'],
        outputs('Compose_2')?[sub(item(),1)]?['concat']),
        'T','F'
      )
    )
    
    Select 2操作配置

当前问题

上述操作中,即使是非重复项,IsDuplicate字段也会返回'T',无法正确标记重复项。


问题根源与解决方案

核心问题

  1. 索引越界无判断:当索引为0时,sub(item(),1)会得到-1,此时outputs('Compose_2')?[-1]?['concat']返回null,若当前项的concat值为null或逻辑异常,会误判为重复。
  2. 排序逻辑不完整:未按重复列分组后再按创建时间排序,无法保证相同值的项集中且最新项处于可识别位置。

修正方案(推荐)

步骤1:提取关键字段

执行Get items后,添加Select操作提取所需字段(需包含重复列、ID、Created):

{
  "目标列": item()?['目标列内部名称'],
  "ID": item()?['ID'],
  "Created": item()?['Created']
}

步骤2:按重复列分组

添加Compose操作,用groupBy函数分组:

groupBy(body('Select'), '目标列', 'Items')

步骤3:筛选重复分组

添加Filter array操作,筛选出包含多个项的分组:

length(item()?['Items']) > 1

步骤4:处理重复组并更新

添加Apply to each遍历筛选后的分组:

  1. 对组内项按Created降序排序(确保最新项在首位):
    sort(item()?['Items'], 'Created', descending)
    
  2. 筛选出除最新项外的重复项(或直接取最新项ID,根据需求调整):
    not(equals(indexOf(outputs('排序后的组项'), item()), 0))
    
  3. 执行Update item操作,用筛选出的项ID修改目标列值。

原有逻辑快速修复

若想保留原有思路,需在Select 2中添加索引边界判断:

addProperty(
  outputs('Compose_2')?[item()],
  'IsDuplicate',
  if(
    and(
      greater(item(), 0), // 排除第一个项(索引0)
      equals(
        outputs('Compose_2')?[item()]?['concat'],
        outputs('Compose_2')?[sub(item(),1)]?['concat']
      )
    ),
    'T',
    'F'
  )
)

同时确保Compose_2中的数据先按重复列排序,再按创建时间降序排序,保证相同值的项集中且最新项在每组最前。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 01:20:56