【问题标题】:Troublshooting SUMPRODUCT FunctionSUMPRODUCT 函数疑难解答
【发布时间】: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


    【解决方案1】:

    尝试将公式输入为数组公式 (Ctrl+Shift+Enter),应该可以。

    【讨论】:

      【解决方案2】:

      正如@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<>""))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-06
        • 2014-08-29
        • 2011-10-27
        • 1970-01-01
        相关资源
        最近更新 更多