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

如何让带通配符数组条件的SUMIF仅对多条件单元格求和一次?

解决多条件通配符求和时重复计算的问题

你的核心问题是:当单元格同时匹配多个通配符条件时,原公式会对该单元格的数值重复累加,需要改为只要符合任一条件就仅计算一次。

原公式问题分析

原公式 =SUMPRODUCT(SUMIF(A92:A99,{"*apple*","*orange*","*banana*"},B92:B99)) 的逻辑是:分别计算包含"apple"、"orange"、"banana"的单元格数值总和,再将三个结果相加。如果某个单元格同时包含多个关键词(比如"apple orange banana"),会被每个条件分别统计一次,导致重复求和。

解决方案

以下是两种适配不同Excel版本的可行公式:

方法1:兼容所有Excel版本

=SUMPRODUCT(--(MMULT(--ISNUMBER(SEARCH({"apple","orange","banana"},A92:A99)),ROW($1:$3)^0)>0),B92:B99)

公式拆解:

  • SEARCH({"apple","orange","banana"},A92:A99):在每个产品名称单元格中查找三个关键词,返回匹配位置或错误值
  • ISNUMBER(...):将匹配结果转为布尔值(匹配为TRUE,不匹配为FALSE)
  • --(...):把布尔值转为1/0的数值数组
  • MMULT(...,ROW($1:$3)^0):对每行的三个匹配结果求和,得到每行是否至少匹配一个关键词(结果>0表示匹配)
  • --(...)>0:将求和结果转为1(匹配)或0(不匹配)的判断数组,最后与B列数值相乘求和,确保每个符合条件的单元格仅计算一次

方法2:适用于Excel 365/2021(支持动态数组)

=SUM(FILTER(B92:B99,MMULT(--ISNUMBER(SEARCH({"apple","orange","banana"},A92:A99)),ROW($1:$3)^0)>0))

利用FILTER函数直接筛选出符合任一条件的B列数值,再求和,逻辑更直观。

内容的提问来源于stack exchange,提问作者Araújo Filho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:43:18