描述
使用此函数返回两个日期之间的工作日天数。您还可以指定哪些日期应视为周末(非工作日)以及哪些节假日应排除在外。
句法
NETWORKDAYS.INTL(start_date,end_date,[weekend],[holidays])
输入
该函数有以下参数:
| 姓名 | 必要 | 描述 | 有效输入 |
|---|---|---|---|
开始日期 |
是的 | 考虑范围的第一个日期。 | 单元格引用、整数日期或格式为 DATEVALUE(DD,MM,YYYY) 或 DATEVALUE(YYYY,MM,DD)的日期。或者,它们可以是带引号的字符串,例如“1/14/2023”。能得出上述结果之一的公式也是可以接受的。 |
结束日期 |
是的 | 考虑范围内的最后一个日期。 | 单元格引用、整数日期或格式为 DATEVALUE(DD,MM,YYYY) 或 DATEVALUE(YYYY,MM,DD)的日期。或者,它们可以是带引号的字符串,例如“1/14/2023”。能得出上述结果之一的公式也是可以接受的。 |
周末 |
不 | 一周中的哪些天应该被视为周末?(重复的非工作日) | 请参阅下面的“配置周末 ” 部分。 |
假期 |
不 | 一份以日期形式列出的非工作日清单。 | 单元格引用、单元格区域(D2:D13)、整数日期或格式为 DATEVALUE(DD,MM,YYYY) 或 DATEVALUE(YYYY,MM,DD)的日期。或者,它们可以是带引号的字符串,例如“1/14/2023”。能得出上述结果之一的公式也是可以接受的。 |
范例
安排周末
此功能提供两种配置周末的选项。第一种方法是提供一个数字,如下表所示(不支持值 8、9 和 10)。
| 周末 | 周末号码 |
|---|---|
| 星期六、星期日 | 1(默认值) |
| 星期日,星期一 | 2 |
| 星期一,星期二 | 3 |
| 星期二,星期三 | 4 |
| 星期三,星期四 | 5 |
| 星期四,星期五 | 6 |
| 星期五,星期六 | 7 |
| 仅限周日 | 11 |
| 仅限星期一 | 12 |
| 仅限周二 | 13 |
| 仅限周三 | 14 |
| 仅限周四 | 15 |
| 仅限周五 | 16 |
| 仅限周六 | 17 |
配置周末的第二种方法是提供一个用引号括起来的 7 个字符的文本字符串,该字符串由 1 和 0 组成,“1”表示非工作日,“0”表示工作日。第一个位置代表星期一。
范例数据
| A | B | C | |
|---|---|---|---|
| 1 | 开始日期 | 结束日期 | 假期 |
| 2 | 1/1/2024 |
12/31/2024 |
5/15/2024 |
| 3 | 1/1/2024 |
12/31/2024 |
6/15/2024 |
| 4 | 1/1/2024 |
12/31/2024 |
7/4/2024 |
| 5 | 7/19/2003 |
2002年2月31日 |
7/5/2024 |
| 6 | 41631 |
2014年1月23日 |
9/6/2024 |
示例公式
| 用例 | 公式 | 解释与结果 |
|---|---|---|
| 确定两个单元格中指定的日期之间的工作日(周一至周五)天数,不指定节假日。星期六和星期日是周末。 | =NETWORKDAYS.INTL(A2,B2) |
此公式确定单元格 A2 中的日期与单元格 B2 中的日期之间的工作日(周一至周五)天数,不指定节假日。星期六和星期日被认为是周末。 结果: 262。 |
| 确定两个单元格中指定的日期之间的工作日(周一至周五)天数,节假日在第三个单元格中指定。星期六和星期日是周末。 | =NETWORKDAYS.INTL(A2,B2,,C2) |
此公式确定单元格 A2 中的日期与单元格 B2 中的日期之间的工作日(周一至周五)天数,节假日在 C2 中指定。 结果: 261。 |
| 确定两个单元格中指定的日期之间的工作日(周一至周五)天数,节假日在单元格区域中指定。星期六和星期日是周末。 | =NETWORKDAYS.INTL(A3,B3,,C2:C5) |
此公式确定单元格 A3 中的日期与单元格 B3 中的日期之间的工作日(周一至周五)数量,节假日在 C2:C5 范围内指定。请注意,2024 年 6 月 15 日(C3)是星期六,因此只有三个工作日假期(5 月 15 日、7 月 4 日、7 月 5 日)会减少计数。 结果: 259。 |
| 确定指定日期与单元格中日期之间的工作日天数,不包括节假日。工作日为星期一、星期二和星期三。 | =NETWORKDAYS.INTL("2024年1月1日",B4,"0001111") |
此公式确定 2024 年 1 月 1 日到单元格 B4 中的值之间的工作日天数,工作日为星期一、星期二、星期三,不指定节假日。 结果: 158。 |
| 确定两个指定日期之间的工作日天数,不包括节假日。周末(非工作日)是星期二和星期三。 | =NETWORKDAYS.INTL(DATE(2024,11,1),DATE(2024,12,31),4) |
该公式用于确定 2024 年 11 月 1 日至 2024 年 12 月 31 日之间的工作日天数。周末(非工作日)是星期二和星期三(4)。未指定节假日。 结果: 44。 |
| 确定两个单元格中指定的日期之间的工作日(周一至周五)天数。星期六和星期日是周末。指定了一个节假日。 | =NETWORKDAYS.INTL(A6,B6,"0000011",45651) |
此公式确定单元格 A6 中的日期与单元格 B6 中的日期之间的工作日(周一至周五)数。非工作日为星期六和星期日( 结果: 24。 |
笔记
- NETWORKDAYS.INTL
- 它并不知道哪些日子是节假日。这些信息需要用户指定。
- 计算工作日时,包括开始日期和结束日期。
- 自动排除指定范围内的所有星期六和星期日。
- 忽略所有时间值。
- 如果节假日日期不在指定的开始日期和结束日期之间,则会被忽略。
- 此函数不支持通配符。
- 如果
start_date 晚于end_date,则返回值为负数,其大小为完整工作日数。 - 如果
start_date或end_date超出当前日期基准值的范围,则 NETWORKDAYS.INTL 返回 #NUM! 错误值。 - 如果周末字符串长度无效或包含无效字符,NETWORKDAYS.INTL 将返回 #VALUE! 错误值。
- 如果提供的日期无效,NETWORKDAYS 将返回 #VALUE! 错误。
使用技巧
- 你可以使用这个函数,通过将结果乘以相应的工时数来计算指定范围内的工时数。