不只是求和,它还能玩出这么多花样
在简道云的函数库中,SUMPRODUCT 是一个功能强大但常被忽视的函数。很多人看到它的名字,以为它只能做”乘积求和”,但在实际应用中,它的能力远不止于此。
今天,我们就来全面科普一下 SUMPRODUCT 函数,并通过一个真实的计算案例,帮你彻底掌握它的用法和注意事项。
一、SUMPRODUCT 到底是什么?
SUMPRODUCT 的官方定义是:将数组或区域中的对应元素相乘,然后返回这些乘积之和。
但很多人不知道的是,当它只接收一个数组参数时,它实际上就是一个”数组求和器”——它会将数组中的所有数值元素相加。
基本语法
SUMPRODUCT(数组1, 数组2, ...)
- 一个参数时:对数组内所有数值求和,非数值元素会被忽略或转换为数值。
- 多个参数时:各数组对应位置相乘,再求和。
简单示例
SUMPRODUCT([10, 20, 30]) → 结果是 60
SUMPRODUCT([2, 3], [4, 5]) → 2×4 + 3×5 = 23
二、SUMPRODUCT 的两种核心用法
用法一:多参数——真正的”乘积求和”
将两个或多个数组中对应位置的元素相乘,再求和。例如:苹果5元×10个 + 香蕉3元×20个 + 橙子4元×15个 = 170元。
用法二:单参数——数组求和器
关键特性:自动提取文本开头的连续数字参与求和。
- “100” → 100
- “80*A002…” → 80
- “*A002380” → 0
- “abc” → 0
三、实战案例:一个公式算出 160
辅助字段 F-二级产品去重辅助集合:`’*A002380*A002280*A002180*A000480*A000180*A000580*A002480*A002180*A002280*A000480*A000180*A000680`
公式:`SUMPRODUCT(SPLIT(F-二级产品去重辅助集合, CONCATENATE(“*”, 二级产品需求明细.产品编码)))`
SPLIT 精确匹配,只有 *A002280 处成功拆分。SUMPRODUCT 求和:0 + 80 + 80 = 160。
四、使用建议
- 留意隐式转换:自动提取的数字有时是陷阱
- SPLIT 是精确匹配:不是模糊包含
- 多参数时确保数组长度一致:否则返回错误
- 可替代 SUM 数组公式:更简洁
五、总结
多参数:对应元素相乘后求和 → 计算总价
单参数:提取文本开头数字求和 → 数据汇总
杰夫简道云个人搭建服务,微信:jerfo0