在Google Sheets(或Excel)中计算两个时间范围的重叠时长
计算任务时长与跨天时段的重叠时长优化思路
我需要计算一项任务的运行时长中,落在特定时间范围内的部分(因一天中不同时段费率不同)。
示例1
任务运行时间: 开始(单元格A4):20:00 结束(单元格B4):01:00 目标时间范围: 开始(单元格C4):23:00 结束(单元格D4):06:00 结果: 重叠时长(单元格E4):02:00
我曾提出一个多数情况下有效的公式:
E4 = max(Max(0, Min(B4+(A4>B4), D4+(C4>D4)) - Max(A4, C4)),0)
但该公式未覆盖任务开始时间早于目标范围结束时间的场景,例如:
任务运行时间: 开始(单元格A4):05:00 结束(单元格B4):13:00 目标时间范围: 开始(单元格C4):23:00 结束(单元格D4):06:00 预期结果: 重叠时长(单元格E4):01:00(实际计算为0:00)
我给出了可覆盖该场景的调整公式:
E4 = (MAX(0,MIN(D4+(C4>D4),B4+(A4>B4))-MAX(C4,A4))+MAX(0,(MIN(D4,B4+(A4>B4))-A4)*(C4>D4))+MAX(0,MIN(D4+(C4>D4),B4+0)-C4)*(A4>B4))
但我认为应该有更优雅的方案处理跨天循环时间范围,求相关思路?
内容的提问来源于stack exchange,提问作者Remo Pini
相关产品推荐
相关产品推荐

