为什么我需要让sumproduct成为一个数组公式才能使它工作

时间:2016-05-28 22:05:11

标签: excel-formula

让这个例子保持简单。我试图弄清楚为什么当我输入公式作为CSE时计数正确,但是当我不知道整个公式只是sumproduct时错误。

示例1

    B      |       C      |        D         |         E        |       F
condtion 1 |  condition 2 | strings Jan 2016 | strings Feb 2016 | strings Mar 2016
15/06/01   |  17/06/01    |       2          |         4        |       6

示例2

condtion 1 |  condition 2 | strings Jan 2016 | strings  ONLY   | strings Mar 2016
15/06/01   |  17/06/01    |      2           |        4        |      6

如果第一行中的日期大致介于条件1和条件2中的日期(excel日期连续出版物)之间,我正在修改公式以将值相加。我提出了:

=SUMPRODUCT((DATE(RIGHT($D$1:$F$1,4),MONTH(MID($D$1:$F$1,9,3)&"-1"),1)>=$B2)*(DATE(RIGHT($D$1:$F$1,4),MONTH(MID($D$1:$F$1,9,3)&"-1"),1)<$C2)*(LEFT($D$1:$F$1,7)="strings")*$D$2:$F$2)

它适用于示例1.对于示例2,当我这样做时,日期不在字符串中,公式产生#Value。所以我开始将公式分解为部分并让它只计算几个月&gt; =条件1并将事物包装在IFERROR(...,0)中,如下所示:

=SUMPRODUCT(IFERROR(--(DATE(RIGHT($D$1:$F$1,4),MONTH(MID($D$1:$F$1,9,3)&"-1"),1)>=$B2),0))

当我输入它时,我的两个例子都得到0,但是如果我输入它作为CSE我得到3例如1和2得到例子2,这是预期答案。

据我所知,sumproduct在其括号内创建了类似计算的数组。为什么我需要输入上述公式作为CSE才应该已经以这种方式执行?

在这种情况下,是否可以使用sumproduct而不使其成为数组?

1 个答案:

答案 0 :(得分:1)

如果在SUMPRODUCT()中使用IF()函数或IFERROR()或任何IFx()函数,则需要使用CSE。