Excel SUMIFS - 多个数组

时间:2017-06-09 00:45:56

标签: arrays excel-formula sumifs

我尝试将SUMIFS包含在单个数组中,并且工作正常:

 =SUM(SUMIFS(Sheet3!H:H,Sheet3!G:G,"X",Sheet3!E:E,"SA",Sheet3!D:D,{"A","B","C"}))

当我尝试在下面添加第二个数组时,它只给出{" X"," Y"," Z"中的第一个/最后一个项目。 }

 =SUM(SUMIFS(Sheet3!H:H,Sheet3!G:G,{"X","Y","Z"},Sheet3!E:E,"SA",Sheet3!D:D,{"A","B","C"}))

我能解决的唯一解决方法是将公式分成3个块({" X"," Y"," Z"}中的每个项目)。

还有其他工作吗?或者SUMIFS中的两个数组无法正常工作?

1 个答案:

答案 0 :(得分:3)

您可以为其中一个列表使用行数组,为另一个列表使用列数组。试试这个:

map

内部=SUM(SUMIFS(Sheet3!H:H, Sheet3!G:G, {"X","Y","Z"}, Sheet3!E:E,"SA",Sheet3!D:D,{"A";"B";"C"})) ' ^ ^ 构成两个数组的交叉积;一个矩阵,其中每个条目都是“sumif”,它们匹配相应的行和列元素:

SUMIFS

然后外部 X,A Y,A Z,A X,B Y,B Z,B X,C Y,C Z,C 将所有元素相加。因此,您将获得每个字段与其条件数组的任何元素匹配的总和:

SUM

当然,另一个单一条件G:G is any of {"X","Y","Z"} and D:D is any of {"A";"B";"C"} 适用于所有情况。

这两个列表不需要具有相同的基数。

此技术不能推广到两个以上的列表。如果您有第三个标准列表,则需要以不同的方式继续。