如何计算当前日期范围与上方行重叠的日期范围数量?
Google Sheets 计算日期范围与上方行的重叠次数公式
假设你的开始日期存放在A列,结束日期在B列,要计算的重叠次数放在C列(数据从第2行开始,第1行为表头):
- 第2行(首条数据)上方无其他行,直接输入
0 - 从第3行开始,在C3单元格输入以下公式,下拉填充到所有行:
=SUMPRODUCT(--(A$2:A2 < B3), --(A3 < B$2:B2))
公式说明
--用于将布尔值(TRUE/FALSE)转换为数字1或0,方便求和统计A$2:A2 < B3:检查当前行上方所有行的开始日期是否小于当前行的结束日期A3 < B$2:B2:检查当前行的开始日期是否小于上方所有行的结束日期- 两个条件同时满足时,代表两个日期范围存在重叠,SUMPRODUCT会把所有符合条件的情况加总,得到当前行与上方行的重叠总数
补充:日期范围重叠的核心判断逻辑
判断两个日期范围[StartX, EndX]和[StartY, EndY]是否重叠,遵循以下规则:
当
StartX < EndY且StartY < EndX时,两个范围存在重叠
如果需要检查整组数据中是否存在任意重叠的范围,可使用这个数组公式:
=SUMPRODUCT(--(A2:A < OFFSET(B2:A,1,0)), --(OFFSET(A2:A,1,0) < B2:A))>0
公式返回TRUE则说明存在重叠的日期范围,返回FALSE则所有范围均不重叠
内容的提问来源于stack exchange,提问作者leo weston
相关产品推荐
相关产品推荐

