如何用Power Automate实现SharePoint列表列值相乘并存储至另一列表?
实现步骤
1. 设置流程触发器
- 在Power Automate中新建自动化云流,选择触发器:当SharePoint项创建时
- 配置触发器参数:选择第一个SharePoint列表所在的站点,以及列表名称
2. 编写乘积计算表达式
可以新增一个撰写动作(方便调试查看计算结果),在“输入”框中使用Power Automate内置的乘法函数
mul(),语法如下:mul(triggerBody()?['列1的内部名称'], triggerBody()?['列2的内部名称'])注意:必须使用SharePoint列的内部名称(不是显示名称)。查看内部名称的方法:进入列表设置→点击对应列→浏览器地址栏最后一段字符串即为内部名称(比如显示名称“数值A”,内部名称可能是
_x0065_数值A或直接数值A)如果需要处理空值(比如某列未填写),可以用
if()函数做兜底判断,示例:mul(if(empty(triggerBody()?['列1的内部名称']), 0, triggerBody()?['列1的内部名称']), if(empty(triggerBody()?['列2的内部名称']), 0, triggerBody()?['列2的内部名称']))
3. 将计算结果写入第二个列表
- 新增创建SharePoint项动作,选择第二个列表所在的站点和列表名称
- 在第二个列表的结果列中,选择之前“撰写”动作的输出(或者直接粘贴上述乘法表达式)
- 如果需要同步第一个列表的其他字段(如提交人、提交时间),直接从触发器的动态内容中选择对应字段填入即可
常见问题排查
- 报错“无法将类型转换为数字”:检查第一个列表的两列是否为整数/数字类型,如果是单行文本列,需要先用
int()函数转换,示例:mul(int(triggerBody()?['列1内部名称']), int(triggerBody()?['列2内部名称'])) - 找不到目标列:确认使用的是列的内部名称,而非显示名称
- 计算结果为0:检查是否有列值为空,或者表达式中的列名称拼写错误
内容的提问来源于stack exchange,提问作者Zinan
相关产品推荐
相关产品推荐

