如何添加动态计算作为标准?

时间:2014-05-08 20:37:18

标签: excel range criteria formula countif

让我们说在A栏中,我有一个开始日期列表,在B栏中,我有一个结束日期列表。我希望建立一个公式(不添加额外的列),计算结束日期超过开始日期120天的时间。

我在C1中尝试了以下公式:

=COUNTIF(B:B,A:A-120)

但它没有工作,因为COUNTIF公式的第二个属性是一个标准,它似乎不接受一个范围。它将A:A视为A1,因为我把我的公式放在C1中。

注意:它只需要用一个公式解决,不能添加额外的列或数组,也不能添加VBA。

更新:某些行有&#34; NULL&#34;在没有可用日期时编写,因此它不适用于=SUMPRODUCT(--(A:A<B:B-120))

1 个答案:

答案 0 :(得分:2)

您可以使用SUMPRODUCT代替,您可以使用范围:

=SUMPRODUCT(--(A:A<B:B-120))

如果A:A在移除120天后小于B:B,则(A:A<B:B-120)将对适用的每一行返回true,否则返回false。

开始时

--会将这些分别转换为1和0,并SUMPRODUCT添加它们。

请注意,如果您使用较小的范围,公式将会更快,例如A1:A100和B1:B100(或您计算的任何范围)。


如果您的范围内还有非日期,请尝试使用此项:

=SUM(IFERROR(A:A<B:B-120,0)*1)

按下 Ctrl + Shift + Enter 输入数组公式后调用它(可以使用SUMPRODUCT,但它需要数组调用,所以你也可以使用SUM)。