networkdays返回两个日期之间完整的工作日数

你好,我是刘卓。欢迎来到我的公号,excel函数解析。之前和你分享了workday的用法,今天来分享另一个和工作日有关的函数networkdays,它计算两个日期之间的完整工作日数。

-01-

函数说明

networkdays返回两个日期之间的完整工作日数。默认周末是周六和周日。函数语法如下,有3个参数。

NETWORKDAYS(start_dateend_date[holidays])
第1参数Start_date:是起始日期。起始日期可以小于或大于结束日期,如果大于结束日期,函数返回负值。
第2参数End_date:是结束日期。
第3参数Holidays :是节假日。可以是包含日期的单元格区域或常量数组。
-02-
示例解释

起始日期是2020/4/14,结束日期是2020/4/19,它们之间的所有工作日数是4天,如下图日历中标黄的那4天。18号和19号是周末,要排除掉。
这里要注意的是工作天数包含起始日期,而workday是不包含起始日期的。第2个示例的起始日期大于结束日期,返回的结果是负值。
下面看下有节假日的情况,节假日有2天,分别是17号和20号。这时起始日期2020/4/14到结束日期2020/4/19之间的所有工作日数是3天,分别是14号,15号,16号这3天。
17号是节假日要排除,18号和19号是周末也要排除。
-03-
具体应用

1.本月有几个工作日

假如周末是周六和周日,并且不考虑节假日。计算一下本月有多少个工作日。那就是计算月初到月末之间有多少个工作日。所以公式为:

=NETWORKDAYS(EOMONTH(NOW(),-1)+1,EOMONTH(NOW(),0))

EOMONTH(NOW(),-1)+1返回本月月初的日期,也就是起始日期。EOMONTH(NOW(),0)返回本月月末的日期,也就是结束日期。
2.从今天到月末还有几个工作日
这个题目和上个题目差不多,起始日期是今天,结束日期是月末,求二者之间的工作日。公式为:

=NETWORKDAYS(NOW(),EOMONTH(NOW(),0))

3.周末上班时工作日数的计算
如下图所示,假如周末是双休,计算5月1号到5月15号之间的工作日数。其中节假日是5月1号到5月5号,但是由于51劳动节的假期太长了,所以周末就要上班了,比如5月9号和4月26号,可以参考下图的日历。

如果直接用=NETWORKDAYS(A18,B18,E18:E22)这个公式,计算出来的结果是不准确的。
因为它把周末和节假日都给排除了,但是现在有的周末是要上班的,比如5月9号,所以要把上班的周末给补回来。
把上班的周末补回来的公式为=COUNTIFS(F18:F19,">="&A18,F18:F19,"<="&B18)。
上班的周末的日期必须在起始日期和结束日期的范围内。4月26号虽然也是上班的周末,但不在5月1号到15号的范围内。
最后完整的公式为:

=NETWORKDAYS(A18,B18,E18:E22)+COUNTIFS(F18:F19,">="&A18,F18:F19,"<="&B18)

链接:
https://pan.baidu.com/s/1JwhNnnpW3aFkB_jAx2t3Cw
提取码:0naf
(0)

相关推荐