我尝试将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"}))唯一的解决办法是将公式分成三个块( {"X“、"Y”、“Z”}中的每个项)。
附近还有别的工作吗?还是SUMIFS中的两个数组不能正常工作?
发布于 2017-06-09 01:26:50
可以对其中一个列表使用行数组,对另一个列表使用列数组。试试这个:
=SUM(SUMIFS(Sheet3!H:H, Sheet3!G:G, {"X","Y","Z"},
Sheet3!E:E,"SA",Sheet3!D:D,{"A";"B";"C"}))
' ^ ^内部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"}当然,其他的单一条件E:E="SA"适用于所有情况。
这两个列表不需要具有相同的基数。
这种技术不能推广到两个以上的列表中。如果您有第三个标准列表,则需要以另一种方式进行。
https://stackoverflow.com/questions/44447639
复制相似问题