让这个例子保持简单。我试图弄清楚为什么当我输入公式作为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而不使其成为数组?
答案 0 :(得分:1)
如果在SUMPRODUCT()中使用IF()函数或IFERROR()或任何IFx()函数,则需要使用CSE。