如果两组日期属于另一组日期

时间:2014-11-27 12:52:18

标签: excel excel-formula

见下面的例子。

我需要显示真值和假值,如示例所示。

逻辑需要确保"开始和结束"属于该列时间段。因此,D栏的时间段为12月9日至14日,下一栏(E)将于12月15日至20日,依此类推。可以将其视为显示时间范围的甘特图。

example

3 个答案:

答案 0 :(得分:5)

这是我的版本

=AND(D$1<=$B2,E$1-1>=$A2)

请参阅:Check if two date ranges overlap

注意:使用De Morgan's Law

,上面的公式可以显示为与“NOT”形式相同

还可以进一步简化

=AND(D$1<=$B2,E$1>$A2)

答案 1 :(得分:3)

现在我看到日期范围是由第1行中的值定义的,并且根本没有涉及周概念,我更改了公式:

因此,如果您将此公式放在D2中并将其复制到范围内,您将获得结果。

=OR(AND(D$1   >= $A2, D$1   <= $B2),
    AND(E$1   >  $A2, E$1-1 <= $B2),
    AND(D$1   <= $A2, E$1   >  $B2))

您只需添加一个条件格式来获取颜色即可。

编辑:这可以像Tom Sharpe发布here

一样真正简化
=AND(D$1<=$B2,E$1-1>=$A2)

答案 2 :(得分:1)

根据Tom的评论(http://chandoo.org/wp/2010/06/01/date-overlap-formulas/),单元格D2的简化公式为:

=NOT(OR($A2 >= E$1, $B2 < D$1))

这适用于日期时间或任意数字,而不仅仅适用于全天日期。

第一行中您需要的列数多于检查的间隔数。