Excel函数/VBA需求:识别预约日程中的日期时间间隙
计算日程预约间的空闲时段(分钟数)
前提说明
假设你的日程数据:
- A列(A2:A19):预约开始时间(带日期的时间格式,比如
2024/5/20 09:30) - B列(B2:B19):预约结束时间
- 服务时段为当天
00:00到24:00
操作步骤
排序预约数据
选中A2:B19区域,按A列(开始时间)升序排序,确保预约按时间顺序排列。计算相邻预约的间隙
在C3单元格输入公式:=MAX(0, A3 - B2)下拉填充到C19单元格。这个公式会计算上一个预约结束到下一个预约开始的时间差,
MAX(0,...)用来排除重叠或连续预约的负数情况。计算服务开始到第一个预约的间隙
在C2单元格输入公式:=MAX(0, A2 - DATEVALUE(TEXT(A2,"yyyy-mm-dd")))DATEVALUE(TEXT(A2,"yyyy-mm-dd"))会提取当天00:00的时间,以此计算开门到第一个预约的空闲时长。计算最后一个预约到服务结束的间隙
在C20单元格输入公式:=MAX(0, DATEVALUE(TEXT(B19,"yyyy-mm-dd")) + 1 - B19)DATEVALUE(...) + 1代表当天24:00(即次日00:00),用来计算最后一个预约结束到关门的空闲时长。求和总空闲分钟数
在D2单元格输入公式转换为分钟:=C2*1440下拉填充到D20,最后用求和公式得到总空闲分钟:
=SUM(D2:D20)
关于原公式的说明
你之前用的=SUMPRODUCT((A2<B$2:B$19)*(B2>A$2:A$19))>1只是用来判断当前预约是否和其他预约存在重叠,无法直接计算空闲时段,上述方法可以精准统计所有无客户的空闲时间。
内容的提问来源于stack exchange,提问作者TreeStone
相关产品推荐
相关产品推荐

