在日常办公中,经常遇到需要计算两个日期之间的工作日有多少天,笨一点的方法就是对着日历一天一天数,可是遇到比较多的天数呢?这时候就需要用到excel函数啦!
1、打开如下的表格,需要计算两个不同日期之间有多少个工作日;
2、在C2单元格里面输入公式=NETWORKDAYS(A2,B2)
,回车确定即可看到结果,即从7月1日到7月10日一共7个工作日,双击填充公式,可看到C列所有结果。
对比右边的日历可以看出来,7月1日到7月10日一共三个周末,周末这些非工作日已经自动排除了,下面详细讲解这个公式是什么意思:
3、工作日计算公式=NETWORKDAYS(A2,B2)
中,第一个参数表示开始日期即7月1日,第二个参数表示结束日期即7月10日。如果有特定日期需要排除,还可以在公式里面输入第三个参数。
比如7月5日为公司例外的休息一天需要减去,可以将这些特定日期在D列单独输入,公式修改为=NETWORKDAYS(A2,B2,D2)
即可,这样就在原来的7个工作日中减去了特定一天变为6个工作日,如下图所示。
当然也可以将这一年的法定节假日(注意是调整后不是周末的日期)减去,比如10月1日正好是周六,有可能调整为9月30日休息,那么特殊休息日中就应该是9月30日了。
注意:
如果第三个参数给定的周六日,那么函数返回结果本身就是把这一天减去的,是不会重复减去的。
4、我们也可以利用NETWORKDAYS函数来计算指定时间段内的周末天数:
在D2中录入公式
=B2-A2-NETWORKDAYS(A2,B2)+1
函数返回3,说明7月1日到7月10日之间有3个双休日。
这个公式的含义是用总天数减去工作日,就得到双休日。因为B2-A2的值比实际天数少一天,所以要加上1。万一你遇到统计周末天数的问题,不妨试试这个公式,超好用哦!
通过以上讲解,可以看到这个函数统计工作日相关问题方面可以为我们带来很大的便利,不过也有一个问题,如果不是周六周日休息,该怎么办?相信这是大部分人资和财务面对的问题。
不用怕!在Excel2010版就有了一个升级版的工作日函数:NETWORKDAYS.INTL
,函数有点长,估计能记住的人没多少人,这不要紧,只要记得是net开头的,在Excel中会有提示:
我们注意到这个函数是使用“自定义周末”来确定工作日天数的,之前的NETWORKDAYS函数的周末是无法修改的(必须是周六、周日),就是这一点区别,让其具有了更加灵活广泛的应用。
还是看上面的那个例子,公式修改为:=NETWORKDAYS.INTL(A2,B2,11)
,在输入第三个参数的时候,会出现提示:
这就是让我们来选择哪天休息,如果仅星期天休息的话,选择11就好了,完成公式输入后,结果为:
工作天数就由原来的7天变成了8天,周六也算成工作日了。
(只有周日休息,虽然有点悲催,不过好多人都是这样的有木有~~~)
这个函数里最有用的就是第三个参数了,一共有17种选项:
如果提供的17种休息日都不符合实际情况,还可以自己指定休息日,需要输入7位数字。第一位数字代表周一,最后一位代表周日,每个位置上只能写0和1,0代表上班,1代表休息。如果只有周二休息,自定义参数就是0100000。
和第一个函数一样,如果一个月里有一两天特殊休假需要扣除,就直接写在第四参数的位置。
好啦,今天的教程就到这里,相信有了这2个函数,人资和财务MM再也不用为了统计工作日而烦恼啦!