Excel查找含特定字符串项 跨工作表SUMIFS求和(Office2013)
Office 2013 无VBA实现方案
不需要编写VBA,用原生函数组合即可实现动态求和,自动适配Sheet1部门列表的变动。
具体公式
选中要存放计算结果的单元格,直接输入以下公式按回车即可生效:
=SUMPRODUCT(SUMIF(Sheet2!$A:$A,IF(ISNUMBER(SEARCH("SE",Sheet1!$A$1:$D$1)),Sheet1!$A$1:$D$1),Sheet2!$B:$B))
按你给出的示例数据计算,返回结果正好是预期的13。
公式逻辑拆解
ISNUMBER(SEARCH("SE",Sheet1!$A$1:$D$1)):逐格检查Sheet1的A1:D1区域内的部门名称是否包含"SE"字符,包含返回TRUE,不包含返回FALSEIF(...,Sheet1!$A$1:$D$1):提取上一步判断为带"SE"的部门名称,不带SE的位置返回FALSE,后续SUMIF计算时会自动忽略FALSE值SUMIF(Sheet2!$A:$A,...,Sheet2!$B:$B):分别匹配Sheet2中每个带SE部门对应的销售额,计算单个部门的销售额合计- 最外层
SUMPRODUCT将所有带SE部门的销售额合计加总,得到最终结果
适配调整说明
- 公式对Sheet2的部门、销售额列使用了整列引用,后续增删Sheet2的业务数据不需要手动修改引用范围,公式会自动计算
- Sheet1的部门区域
$A$1:$D$1加了绝对引用锁定,修改该区域内的部门名称、调整部门列表,公式会自动重新识别带SE的部门,不需要手动重设筛选条件 - 如果需要严格匹配大小写的"SE",把公式里的
SEARCH替换为FIND即可,默认写法不区分大小写 - 如果后续Sheet1存放部门的横向区域扩容(比如从4个部门增加到更多),只需要把公式里的
Sheet1!$A$1:$D$1修改为实际的部门存放区域即可 - 该公式在Office 2013环境下直接输入按回车即可生效,不需要按数组三键(Ctrl+Shift+Enter)
内容的提问来源于stack exchange,提问作者Trae
相关产品推荐
相关产品推荐

