如何用Power Automate流匹配旧文件更新SharePoint新文件Owner多选列并去重
解决Power Automate中合并多文件多选列数组并去重的问题
针对你遇到的合并多个旧文件Owner数组并去重的问题,直接按以下步骤操作就能搞定:
步骤1:初始化空数组变量
在遍历旧文件的循环之前,新增一个初始化变量动作:
- 变量名:
AllOwners - 类型:数组
- 初始值:
[]
步骤2:循环追加所有Owner元素
在遍历匹配到的旧文件的「应用到每一个」循环里,添加追加到数组变量动作:
- 目标变量:选择刚才创建的
AllOwners - 值:直接选择当前旧文件的
Owner列(不用额外处理,Power Automate会自动把该数组的所有元素追加到AllOwners中,最终得到一个包含所有重复值的一维数组)
步骤3:数组去重
循环结束后,通过两个动作完成去重:
- 添加选择动作:
- 输入:选择
AllOwners变量 - 映射:只保留一个字段(比如命名为
OwnerName),值填@item()
- 输入:选择
- 添加唯一值动作:
- 输入:选择「选择」动作的输出结果
这一步会自动剔除重复元素,得到你需要的去重后的Owner数组。
- 输入:选择「选择」动作的输出结果
步骤4:更新新文件的Owner列
最后添加更新文件属性动作:
- 目标文件:选择触发流的新创建文件
Owner列:选择「唯一值」动作的输出结果即可
额外说明
如果你的Owner列是SharePoint的多选人员/组类型(而非文本),只需调整「选择」动作的映射值:
- 若按用户名去重,值填
@item()?['DisplayName'] - 若按用户唯一标识去重,值填
@item()?['Claims']
去重后,再通过「选择」动作把字符串转回人员对象格式,就能正常更新人员列了。
内容的提问来源于stack exchange,提问作者Burner
相关产品推荐
相关产品推荐

