故障排除SUMPRODUCTfunction

我需要计算一个固定的单元格与另一列中的单元格相匹配的行数,第三列中的相应单元格不是空白的。 然而,我的公式performance奇怪,我不知道如何解决它…

这里是单元格中的原始数据:

在这里输入图像说明

列A到D中的所有单元格都只包含值。 在单元格E2中是这样的公式:

= SUMPRODUCT(( – ((A $ 1:A $ 6)= B2))*(IF(ISBLANK(C $ 1:C $ 6),0,1)))

然而,我期望的E2单元格的值是2.这就是列A中与单元格B2中的值相匹配的单元格的数量,并且列C中的对应单元格不是空白的。 不幸的是,它为E2单元生成了3而不是2,我不知道为什么。 为了帮助我解决问题,我为G1到G6单元格input了以下数组公式:

{= – ((A $ 1:A $ 6)= B2)}

以下单元格公式H1到H6:

{= IF(ISBLANK(C $ 1:C $ 6),0,1)}

最后,我为单元格I2input了以下常规公式:

= SUMPRODUCT((G1:G6)*(H1:H6))

这确实产生了2的理想结果。但是,我无法弄清楚两种方法之间的区别。 我的实际电子表格看起来像列A,B和C,所以E2中的公式,如果它能产生所需的结果,是可取的。

谢谢!

尝试input公式作为数组公式(Ctrl + Shift + Enter),应该工作。

由于@ Pash101正确指出,您应该按CTRL + SHIFT + ENTER以评估您的公式,或更好地使用任何下列公式( 不包括数组条目):

对于Excel 2007及更高版本:

=COUNTIFS(A$1:A$6,B2,C$1:C$6,"<>") 

对于Excel 2003:

 =SUMPRODUCT((A$1:A$6=B2)*(C$1:C$6<>""))