如何编写Google Sheets公式校验建筑分包商公寓车辆分配时间重叠问题
建筑项目资源排期重叠判断公式修正方案
现有公式问题
你当前编写的公式存在两个核心问题:
- 语法错误:内层IF判断结束后缺少逗号分隔符,直接拼接字符串会触发公式报错
- 逻辑缺陷:仅对比相邻两行的时间,无法实现同个资源全量预约记录的重叠校验,ARRAYFORMULA使用位置不符合语法规则
时间重叠判断逻辑
资源预约重叠的通用判断规则为:已录入预约的开始时间 < 当前预约的结束时间,且已录入预约的结束时间 > 当前预约的开始时间,满足该条件即判定为时间重叠。
修正后公式
逐行判断公式(输入到第二行后下拉填充即可)
=IF(B2="","",IF(COUNTIFS(B:B,B2,D:D,"<"&E2,E:E,">"&D2)>1,"Overlap","Ok"))
自动批量生效数组公式(仅需输入到首行结果单元格即可整列生成结果)
=ARRAYFORMULA(IF(B2:B="","",IF(COUNTIFS(B:B,B2:B,D:D,"<"&E2:E,E:E,">"&D2:D)>1,"Overlap","Ok")))
注意事项
如果D、E列已经设置为日期格式,不需要额外套DATEVALUE函数转换,仅当单元格存储为文本格式日期时,才需要对D、E列的取值加DATEVALUE包裹。
内容的提问来源于stack exchange,提问作者Blake Rindlisbacher
相关产品推荐
相关产品推荐

