NETWORKDAYS.INTL 函数
本文介绍 Microsoft Excel 中 NETWORKDAYS.INTL 函数的公式语法和用法。
返回两个日期之间的所有工作日数,使用参数指示哪些天是周末,以及有多少天是周末。 周末和任何指定为假期的日期不被视为工作日。
语法
NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
NETWORKDAYS.INTL 函数语法具有以下参数:
-
start_date 和 end_date 必需。 要计算其差值的日期。 start_date 可以早于或晚于 end_date,也可以与它相同。
-
weekend 可选。 表示介于 start_date 和 end_date 之间但又不包括在所有工作日数中的周末日。 Weekend 是一个用于指定周末日的周末数字或字符串。
weekend 数值表示以下周末日:
周末数 |
周末日 |
1 或省略 |
星期六、星期日 |
2 |
星期日、星期一 |
3 |
星期一、星期二 |
4 |
星期二、星期三 |
5 |
星期三、星期四 |
6 |
星期四、星期五 |
7 |
星期五、星期六 |
11 |
仅星期日 |
12 |
仅星期一 |
13 |
仅星期二 |
14 |
仅星期三 |
15 |
仅星期四 |
16 |
仅星期五 |
17 |
仅星期六 |
周末字符串值的长度为七个字符,并且字符串中的每个字符表示一周中的一天(从星期一开始)。 1 表示非工作日,0 表示工作日。 在字符串中仅允许使用字符 1 和 0。 使用 1111111 将始终返回 0。
例如,0000011 结果为星期六和星期日是周末。
-
holidays 可选。 一组可选的日期,表示要从工作日日历中排除的一个或多个日期。 holidays 应是一个包含相关日期的单元格区域,或者是一个由表示这些日期的序列值构成的数组常量。 holidays 中的日期或序列值的顺序可以是任意的。
说明
-
如果 start_date 晚于 end_date,则返回值将为负数,数量将是所有工作日的数量。
-
如果 start_date 在当前日期基准值的范围之外,则 NETWORKDAYS.INTL 返回 错误值 #NUM!。
-
如果 end_date 在当前日期基准值的范围之外,则 NETWORKDAYS.INTL 返回 错误值 #NUM!。
-
如果 weekend 字符串的长度无效或包含无效字符,则 NETWORKDAYS.INTL 返回 错误值 #VALUE!。
示例
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。要使公式显示结果,请选中它们,按 F2,然后按 Enter。如果需要,可调整列宽以查看所有数据。
公式 |
说明 |
结果 |
=NETWORKDAYS.INTL(DATE(2006,1,1),DATE(2006,1,31)) |
结果为 22 个将来工作日。 从两个日期之间的总天数 31 中减去 9 个非工作周末(5 个星期六和 4 个星期日)。 默认情况下,星期六和星期日被视为非工作日。 |
22 |
=NETWORKDAYS.INTL(DATE(2006,2,28),DATE(2006,1,31)) |
结果为 -21,即 21 个过去的工作日。 |
-21 |
=NETWORKDAYS.INTL(DATE(2006,1,1),DATE(2006,2,1),7,{"2006/1/2","2006/1/16"}) |
从 2006 年 1 月 1 日和 2006 年 2 月 1 日之间的 32 天中减去 10 个非工作日(4 个星期五、4 个星期六和 2 个假日),结果为 22 个将来工作日。 使用 7 作为周末参数(星期五和星期六)。 在该时间段中有两个假日。 |
22 |
=NETWORKDAYS.INTL(DATE(2006,1,1),DATE(2006,2,1),"0010001",{"2006/1/2","2006/1/16"}) |
结果为 22 个将来工作日。 与上述示例中的时间段相同,但是将星期六和星期三视为周末。 |
20 |