日常工作中,有时需要统计出某个时间段之间,去掉周六、周日、法定节假日及其他固定假期,到底有多少个工作日?”你要是翻着日历一天一天数,清明节、劳动节、周末调休全都得小心,数到一半就容易乱。
NETWORKDAYS就是专门干这个的。给它一个开始日期、一个结束日期,再给它一份节假日名单,它就能自动计算出这段时间里到底有多少个工作日(周一到周五,周末自动跳过)。就像一个不计较节假日的小助理,帮你把该干活的日子全部点清。
一、两个日期之间,上班的天数是多少
先看语法:
=NETWORKDAYS(start_date, end_date, [holidays])
start_date:起始日期。比如项目开工那天。
end_date:结束日期。比如项目验收那天。**结束日期必须大于起始日期。
holidays:可选参数。一列或一个区域,里面存放法定节假日、公司年假等需要额外排除的日子。
注意:这个函数默认把周六和周日当作非工作日。如果你的公司是单休(比如周日休息、周六上班)或者休周一周二,那就不能用它了。
函数返回的是一个整数:从start_date到end_date(包含起止日期这两天)之间,除了周六周日之外,再扣掉你指定的节假日,剩下的天数。
二、、真实业务场景:项目工期、请假扣款、任务排期
场景1:计算项目实际工作日
项目经理通常不会用“自然日”来衡量工期,因为周末没人干活。列一个项目甘特图时,把开始日期写在B2,预计完成日期写在C2,用=NETWORKDAYS(B2,C2,节假日表)就能得到净工作日数。如果再配合WORKDAY函数(根据开始日期和工作日数推算结束日期),两个函数组合起来几乎能覆盖大部分排期需求。
场景2:员工请假天数核算
有的公司按“工作日”扣年假或事假。比如员工从10月8日请假到10月12日,中间跨了一个周末(10月10日-11日),实际请假的工作日只有10月8、9、12日三天。用NETWORKDAYS算出这段时间的工作日数,再减去其中本来就该放假的法定节假日,就能精准算出消耗的假期天数。
场景3:两个部门之间的交付周期统计
订单下达日期和发货日期之间有多少个工作日,是衡量响应速度的常用指标。直接用NETWORKDAYS计算每一单的“工作日周转天数”,然后求平均值或做趋势图,比用自然日更反映实际效率。
三、节假日列表怎么组织比较省事
holidays参数可以是一个单元格区域(比如$F$2:$F$20),也可以是一个常量数组(比如{"2025/1/1","2025/5/1","2025/10/1"})。实际工作中更推荐把未来几年的法定节假日做成一列,放在单独的Sheet里,起个名字叫“节假日表”。然后在公式里用=NETWORKDAYS(B2,C2,节假日表!A:A)引用整列。这样每年元旦、春节、清明等日期更新一次,所有用到NETWORKDAYS的公式自动生效。
需要注意:节假日表中的日期必须是Excel能识别的真实日期。如果你从某个系统导出来的是文本格式(比如“2025年10月1日”),先用DATEVALUE或分列功能转成日期,否则函数会忽略它。
NETWORKDAYS本身不复杂,它解决的是一个很具体的需求:把日历上的“周末”和“放假”这两个模糊概念变成确定的数字。对项目管理、人事考勤、供应链计划来说,这是一个每天都会用到的函数。只要你的节假日列表维护得干净,它比任何手动数的办法都快得多、也可靠得多。
夜雨聆风