Excel多条件SumIf需求:支持通配符组条件及外部单元格引用
Excel多条件分组求和实现方案
原始数据
| 用户 | 任务 | 时长 | |
|---|---|---|---|
| 1 | 用户 | 任务 | 时长 |
| 2 | Jim | AA-1 | 10 |
| 3 | Mike | AA-2 | 12 |
| 4 | Jim | AA-3 | 13 |
| 5 | Steve | CC-5 | 14 |
| 6 | Jim | BB-1 | 15 |
| 7 | Mike | BB-3 | 5 |
| 8 | Steve | BB-4 | 10 |
| 9 | Mike | CC-5 | 8 |
需求说明
- 计算指定用户(如Jim)在
AA*/BB*开头任务的总时长 - 支持20+任务类型的批量分组求和(如一组统计AA/BB/CC,下一组统计DD/EE/FF)
- 需使用类似多条件SumIf的语法,支持传入多个通配符条件
- 优先支持将通配符条件存储在独立单元格,便于快速修改
解决方案
1. 直接写入多通配符条件的求和公式
适用于Excel 365/2021及以上版本(自动溢出),旧版本需按Ctrl+Shift+Enter输入数组公式:
=SUM(SUMIFS(C:C, A:A, "Jim", B:B, {"AA*", "BB*"}))
公式逻辑:分别计算Jim在AA*和BB*任务的时长,再自动求和,完全匹配你想要的多条件格式。
2. 条件存储在单元格的灵活方案(推荐)
假设把分组条件(如AA*,BB*)放在单元格E1中,通过拆分单元格内容实现动态求和:
- 对于Excel 365/2021:
=SUM(SUMIFS(C:C, A:A, "Jim", B:B, TEXTSPLIT(E1, ","))) - 对于旧版本Excel,用
FILTERXML拆分条件:=SUM(SUMIFS(C:C, A:A, "Jim", B:B, FILTERXML("<t><s>"&SUBSTITUTE(E1, ",", "</s><s>")&"</s></t>", "//s")))
修改E1的内容(比如改成AA*,BB*,CC*)即可直接更新求和结果,无需修改公式。
3. 批量分组计算模板
如果要批量计算不同用户、不同任务组的结果,可设置如下模板:
- 在
G2输入目标用户名,H2输入任务组条件(如AA*,BB*) - 在
I2输入公式并下拉:=SUM(SUMIFS(C:C, A:A, G2, B:B, TEXTSPLIT(H2, ",")))
就能快速生成所有用户、所有任务组的求和结果。
内容的提问来源于stack exchange,提问作者Wallack
相关产品推荐
相关产品推荐

