You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中如何计算仅含工作日的时分秒格式日期差?

计算仅含工作日的任务耗时(保持天/时/分格式)

要实现排除周末的工作日时间差计算,同时保留"X days X hrs X mins"的格式,可以结合NETWORKDAYS函数拆分计算完整工作日天数和剩余时长,以下是具体方案:

适用于Excel 365/2021及以上版本(简洁版)

使用LET函数简化公式逻辑,可读性更高:

=LET(
    start, [@[Start Date]],
    end, [@[End Date]],
    workdays_full, NETWORKDAYS(start+1, end-1),
    time_start, IF(NETWORKDAYS(start, start)=1, 1-MOD(start,1), 0),
    time_end, IF(NETWORKDAYS(end, end)=1, MOD(end,1), 0),
    total_worktime, workdays_full + time_start + time_end,
    INT(total_worktime)&" days "&TEXT(total_worktime-INT(total_worktime),"h"" hrs ""m"" mins """)
)

公式拆解

  • workdays_full:计算开始日次日到结束日前日之间的完整工作日天数,避免重复计算开始和结束当天的部分
  • time_start:如果开始日是工作日,计算当天从任务开始到24:00的剩余时长;若为周末则记为0
  • time_end:如果结束日是工作日,计算当天从00:00到任务结束的时长;若为周末则记为0
  • total_worktime:将完整工作日天数与前后的时段相加,得到总工作日时长(以天为单位的小数)
  • 最后拆分出天数和时分部分,拼接成目标格式

适用于旧版Excel(无LET函数)

直接展开逻辑,公式较长但兼容性更强:

=INT(NETWORKDAYS([@[Start Date]]+1,[@[End Date]]-1)+IF(NETWORKDAYS([@[Start Date]],[@[Start Date]])=1,1-MOD([@[Start Date]],1),0)+IF(NETWORKDAYS([@[End Date]],[@[End Date]])=1,MOD([@[End Date]],1),0))&" days "&TEXT(NETWORKDAYS([@[Start Date]]+1,[@[End Date]]-1)+IF(NETWORKDAYS([@[Start Date]],[@[Start Date]])=1,1-MOD([@[Start Date]],1),0)+IF(NETWORKDAYS([@[End Date]],[@[End Date]])=1,MOD([@[End Date]],1),0)-INT(NETWORKDAYS([@[Start Date]]+1,[@[End Date]]-1)+IF(NETWORKDAYS([@[Start Date]],[@[Start Date]])=1,1-MOD([@[Start Date]],1),0)+IF(NETWORKDAYS([@[End Date]],[@[End Date]])=1,MOD([@[End Date]],1),0)),"h"" hrs ""m"" mins """)

自定义节假日适配

如果需要排除法定节假日,只需在NETWORKDAYS函数中添加第三个参数(指定存放节假日日期的单元格区域),例如:

=LET(
    start, [@[Start Date]],
    end, [@[End Date]],
    holidays, $E$2:$E$10, // 替换为你的节假日区域
    workdays_full, NETWORKDAYS(start+1, end-1, holidays),
    time_start, IF(NETWORKDAYS(start, start, holidays)=1, 1-MOD(start,1), 0),
    time_end, IF(NETWORKDAYS(end, end, holidays)=1, MOD(end,1), 0),
    total_worktime, workdays_full + time_start + time_end,
    INT(total_worktime)&" days "&TEXT(total_worktime-INT(total_worktime),"h"" hrs ""m"" mins """)
)

内容的提问来源于stack exchange,提问作者Theo S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:23:13