2016-07-22 110 views
0

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

有没有办法做到这一点,而不必浪费列B值的平方整列?我知道,对于这个例子,函数SUMPRODUCT((A1:A100 = 4)* B1:B100^2)会完成这项工作,我不知道如何“嵌套”数组(这是非常有用)。

回答

1

答案是否定的,恐怕。在COUNTIF(S)/SUMIF(S)/AVERAGEIF(S)必须使用的范围为下列之一:

1)引用工作表范围

2)建筑业该决心到工作表的引用范围前者的

一个例子:

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

而后者中的两个(它恰好是标识符CAL以上):

=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拥有这组功能的优势,在结构可以通过它不一定解决到工作表的范围。

但是,正如您所建议的那样,通过首先使用工作表中的附加列来计算正方形,然后在SUMIF内引用该列,可以实现更高效的设置,而不是最低限度因为,SUMIF(s)等可以通过SUMPRODUCT索赔的主要优点之一是可以传递任意大的引用而不损害计算性能。例如,在间性能上的差别:

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

和:

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

是巨大的,后者具有以处理该范围内的所有1,048,576细胞(无论它们是在技术上超越最后使用的细胞或不),根本不值得推荐。

Regards