在Excel中使用sumif的隐式数组

我想知道是否有可能使用隐式或“嵌套”数组的SUMIF函数。 对于“隐式”数组,我的意思是一个matrix,其中的数据不是电子表格中任何级别的最终forms,而是其他数组的function。 例如,假设我们有等级A1:A100中的一个自variables(其值,所有整数,范围从0到5)的数据,以及B1:B100中的因variables的数据。 有了SUMIF函数,我们可以很容易地计算,例如,独立variables为4时的因variables之和。但是如果我们想要知道因variables的SQUARES的总和,这并不容易,SUMIF函数给出如果我们写入SUMIF(A1:A100; 4; B1:B100 ^ 2),无论我们如何input它(作为数组或作为一个简单的公式),都会出错。

有没有什么办法可以做到这一点,而不必浪费列B值的平方整列?

我知道,就这个例子而言,函数SUMPRODUCT((A1:A100 = 4)* B1:B100 ^ 2)将完成这项工作,我不知道如何“嵌套”数组(这是非常有用的)一般。

恐怕答案是否定的。 COUNTIF(S) / SUMIF(S) / AVERAGEIF(S) 必须是:

1)对工作表范围的引用

2)parsing为引用工作表范围的构造

前者的一个例子是:

=SUMIF(A1:A10,"A",B1:B10)

后者中的两个(正好与上面相同):

=SUMIF(A1:INDEX(A:A,10),"A",B1:INDEX(B:B,10))

=SUM(SUMIF(OFFSET(A1,{0,1,2,3,4,5,6,7,8,9},),"A",OFFSET(B1,{0,1,2,3,4,5,6,7,8,9},)))

这里SUMPRODUCT比这一组SUMPRODUCT有优势,因为可以通过不一定解决工作表范围的构造。

然而,正如你所build议的那样,通过首先在工作表中使用一个额外的列来计算正方形,然后在SUMIF内引用该列,很有可能实现更高效的设置,特别是因为其中一个COUNTIF(S)SUMIF(s)等可以对SUMPRODUCT声明的主要优点是可以通过任意大的引用而不损害计算性能。 例如,性能之间的差异:

=SUMIF(A:A,"A",B:B)

和:

=SUMPRODUCT(0+(A:A="A"),B:B)

后者必须处理该范围内的所有1,048,576个细胞(无论技术上是否超出最后使用的细胞),这并不值得推荐。

问候