如何检测一个日期范围是否部分包含于另一个日期范围
判断日期范围是否与目标范围重叠
目标范围(Range A)
| 开始日期 | 结束日期 |
|---|---|
| 2023年1月1日 | 2023年3月31日 |
测试用例与预期结果
| 测试范围开始 | 测试范围结束 | 预期结果 |
|---|---|---|
| 2023年2月1日 | 2023年2月15日 | TRUE |
| 2023年3月15日 | 2023年6月30日 | TRUE |
| 2022年12月15日 | 2023年1月15日 | TRUE |
| 2023年6月1日 | 2023年6月30日 | FALSE |
需求:验证每个测试范围是否与Range A存在交集(即测试范围内至少有一个日期落在Range A中)。
Google Sheets 实现公式
假设测试范围的开始日期在A列、结束日期在B列,Range A的开始日期存于$D$2、结束日期存于$E$2,在C2单元格输入以下公式并下拉填充:
=NOT(OR(B2<$D$2, A2>$E$2))
逻辑说明:
- 当测试范围完全在Range A之前(测试结束 < Range A开始),或完全在Range A之后(测试开始 > Range A结束)时,两个范围无重叠,
OR返回TRUE - 用
NOT取反后,无重叠时返回FALSE,有重叠时返回TRUE,与预期结果完全匹配。
内容的提问来源于stack exchange,提问作者Damon Brodie
相关产品推荐
相关产品推荐

