Excel工作日计算与节假日排除方法
时间:2026-01-26 16:00:34 145浏览 收藏
编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《Excel计算工作日方法及节假日排除技巧》,文章讲解的知识点主要包括,如果你对文章方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。
必须使用NETWORKDAYS、NETWORKDAYS.INTL、WORKDAY、WORKDAY.INTL四个函数配合动态节假日区域,才能精确计算或推算排除周末及法定节假日的工作日天数及日期。

如果您需要在Excel中精确计算两个日期之间的工作日天数,或推算指定工作日数后的到期日,但需自动跳过周末及法定节假日,则必须借助专用日期函数。以下是解决此问题的步骤:
一、使用NETWORKDAYS函数计算区间工作日天数
该函数专用于统计起始日期与结束日期之间的完整工作日数量,自动排除周六、周日,并可额外排除用户定义的节假日列表。
1、在目标单元格中输入公式:=NETWORKDAYS(开始日期单元格, 结束日期单元格, 节假日区域)。
2、确保节假日区域为连续垂直列(如$H$2:$H$10),且所有日期均为Excel可识别的日期格式(推荐用DATE函数或标准日期输入,避免文本格式)。
3、若无节假日需排除,可省略第三参数,仅保留前两个参数:=NETWORKDAYS(B2,C2)。
4、按Enter确认,结果将返回整数形式的工作日天数。
二、使用NETWORKDAYS.INTL函数自定义周末类型
当企业实行非标准作息(如单休星期日、大小周、做三休一等),需通过第三参数明确定义哪几天为“周末”,此时NETWORKDAYS.INTL可替代基础版本,实现灵活排除。
1、在目标单元格中输入公式:=NETWORKDAYS.INTL(开始日期单元格, 结束日期单元格, 周末编码, 节假日区域)。
2、周末编码填入对应数字:例如仅星期日休息填11,仅星期六休息填12,周一至周五上班填1(默认),完整编码表可在Excel公式提示中查看。
3、节假日区域仍需为绝对引用(如$H$2:$H$8),防止下拉填充时区域偏移。
4、确认公式后,单元格将显示符合自定义规则的工作日总数。
三、使用WORKDAY函数反向推算工期截止日或起始日
当已知项目启动日与所需工作日天数,需得出不含周末和节假日的完工日期;或已知交付截止日与工期,需倒推最晚开工日,应使用WORKDAY函数进行正向或负向位移计算。
1、正向计算(开工日后N个工作日的日期):在目标单元格输入=WORKDAY(起始日期单元格, 工作日天数, 节假日区域)。
2、负向计算(截止日前N个工作日的日期):将工作日天数设为负值,例如=WORKDAY(D2,-15,$H$2:$H$8),表示从D2往前推15个工作日。
3、节假日区域必须为绝对引用,否则复制公式时引用会变动导致错误。
4、确保起始日期单元格格式为“日期”,结果单元格也需设置为“短日期”或“长日期”格式才能正确显示。
四、使用WORKDAY.INTL函数处理特殊周末安排下的工期推算
当企业周末不固定为周六日,且需结合节假日排除进行正/负向日期推算时,WORKDAY.INTL是唯一支持同时定义周末模式与节假日的函数,适用于调休频繁、轮休制或国际业务场景。
1、在目标单元格中输入公式:=WORKDAY.INTL(起始日期单元格, 工作日天数, 周末编码, 节假日区域)。
2、周末编码规则与NETWORKDAYS.INTL一致,例如“0000011”表示仅周六、周日休息,“1000001”表示仅周一、周日休息。
3、节假日区域须为连续单元格区域,且所有日期必须为合法序列号格式,不可含空值或文本。
4、若工作日天数为小数,Excel将自动向下取整(如输入15.9视为15)。
五、构建动态节假日清单并联动引用
为避免每次更新假期都要手动修改公式中的引用范围,可将节假日单独建表并命名区域,使所有函数调用统一指向该动态范围,提升维护性与准确性。
1、在空白工作表(如“HolidayList”)的A2:A20列中逐行录入全部节假日日期。
2、选中该区域,点击【公式】→【定义名称】,名称填入Holidays,引用位置设为=HolidayList!$A$2:$A$20。
3、在任意公式中直接调用该名称,例如:=NETWORKDAYS(B2,C2,Holidays) 或 =WORKDAY(B2,10,Holidays)。
4、后续增删节假日只需在HolidayList表中操作,所有关联公式自动生效,无需逐个修改。
今天关于《Excel工作日计算与节假日排除方法》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
157 收藏
-
357 收藏
-
459 收藏
-
411 收藏
-
306 收藏
-
273 收藏
-
162 收藏
-
262 收藏
-
297 收藏
-
287 收藏
-
265 收藏
-
470 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习