我需要计算一个固定单元格与另一列中的单元格匹配的行数,并且第三列中的相应单元格不为空。然而,我的公式表现得很奇怪,而且我不确定如何解决它......
以下是单元格中的原始数据:
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输入了以下数组公式:
= { - ((A $ 1:A $ 6)= B2)}
还有以下数组H1到H6的数组公式:
{= IF(ISBLANK(C $ 1:C $ 6),0,1)}
最后,我为单元格I2输入了以下常规公式:
= SUMPRODUCT((G1:G6)*(H1:H6))
这确实产生了2的期望结果。但是,我无法弄清楚这两种方法之间的区别。我的实际电子表格看起来像列A,B和C,因此E2中的公式(如果它可以产生所需的结果)是可取的。
谢谢!
答案 0 :(得分:1)
尝试输入公式作为数组公式(Ctrl + Shift + Enter),这应该有效。
答案 1 :(得分:1)
正如@ Pash101正确指出的那样,你应该按 CTRL + SHIFT + ENTER 来评估你的公式,或者更好地使用以下任何一个而不是公式(没有数组条目):
for Excel 2007及更高版本:
=COUNTIFS(A$1:A$6,B2,C$1:C$6,"<>")
for Excel 2003:
=SUMPRODUCT((A$1:A$6=B2)*(C$1:C$6<>""))