本文介绍 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