问题:有两个日期,我要计算它们之间有多少个工作日,怎么办? 我们知道不同的公司有不同的作息制度,有周末双休、有单休、有各种节假日等,所以需要根据不同的情况使用不同的公式计算。 ① 全年无休全年无休,只要用DATEDIF公式计算出两个日期之间相差几天,即为几个工作日。 如果要去除节假日和周末,DATEDIF是力所不能及了,必须请出NETWORKDAYS函数和NETWORKDAYS.INTL函数。 NETWORKDAYS语法 ② 周六和周日不上班。公式“=NETWORKDAYS(日期1,日期2)”会自动用“日期2-日期1”,同时去除周六和周日,得到实际工作日天数。 ③ 除了周末双休,还有法定节假日也不上班。我们可以把“清明”、“五一”、“端午”等一系列特色节假日存放在一个表里,然后用公式“=NETWORKDAYS(日期1,日期2,节假日表)”计算扣除了休息日和节假日后的准确工作日天数。 注意,NETWORKDAYS计算出来的天数可能包含“日期1”和“日期2”哦。 另外,遇到单休工作制,或者不是周末休息的公司,那就需要NETWORKDAYS.INTL函数来计算工作日了。 NETWORKDAYS.INTL语法 和NETWORKDAYS类似,NETWORKDAYS.INTL函数多了一个参数“[周末]”,这个参数表示一周7天中哪天休息。 ④ 只有周日休息。由上面的表格,我们知道数字“11”表示“只有周日”休息,所以可以使用公式“=NETWORKDAYS.INTL(日期1,日期2,11,节假日表)”。 ⑤ 周六、周日不休息,但一周仍有两天休息时间。如果是周日和周一休息,可以使用公式:“=NETWORKDAYS.INTL(日期1,日期2,2,节假日表)”。 ⑥ 周末不休息,法定节假日休息。公式:“=NETWORKDAYS.INTL(日期1,日期2,'0000000',节假日表)”。 这是NETWORKDAYS.INTL函数的另外一种写法了,用数字“0”表示上班,数字“1”表示不上班,从周一开始,7个数字就分别表示一周7天哪天休息哪天工作。 相关阅读:《Excel时间差、日期差计算》、《WPS Excel:考勤表打卡时间转成迟到、早退和加班》。 |
|