首页 > 解决方案 > Excel - Sumifs 使用数组引用单元格

问题描述

我正在尝试编写一个 sumifs 公式,该公式在标准中包含一个数组,但该数组位于 sumifs 公式将引用的另一个单元格中。

例如,我想实现这个结果,如果 A 列等于 5003 和 5009,我将对 B 列求和:

=SUM(SUMIFS(B:B,A:A,{"5003","5009"}))

但是,我不想在公式中写出 "{"5003","5009"}",而是希望这部分引用另一个包含该数组的单元格。例如,我想做类似的事情:

=SUM(SUMIFS(B:B,A:A,D1))

其中 D1 等于:

D1="{"5003","5009"}"

我怎样才能做到这一点?

标签: arraysexcelreferencearray-formulassumifs

解决方案


如果D1您的标准是逗号分隔的,那么您可以使用FILTERXML()SUMIFS()标准构建一个数组。试试下面

=SUM(SUMIFS(B:B,A:A,FILTERXML("<t><s>"&SUBSTITUTE($D$1,",","</s><s>")&"</s></t>","//s")))

如果您的数据与单元格中的数据完全相同"{"5003","5009"}",请D1尝试以下公式。

=SUM(SUMIFS(B:B,A:A,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($D$1,CHAR(34),""),"{",""),"}",""),",","</s><s>")&"</s></t>","//s")))

在此处输入图像描述


推荐阅读