如何不新增辅助列实现多列OR条件范围求和 适配Excel/Google Sheets等工具
无需辅助列实现多条件OR逻辑模糊求和的公式方案
核心思路
跳过辅助列拼接步骤,直接在公式内完成多列的模糊匹配判断,通过布尔值加法实现OR逻辑(任意一列匹配成功即符合条件),最终对符合条件的A列数值求和,适配Google Sheets、Excel、LibreOffice所有主流表格工具。
全平台通用兼容公式
直接在E1单元格输入以下公式,下拉即可批量计算:
=SUMPRODUCT(A:A * (ISNUMBER(SEARCH(D1, B:B)) + ISNUMBER(SEARCH(D1, C:C)) > 0))
公式逻辑说明
SEARCH(D1, 目标列):实现不区分大小写的模糊匹配,匹配成功返回字符位置,失败返回错误值ISNUMBER():将匹配结果转为布尔值,匹配成功为TRUE(等价数值1),失败为FALSE(等价数值0)- 两个布尔值相加结果大于0,即代表至少有一列匹配成功,实现OR逻辑
- 最后与A列对应值相乘后累加,得到最终求和结果
按你的场景测试:
- E1(D1=apple)计算结果为
1+20=21,符合要求 - E2(D1=banana)计算结果为
1+1=2,符合要求
各平台专属优化写法(计算效率更高,适合大数据量场景)
- Google Sheets/新版Excel(支持LAMBDA、FILTER函数):
=SUM(FILTER(A:A, ISNUMBER(SEARCH(D1, B:B)) + ISNUMBER(SEARCH(D1, C:C)) > 0))
- LibreOffice Calc:
=SUMIF(ARRAYFORMULA(B:B&C:C), "*"&D1&"*", A:A)
注意事项
- 如需区分大小写匹配,将公式中的
SEARCH替换为FIND即可 - 大数据量场景建议缩小列引用范围(比如把
A:A改为A$1:A$1000),避免全列扫描拖慢计算速度
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

