数组公式中的Excel减法

时间:2018-04-25 08:44:01

标签: excel excel-formula

一个或许相当简单的问题,我无法在这里找到答案:

我想计算此数据集中的实例,其中实例的开始和结束日期之间的持续时间超过六个月。

我特别希望能够在数组公式中执行此操作,因为我对此技术的预期实现是在一个更大的数据集上,我希望尽可能保持干净,因此没有带有和或减法的列。

   A            B
StartDate    EndDate
2017-05-01   2017-08-01
2016-07-01   2017-06-01
2015-09-01   2017-06-01
2015-08-01   2015-09-01
2016-02-01   2018-01-01

{= SUM(IF((A:A-B:B)> 183,1,0))}

这是我直截了当地尝试这样做的,它会返回一个#VALUE错误。如何让这个功能返回" 3"这是我在这种情况下试图查询的正确答案吗?

非常感谢!

2 个答案:

答案 0 :(得分:0)

尝试,

=sumproduct(--(b2:index(b:b, match(1e99, a:a))-a2:index(a:a, match(1e99, a:a))>183))
'alternate
=sumproduct(--(abs(a2:index(a:a, match(1e99, a:a))-b2:index(b:b, match(1e99, a:a)))>183))

enter image description here

答案 1 :(得分:0)

您的公式逻辑绝对正确。但是,您需要注意以下两点。

  • 您要包含所有单元格,其中一些可能包含文本(例如标题),这些将返回错误,最终结果为#VALUE

  • 开始日期小于结束日期,因此所有减法结果将小于或等于0.

因此,如果您修改自己的公式,如下所示 CTRL + SHIFT + ENTER ,那么您将得到正确的结果。

=SUM(IF((B1:B6-A1:A6)>183,1,0))

或者您可以使用整列参考(不推荐)。

=SUM(IF(IFERROR(B:B-A:A,0)>183,1,0))