六、 计算两个日期之间工作日的天数
我们把每个星期得星期一到星期五称为工作日,假如项目经理2004年7月7日接到一个新项目,要求2004年10月8日完成,他需要计算一下这两个日期之间有多少个工作日,以便安排工作的进度。
为了解决这个问题,需要用到一个名为NETWORKDAYS的函数,由于这个函数位于分析工具库中,因此需要安装分析工具库之后才能使用,因此我们先来安装一下。
进入工作表之后,选择菜单“工具→加载宏”命令,打开“加载宏”对话框,勾选“可用加载宏”下方列表框内的“分析工具库”复选框,单击“确定”按钮完成安装(图 19)。
图 19
返回Excel编辑窗口后,在如图20所示的工作表的C3单元格中输入公式:
=NETWORKDAYS(A3,B3)
回车后,可以看到得出的答案为68,即这期间还有68个工作日(图 20)。
图 20
说明:NETWORKDAYS函数的语法为NETWORKDAYS(start_date,end_date,holidays)。其中的start_date 位置放置计算的起点日期参数,end_date位置放置终点日期参数。如果交换这个放置顺序,得出的答案为负值。holidays位置放置除了周末外还需要排除在工作日以外的日期。
这里可以和上面那个计算两个日期间隔天数的计算结果比较一下,起点日期和终点日期都一样,但是计算结果却差别很大,这是因为用NETWORKDAYS函数计算的两个日期之间的差,不包含周末,即星期六和星期日。
NETWORKDAYS函数还可以处理更复杂的情况,假如除了星期六和星期日外,期间还有一些单位自己安排的节假日,实际的工作日数还应该把这些日期排除在外。
在如图21所示的工作表中,A6:A9单元格区域中存放着单位自己安排的解决日期,为了把这些日期排除在外,可以在C3单元格中输入公式:
=NETWORKDAYS(A3,B3,A6:A9)
图 21
回车后可以看到得出的答案为64(图 21),Excel已经把这四天排除在工作日之外。
在实际的计算中,除了单位自己安排的节假日外,国家的法定节日如五一、十一等,Excel都没办法确认,因此要把这些日期排除在工作日外,必须在放置参数A6:A9的位置通知Excel。