Σ表格公式学堂EXCEL FORMULA & SCENARIO
进阶日期与时效计算 · 1 个 Sheet

计算两个日期之间的工作日天数

跳过周末和节假日,算出真正的工作日。

1

场景背景

算项目工期、算请假扣款、算交货日期,都要用「工作日」口径而不是自然日。NETWORKDAYS 数区间内的工作日,WORKDAY 从某天往后推 N 个工作日。两者都可以传入节假日列表,把法定假日和调休一起排除。

2

数据结构

共 1 个 Sheet
Sheet:工期表
字段含义示例值
开始 / 结束区间边界2024-02-01 / 2024-02-29
工作日天数NETWORKDAYS21
节假日需要额外排除的日期2024-02-10
3

解决步骤

1
第 1 步:数区间内的工作日
NETWORKDAYS(开始, 结束),默认周六周日不算,含首尾两天。
=NETWORKDAYS(A2,B2)
2
第 2 步:排除法定节假日
第 3 个参数传节假日区域,公式会把落在这个区域里的日期也扣掉。
=NETWORKDAYS(A2,B2,$F$2:$F$10)
3
第 3 步:从某天往后推 N 个工作日
WORKDAY(开始日, 天数, 节假日),用于算承诺交货日。
=WORKDAY(A2,7,$F$2:$F$10)
4
第 4 步:核对自然日与工作日
用 DATEDIF 算自然日,两者一比就知道扣掉了几个周末。
=DATEDIF(A2,B2,"D")
4

完整公式与逐段拆解

=NETWORKDAYS(A2,B2,$F$2:$F$10)
A2开始日期(含当天)
B2结束日期(含当天)
$F$2:$F$10节假日列表,可省略;有调休时一定要传
5

多 Sheet 示例

在编辑器中打开 ↗
ABCD
1开始结束工作日自然日
22024-02-012024-02-292128
当前表:工期表 · 公式单元格 C2 · 绿色底为公式,蓝色底为动态数组溢出结果

2024 年 2 月自然日 28 天,工作日 21 天

6

数据流向

数据流向演示1 / 4
来源工期表!A2
➜
去向NETWORKDAYS
开始日期
来源工期表!B2
→
去向NETWORKDAYS
结束日期
来源NETWORKDAYS
→
去向工作日数
跳过周六周日
来源工作日数
→
去向工期表!C2
结果写入 C2
跟着高亮一步步看数据怎么流动
7

注意事项与坑

!中国有调休:周六可能上班、工作日可能放假,必须用节假日区域手工维护。
!含首尾两天,如果不想算开始当天,把开始日 +1。
!日期是文本会导致 #VALUE!。
8

相关场景