【发布时间】:2016-05-28 22:05:10
【问题描述】:
让这个例子保持简单。我试图弄清楚为什么当我将公式作为 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。所以我开始把公式分解成几个部分,让它只计算月份 >= 条件 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 输入,例如 1 得到 3,例如 2 得到 2,这是预期的答案。
据我了解,sumproduct 在其括号内创建了类似数组的计算。为什么我需要将上面的公式作为 CSE 输入,而它应该已经以这种方式执行?
在这种情况下,有没有办法使用 sumproduct 而不将其设为数组?
【问题讨论】:
标签: excel-formula