如何在排除周末/节假日时给日期时间戳添加小数天数?
解决WORKDAY函数添加带小数的工作日时的时间丢失问题
问题原因
WORKDAY函数的第二个参数仅接受整数,会自动截断小数部分(比如1.75会被当成1处理),所以你只加了1个工作日。WORKDAY默认返回的是日期(0点整),会直接丢失原时间戳的小时、分钟信息。
正确公式
要同时保留时间部分并正确计算带小数的工作日,需要拆分整数工作日和小数时间部分分别计算:
=WORKDAY(A1, INT(B1)) + MOD(A1, 1) + MOD(B1, 1)
公式拆解:
INT(B1):提取B1中的整数工作日(1.75→1),用WORKDAY计算加1个工作日后的基础日期。MOD(A1, 1):提取原时间戳的时间部分(6/17/25 1:19 PM→13:19,即0.554861天)。MOD(B1, 1):提取B1中的小数时间部分(1.75→0.75天=18小时)。
验证你的例子
- A1:6/17/25 1:19 PM(周二,工作日)
WORKDAY(A1,1)得到6/18/25 0:00- 加上原时间13:19,再加18小时:6/18/25 13:19 + 18h = 6/19/25 7:19 AM,完全符合你的预期。
扩展:排除节假日
如果需要同时排除自定义节假日,改用WORKDAY.INTL并添加节假日区域参数:
=WORKDAY.INTL(A1, INT(B1), 1, $C$1:$C$10) + MOD(A1, 1) + MOD(B1, 1)
1代表周末为周六、周日(可根据需求调整其他数字自定义周末规则)$C$1:$C$10是存放节假日日期的单元格区域。
注意事项
- 确保单元格格式设置为日期时间(比如
yyyy/mm/dd hh:mm AM/PM),避免只显示日期或时间。 - 如果原日期是周末,
WORKDAY会自动跳转到下一个工作日,此时时间部分仍会正常叠加。
内容的提问来源于stack exchange,提问作者user3753404
相关产品推荐
相关产品推荐

