如果两组date属于另一组date

看下面的例子。

我需要显示示例中显示的真值和假值。

逻辑需要确保“开始和结束”落在该列时间段内。 D列的时间段将是12月9日到14日,下一列(E)是12月15日到20日,依此类推。 把它看作是显示时间表的甘特图。

例

这是我的版本

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

请参阅: 检查两个date范围是否重叠

注:上面的公式可以用De Morgan定律表示为“NOT”forms

还可以进一步简化

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

现在我看到date范围是由行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)) 

你只需要添加条件格式来获得颜色,你就完成了。

编辑:这可以真正简化像汤姆夏普张贴在这里 :

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

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

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

这适用于date或任意数字,而不仅仅是全天的date。

第一行中需要多一列,而不是检查的间隔数。