ARTICLE · 1061142
Excel计算任意时段工作日|法定节假日、调休补班自动排除
我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!
——首发于微信号:桃大喵学习记
前几太难跟大家分享了一篇关于根据日期自动判断是否是工作日的教程《Excel自动判断工作日,一个公式就够了!》,有小伙伴就私信问:能不能根据时间段判断都多少工作日,并且法定节假日、调休补班自动排除?今天就通过不同场景,跟大家分享一下具体解决方法。
函数介绍:
1、NETWORKDAYS函数
功能:标准工作日计算函数,可以计算返回两个日期之间的工作日数,这个函数默认将周六和周日视为周末,适用于标准的周六、周日双休制度。
语法:=NETWORKDAYS(开始日期, 终止日期, [假期])
2、NETWORKDAYS.INTL函数
功能:使用自定义周末参数返回两个日期之间的完整工作日数,适用于任何非标准的休息安排,通过 自定义周末参数提供极大的灵活性。
语法:=NETWORKDAYS.INTL(开始日期, 终止日期,[周末] [假期])
场景一:只排除周六、周日
如下图所示,需要计算2026/9/1-2026/9/30这个时间段的工作日数量,只排除周六、周日。
在目标单元格中输入公式:
=NETWORKDAYS(A4,B4)
然后点击回车即可

解读:
参数1:开始日期A4(2026/9/1)
参数2:终止日期B4(2026/9/30)
9月份周末(周六,周天):9/5、9/6、9/12、9/13、9/19、9/20、9/26、9/27
最终结果:9月共30天,减去8天周末,剩22个工作日。
场景二:自定义周末,只休周日
如下图所示,现在需要计算2026/9/1-2026/9/30这个时间段的工作日数量,只排除周日。
在目标单元格中输入公式:
=NETWORKDAYS.INTL(A4,B4,11)
然后点击回车即可

解读:
参数1:开始日期A4(2026/9/1)
参数2:终止日期B4(2026/9/30)
参数3:周末规则:11 表示只休周日
最终结果是2026年9月有4个周日:9/6、9/13、9/20、9/27,所以30 - 4 = 26天。
场景三:排除周末 + 指定节假日
如下图所示,还是以计算2026/9/1-2026/9/30这个时间段的工作日数量为例,这次要排除周末(周六,周天)和中秋假期(9/25、9/26、9/27)
在目标单元格中输入公式:
=NETWORKDAYS(A4,B4,A8:A10)
然后点击回车即可

解读:
其实上面公式跟场景一类似,只是启用的第3参数:假期(A8:A10),排除对应的假期后就是最终的工作日,我们需要先整理出都有哪些假期日期。
当然,如果周末不是周六,周天,也可以使用自定义周末利用NETWORKDAYS.INTL函数来处理类似问题。
场景四:中国式调休+排除周末 + 指定节假日
如下图所示,还是计算2026/9/1-2026/9/30这个时间段的工作日数量,这次要排除周末(周六,周天)和中秋假期(9/25、9/26、9/27),并且要额外加回调休上班日(9/20)
在目标单元格中输入公式:
=NETWORKDAYS(A4,B4,A8:A10)+COUNTIFS(B8,">="&A4,B8,"<="&B4)然后点击回车即可

解读:
①上面公式跟场景四类似,只是遇到中国式调休,比如(9/20)周日要上班,NETWORKDAYS 默认仍会把它当周末排除,这时可以额外加回调休上班日。
②主要是利用COUNTIFS函数多条件计数,统计“调休上班日区域”中,日期在开始和结束之间的单元格个数。
大家遇到类似场景五的情况可以直接套用下面万能公式:
万能公式=NETWORKDAYS(开始日期,结束日期,节假日区域)+COUNTIFS(调休上班日区域,">="&开始日期,调休上班日区域,"<="&结束日期)
亲爱的小伙伴们:
如果你正在为复杂繁琐的WPS表格/Excel操作困扰,希望通过掌握实用技能显著提升工作效率、减少无效加班——你可以考虑下我的WPS表格/Excel系列课程。
以上就是【桃大喵学习记】今天的干货分享~觉得内容对你有所帮助,别忘了动动手指点个赞哦~。大家有什么问题欢迎关注留言,期待与你的每一次互动,让我们共同成长!
