【发布时间】:2014-04-25 17:15:22
【问题描述】:
我需要计算一个固定单元格与另一列中的单元格匹配并且第三列中对应的单元格不为空白的行数。但是,我的公式表现得很奇怪,我不知道如何解决它...
这是单元格中的原始数据:
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 中的公式,如果它可以产生所需的结果,则更可取。
谢谢!
【问题讨论】:
标签: excel excel-formula formulas array-formulas