【Excel函数学习之如何快速统计工作日】在日常工作中,我们常常需要统计某段时间内的工作日数量,例如计算员工的出勤天数、项目周期或假期安排等。在Excel中,可以通过内置函数来高效完成这一任务。以下是几种常用的统计工作日的方法,结合实际案例进行说明。
一、使用 NETWORKDAYS 函数
`NETWORKDAYS` 是 Excel 中最常用的统计工作日的函数,它可以自动排除周末(周六和周日)以及指定的节假日。
语法:
```
=NETWORKDAYS(开始日期, 结束日期, [节假日范围])
```
- 开始日期:统计的起始日期。
- 结束日期:统计的结束日期。
- 节假日范围(可选):包含节假日的单元格区域。
示例表格:
| 起始日期 | 结束日期 | 节假日范围 | 工作日数量 |
| 2025/1/1 | 2025/1/10 | A1:A3(节假日) | 6 |
| 2025/2/1 | 2025/2/28 | 无 | 20 |
| 2025/3/1 | 2025/3/31 | B1:B5(节假日) | 21 |
> 说明:假设节假日为2025年春节假期(如1月27日至1月31日),则根据实际日期调整。
二、使用 NETWORKDAYS.INTL 函数(自定义周末)
如果你的工作日不是标准的周一至周五,比如有些公司是周一至周六上班,那么可以使用 `NETWORKDAYS.INTL` 函数,它允许你自定义周末的日期。
语法:
```
=NETWORKDAYS.INTL(开始日期, 结束日期, [周末类型], [节假日范围])
```
- 周末类型:数字或字符串,表示哪些日子是休息日(如“1100000”表示周六和周日为休息日)。
示例表格:
| 起始日期 | 结束日期 | 周末类型 | 节假日范围 | 工作日数量 |
| 2025/1/1 | 2025/1/10 | “1100000” | A1:A3(节假日) | 7 |
| 2025/2/1 | 2025/2/28 | “1100000” | 无 | 21 |
| 2025/3/1 | 2025/3/31 | “1100000” | B1:B5(节假日) | 22 |
> 说明:此处周末类型“1100000”表示周六和周日为休息日,其余为工作日。
三、使用 COUNTIF 函数(手动筛选)
如果你不希望使用内置函数,也可以通过 `COUNTIF` 配合日期格式判断是否为工作日。
方法步骤:
1. 在某一列中列出所有日期;
2. 使用公式判断是否为工作日(如:`WEEKDAY(A1,2) < 6` 表示周一到周五);
3. 使用 `COUNTIF` 计算符合条件的行数。
示例表格:
| 日期 | 是否为工作日 | 工作日数量 |
| 2025/1/1 | 是 | 6 |
| 2025/1/2 | 是 | |
| 2025/1/3 | 是 | |
| 2025/1/4 | 是 | |
| 2025/1/5 | 是 | |
| 2025/1/6 | 否 | |
| 2025/1/7 | 否 | |
| 2025/1/8 | 是 | |
| 2025/1/9 | 是 | |
| 2025/1/10 | 是 |
> 说明:此方法适用于小范围数据,若数据量大,建议使用 `NETWORKDAYS` 更高效。
总结
| 方法 | 适用场景 | 优点 | 缺点 |
| NETWORKDAYS | 标准工作日统计 | 简单易用,支持节假日 | 不支持自定义周末 |
| NETWORKDAYS.INTL | 自定义周末设置 | 灵活,支持节假日 | 语法复杂 |
| COUNTIF + WEEKDAY | 小规模数据手动统计 | 灵活,可自定义逻辑 | 操作繁琐,效率低 |
通过以上方法,你可以根据实际需求选择合适的函数来统计工作日,提升工作效率。建议在处理批量数据时优先使用 `NETWORKDAYS` 或 `NETWORKDAYS.INTL`,以减少手动操作带来的错误。


