Excel SUMIFS - 多数组
Excel SUMIFS - Multiple Array
我尝试将 SUMIFS 包含在单个数组中,它工作正常:
=SUM(SUMIFS(Sheet3!H:H,Sheet3!G:G,"X",Sheet3!E:E,"SA",Sheet3!D:D,{"A","B","C"}))
当我尝试包含如下所示的第二个数组时,它只给我 {"X"、"Y"、"Z"}[=13= 中的 first/last 项]
=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 中的两个数组不能正常工作?
您可以对其中一个列表使用行数组,对另一个列表使用列数组。试试这个:
=SUM(SUMIFS(Sheet3!H:H, Sheet3!G:G, {"X","Y","Z"},
Sheet3!E:E,"SA",Sheet3!D:D,{"A";"B";"C"}))
' ^ ^
内部的SUMIFS
对两个数组进行叉积;一个矩阵,其中每个条目都是 "sumif" 匹配相应的行和列元素:
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"
适用于所有情况。
两个列表不需要具有相同的基数。
此技术不能推广到两个以上的列表。如果您有第三个标准列表,则需要以不同的方式进行。
我尝试将 SUMIFS 包含在单个数组中,它工作正常:
=SUM(SUMIFS(Sheet3!H:H,Sheet3!G:G,"X",Sheet3!E:E,"SA",Sheet3!D:D,{"A","B","C"}))
当我尝试包含如下所示的第二个数组时,它只给我 {"X"、"Y"、"Z"}[=13= 中的 first/last 项]
=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 中的两个数组不能正常工作?
您可以对其中一个列表使用行数组,对另一个列表使用列数组。试试这个:
=SUM(SUMIFS(Sheet3!H:H, Sheet3!G:G, {"X","Y","Z"},
Sheet3!E:E,"SA",Sheet3!D:D,{"A";"B";"C"}))
' ^ ^
内部的SUMIFS
对两个数组进行叉积;一个矩阵,其中每个条目都是 "sumif" 匹配相应的行和列元素:
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"
适用于所有情况。
两个列表不需要具有相同的基数。
此技术不能推广到两个以上的列表。如果您有第三个标准列表,则需要以不同的方式进行。