WORKDAY 函数¶
函数概述¶
在 Excel 中,WORKDAY 函数用于按照“工作日”规则对日期进行加减计算:
- 给定一个开始日期与需要偏移的工作日天数,返回对应的工作日日期。
- 默认将周六、周日视为非工作日。
- 还可以额外指定节假日列表,这些日期同样会被排除在工作日之外。
常见应用场景:交付日期计算、合同到期日(按工作日)、排期/工期推算、SLA 截止时间计算等。
基础语法¶
参数说明¶
| 参数 | 是否必填 | 类型/形式 | 含义说明 |
|---|---|---|---|
| start_date | 必填 | 日期/日期序列号/可解析的日期文本 | 起始日期。Excel 会以该日期为基准进行推算。 |
| days | 必填 | 整数(可正可负,可为 0) | 需要偏移的工作日天数:正数表示往后推,负数表示往前推,0 表示返回下一个(或本身)工作日逻辑下的结果。 |
| holidays | 可选 | 日期区域或日期数组 | 需要额外排除的节假日日期列表(不论落在周几,都会被视为非工作日)。 |
提示:
holidays建议使用一列日期区域(例如H2:H20),便于维护和扩展。
基础用法示范¶
下面示例默认周六/周日为休息日,并根据需要引入节假日列表。
示例 1:从某日开始,往后推 N 个工作日¶
需求:从 2026-01-19 开始,往后推 10 个工作日,得到计划完成日期。
解释:函数会跳过周末(周六、周日),返回第 10 个工作日对应的日期。
示例 2:倒推工作日(计算最晚开始时间)¶
需求:交付日是 2026-02-10,要求提前 7 个工作日启动,求最晚启动日期。
解释:days 为负数表示向前倒推工作日。
示例 3:加入节假日列表,排除法定假期¶
需求:从 2026-01-19 往后推 10 个工作日,但要排除节假日区域 H2:H6。
假设 H2:H6 里是以下日期:
| 节假日(H 列) |
|---|
| 2026-01-20 |
| 2026-01-23 |
| 2026-02-02 |
| 2026-02-03 |
| 2026-02-04 |
公式:
解释:在跳过周末的基础上,额外跳过 H2:H6 中列出的日期。
示例 4:days 为 0 的用法¶
需求:如果某日期落在周末或节假日,希望得到下一个工作日。
解释:
- 若
A2是工作日且不在节假日列表中,结果通常会与其工作日规则保持一致; - 若
A2是周末/节假日,函数会返回后续的最近工作日。
示例 5:批量计算:每条记录的“预计完成日”¶
需求:表中每行有“开始日期”和“工期(工作日)”,计算完成日期,并排除节假日。
假设字段如下:
| 开始日期 | 工期(工作日) | 完成日期(结果) |
|---|---|---|
| A2 | B2 | C2 |
在 C2 输入:
向下填充即可批量得到每条任务的完成日期。
总结¶
- WORKDAY 用于按“工作日”推算日期,默认排除周六、周日。
days支持正/负,分别用于顺推与倒推工作日。holidays可选但很实用:把法定假期、公司假期维护在一列区域,计算会更贴近真实排期。- 如果你的周末规则不是“周六周日”,可以了解扩展函数 WORKDAY.INTL(可自定义周末模式),在更复杂排班场景下更合适。