Excel - Sumifs 使用数组引用单元格

问题描述 投票:0回答:2

我正在尝试编写一个 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"}"

我怎样才能实现这个目标?

arrays excel reference array-formulas sumifs
2个回答
0
投票

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")))


0
投票

根据之前的答案提出了解决方案......

我引用的单元格包含我想要在 SUMIFS 公式中考虑的多个标准。在我使用 TEXTSPLIT 公式之前,无法使该单元格表现得像数组一样。使用分号分隔符在引用的单元格中写入我的两个标准:

Criteria 1;Criteria 2

假设文本位于单元格 D1 中,值位于 B 列中,条件范围位于 A 列中,我这样编写公式:

=SUM(SUMIFS(B:B,A:A,TEXTSPLIT(D1,";")))

这为我破解了密码。最终公式要复杂得多,但这是我缺少的基本原理。

© www.soinside.com 2019 - 2024. All rights reserved.