在Excel中,关于日期的计算,我们可以直接将两个日期相减即可,如果我们需要计算两个日期之间相差的“工作日”,似乎直接相减无法满足我们的要求。那么在这里我们可以利用NETWORKDAYS这个函数来完成关于“工作日”的计算。在此,我们利用该函数结合EOMONTH和MAX函数完成离职员工最后一个月的实际工作天数的计算。 【正文】我们先来了解这三个函数的语法和概念: 1、Max函数 语法:Max(数据1,数据2……) 用于返回一组数据中的最大值 2、EOMONTH函数 语法:EOMONTH(开始日期,月数) 返回开始日期之前或之后的月份的最后一天。月数为正数表示未来日期,为负数表示过去日期。 3、 NETWORKDAYS函数 语法:NETWORKDAYS(开始日期,结束日期,假期) 返回两个日期之间的完整工作日数 清楚了三个函数的语法以后,我们来计算下表中每位离职员工的最后一个月的实际工作天数吧。 步骤分别为: (1) 我们利用EOMONTH函数,计算每位员工离职前一个月的月末日期,即公式为:=EOMONTH(D2,-1) (2)我们在原有的公式的基础上,加1,计算离职月份的第一天的日期,公式为:=EOMONTH(D2,-1)+1。得到下图的数据: (3) 因为不是所有人都是月初离职的,有些人可能是月中离职的,所以我们利用Max函数提取入职日期和离职月初日期两者之间的最大值。继续在E2单元格输入以下公式:=MAX(C2,EOMONTH(D2,-1)+1) (4)接下来,我们在利用NETWORKDAYS函数完成两者之间的工作日计算。E2中的公式为:=NETWORKDAYS(MAX(C2,EOMONTH(D2,-1)+1),D2),即可得到下表中的数据: 在此,补充说明一点,在使用NETWORKDAYS这个函数的时候,关于最后的一个参数“假期”,如果有特殊的假期如春节、中秋等需要特别列出,如果没有的话,可以省略不写,默认会排除周末的日期。如果我们将最后王五的离职日期改为“2015/2/28”的话,我们的公式也需要做相应的变化,因为2015年2月中带有春节,我们需要把春节假期排除,所以公式应该为:=NETWORKDAYS(MAX($C6,EOMONTH($D6,-1)+1),$D6,$G$2:$G$6),如下图所示。 其中,G2:G6为春节假期。这里需要特别注意一点的是,我们国家的假期都是通过调休得到的,而2月15、2月28均为法定假期周末,而我们却需要上班,所以在春节假期中减少两天。因此各位在使用NETWORKDAYS函数计算工作日的时候如果遇到国家法定假日的话就需要特别注意了。 |