Excel算工作日还在数日历?NETWORKDAYS函数3秒搞定,第2个技巧90%的人不知道
💼 做项目计划时,你是不是还在手动数日历上的工作日?
📅 排假期、算工期、统计考勤... 数着数着就数错了?
🔥 今天教你一个Excel隐藏神器——NETWORKDAYS函数,3秒算出准确工作日,还能自动排除节假日!
一、为什么你需要学会NETWORKDAYS?
场景1:项目工期计算
老板问:"这个需求从1月1日到1月31日,到底有几个工作日?"
你:打开日历,一个一个数... 数到眼花,还可能漏掉调休!😵
场景2:春节假期排期
"春节放假8天,2月的工作日怎么算?"
你:数日历、排除周末、再减去春节... 算完已经下班了!😫
场景3:员工考勤统计
"小张3月请了3天假,实际出勤多少天?"
你:翻日历、数周末、减请假... 计算器按到冒烟!🤯
NETWORKDAYS函数,就是来解决这些痛点的!
二、NETWORKDAYS函数详解
2.1 基本语法
=NETWORKDAYS(start_date, end_date, [holidays])翻译成人话:
start_date= 开始日期(项目的起点)end_date= 结束日期(项目的终点)holidays= 节假日列表(可选,要排除的假期)
2.2 参数说明
2.3 函数对比:NETWORKDAYS vs 其他日期函数
| 功能 | ||||
| 排除周末 | ||||
| 排除节假日 | ||||
| 适用场景 | ||||
| Excel版本 |
一句话总结:
要算工作日 → 用 NETWORKDAYS 要推算截止日期 → 用 WORKDAY 要算总天数 → 用 DAYS 要算年月日间隔 → 用 DATEDIF
三、8个实战示例,从入门到精通
示例1:基础用法 - 计算项目工期 ⭐
问题: 2024年1月1日到1月31日,有多少个工作日?
公式:
=NETWORKDAYS(DATE(2024,1,1), DATE(2024,1,31))结果: 23天
解析: 1月共31天,排除8个周末日(4个周六+4个周日),剩余23个工作日。
示例2:排除节假日 - 春节假期项目 ⭐
问题: 2024年2月1日到2月29日,排除春节假期(2月9-17日),还剩多少工作日?
公式:
=NETWORKDAYS(DATE(2024,2,1), DATE(2024,2,29), DATE(2024,2,9):DATE(2024,2,17))结果: 14天
解析: 2月共29天,排除4个周末日+9天春节,剩余14个工作日。
💡 技巧: 节假日可以写在单独一列,比如A1:A10,然后直接引用区域!
示例3:动态计算 - 项目剩余工作日 ⭐
问题: 从今天到年底,还剩多少个工作日?
公式:
=NETWORKDAYS(TODAY(), DATE(2024,12,31))结果: 动态计算(每天自动更新)
解析:TODAY()函数自动获取当前日期,每天打开Excel都会重新计算!
💡 应用场景: 项目倒计时、任务提醒、进度追踪
示例4:进阶技巧 - 计算周末加班天数 ⭐⭐
问题: 2024年1月有多少个周末日(可以安排加班或调休)?
公式:
=DAYS(DATE(2024,1,31), DATE(2024,1,1))+1-NETWORKDAYS(DATE(2024,1,1), DATE(2024,1,31))结果: 8天
解析: 总天数31 - 工作日23 = 周末8天
💡 反向思维: 用总天数减去工作日,就能得到周末天数!
示例5:实际工作场景 - 员工考勤统计 ⭐⭐
问题: 员工3月份应出勤21天,请了3天假,实际出勤多少天?
公式:
=NETWORKDAYS(DATE(2024,3,1), DATE(2024,3,31)) - 请假天数结果: 18天(假设请假天数在B1单元格)
解析: 先算出3月总工作日,再减去请假天数,就是实际出勤。
💡 HR必备: 批量计算全公司考勤,一键搞定!
示例6:NETWORKDAYS.INTL - 自定义周末(单休制)⭐⭐⭐
问题: 公司实行单休制(仅周日休息),一周有多少个工作日?
公式:
=NETWORKDAYS.INTL(DATE(2024,1,1), DATE(2024,1,7), "0000001")结果: 6天
解析:"0000001" 是周末代码,7位数字代表周一到周日,1表示休息,0表示上班。所以 "0000001" = 仅周日休息。
💡 更多周末代码:
"0000011"= 周六周日休息(默认)"0000001"= 仅周日休息"0000100"= 仅周三休息"1111111"= 全年无休(打工人模式😂)
示例7:项目管理 - 计算项目进度百分比 ⭐⭐
问题: 项目从1月1日开始,12月31日结束,现在完成了百分之多少?
公式:
=NETWORKDAYS(开始日期, TODAY())/NETWORKDAYS(开始日期, 结束日期)结果: 动态计算(如 65%)
解析: 已过工作日 ÷ 总工作日 = 完成百分比
💡 进阶应用: 配合条件格式,制作项目进度仪表板!
示例8:HR应用 - 按比例计算年假 ⭐⭐
问题: 新员工7月1日入职,年假总共10天,今年能用几天?
公式:
=ROUND(NETWORKDAYS(入职日期, TODAY())/365*年假总天数, 0)结果: 动态计算(如 5天)
解析: 已过工作日 ÷ 365天 × 年假总天数 = 按比例可用年假
💡 ROUND函数: 四舍五入到整数,确保年假天数为整数。
四、常见错误及解决方案
错误1:#VALUE!(日期格式错误)
原因: 输入了文本格式的日期,如 "2024-1-1"
解决: 使用 DATE(2024,1,1) 函数,或确保单元格为日期格式
正确写法:
=NETWORKDAYS(DATE(2024,1,1), DATE(2024,1,31))错误2:#NUM!(日期超出范围)
原因: Excel日期范围是1900年1月1日到9999年12月31日
解决: 检查日期是否在有效范围内
错误示例:
=NETWORKDAYS(DATE(1899,1,1), DATE(2024,1,1)) ❌错误3:负数结果(日期顺序反了)
原因: 开始日期 > 结束日期
解决: 用IF函数判断,自动调整顺序
万能公式:
=IF(A1>B1, NETWORKDAYS(B1,A1), NETWORKDAYS(A1,B1))错误4:节假日没排除
原因: holidays参数引用错误,或节假日不是有效日期
解决: 将节假日单独列在一个工作表中,使用命名区域引用
正确写法:
=NETWORKDAYS(A1, B1, 节假日区域)五、进阶技巧:NETWORKDAYS的8个组合公式
| 计算项目工期 | =NETWORKDAYS(开始日期, 结束日期, 节假日) | |
| 计算剩余工作日 | =NETWORKDAYS(TODAY(), 截止日期, 节假日) | |
| 计算周末天数 | =DAYS(结束日期, 开始日期)+1-NETWORKDAYS(开始日期, 结束日期, 节假日) | |
| 计算工作日占比 | =NETWORKDAYS(开始日期, 结束日期, 节假日)/DAYS(结束日期, 开始日期) | |
| 排除特定星期 | =NETWORKDAYS.INTL(开始日期, 结束日期, "0000011", 节假日) | |
| 计算加班天数 | =SUMPRODUCT((日期区域>=开始日期)*(日期区域<=结束日期)*(WEEKDAY(日期区域,2)>5)) | |
| 计算年假可用 | =NETWORKDAYS(入职日期, TODAY(), 节假日)/365*年假天数 | |
| 项目进度百分比 | =NETWORKDAYS(开始日期, TODAY(), 节假日)/NETWORKDAYS(开始日期, 结束日期, 节假日) |
六、配套资源
📎 配套Excel工作簿已准备好!
包含:
✅ 函数使用说明(参数详解、函数对比、常见错误、组合公式) ✅ 8个实战示例(从基础到进阶) ✅ 高颜值科技蓝主题表格 ✅ 所有公式可直接复制使用
本期示例文件获取方法: 查看本文末留言区提示。
七、互动时间
👇 留言告诉我:
你平时怎么算工作日的? 手动数日历?还是用其他方法? 这8个示例,你学会几个了? 哪个最实用? 还想学什么函数? 评论区告诉我,下期安排!
关注【表哥在此】,每天一个Excel技巧,让工作更高效!
觉得有用?转发给需要的同事,一起告别手动数日历! 🚀
本文配套Excel工作簿已生成,所有公式均可直接复制使用。Excel版本要求:NETWORKDAYS需Excel 2007+,NETWORKDAYS.INTL需Excel 2010+
夜雨聆风