Excel中Sumifs函数如何引用存储在单元格中的数组作为筛选条件
解决方案
分不同使用场景选择对应方案即可:
场景1:使用Excel 365/2021、新版WPS(支持动态数组)
- 最优方案:不要把条件写在单个单元格里,将每个筛选条件分别存入连续单元格,例如D1填
5003、D2填5009,直接引用区域即可,公式如下,回车直接出结果:=SUM(SUMIFS(B:B,A:A,D1:D2)) - 如果必须把所有条件存在单个单元格D1中:
- 把D1的内容改成逗号分隔的纯文本:
5003,5009,不要保留大括号 - 用TEXTSPLIT拆分文本为数组,公式如下:
- 若A列是文本格式:
=SUM(SUMIFS(B:B,A:A,TEXTSPLIT(D1,","))) - 若A列是数值格式:
=SUM(SUMIFS(B:B,A:A,--TEXTSPLIT(D1,",")))(--用于把拆分出的文本转为数值)
- 若A列是文本格式:
- 把D1的内容改成逗号分隔的纯文本:
场景2:使用旧版Excel(不支持动态数组)
- 优先将条件存入连续单元格区域,例如D1:D2,公式写完按
Ctrl+Shift+Enter三键触发数组运算即可:=SUM(SUMIFS(B:B,A:A,D1:D2)) - 若必须将条件存在单个单元格,且D1内容为
{"5003","5009"},需要用宏表函数处理:- 按
Ctrl+F3打开名称管理器,新建名称为条件数组,引用位置填写=EVALUATE(你当前工作表名!$D$1),保存 - 输入公式
=SUM(SUMIFS(B:B,A:A,条件数组)),按Ctrl+Shift+Enter三键结束运算
- 按
注意:日常使用不推荐把数组语法直接写在单元格里当文本存储,优先用连续单元格存多个条件,兼容性和可读性都更高。
内容的提问来源于stack exchange,提问作者Wilson
相关产品推荐
相关产品推荐

