NETWORKDAYS函数以每月的第一天作为起始日期,以每月的最后一天作为结束日期,第三参数引用F$2:F$28单元格区域的法定节假日,计算出两个日期间不包含法定节假日的工作日天数。再使用COUNTIFS函数,分别统计G$2:G$28单元格区域中的调休日期大于等于A2开始日期,并且小于等于B2结束日期的个数,也就是统计在当前日期范围中的调休天数。最后用不包含法定节假日的工作日天数加上当前日期范围中的调休天数,得到当月应出勤天数。
使用NETWORKDAYS.INTL函数的自定义周末参数计算间隔工作日NET WORKDAYS.INTL函数的作用是使用自定义周末参数,返回两个日期之间的工作日天数。该函数的语法如下。
第一参数start_date表示起始日期。第二参数end_date表示结束日期。第三参数weekend为可选参数,表示指定的自定义周末类型,与13.7.2节中WORKDAY.INTL函数的第三参数规则相同。第四参数holidays为可选参数,表示包含需要从工作日历中排除的一个或多个节假日日期。
示例13-45 处理企业6天工作制的应出勤日期如图13-69所示,需要根据新员工的入职日期,按每周6天工作日、星期日为休息日,计算员工该月应出勤天数。
在C2单元格中输入以下公式,并向下复制到C8单元格。=NETWORKDAYS.INTL(B2,EOMONTH(B2,0),11)NETWORKDAYS.INTL函数的第三参数使用11,表示仅星期日为休息日。以下公式也可完成相同的计算。=NETWORKDAYS.INTL(B2,EOMONTH(B2,0),"0000001")本例中省略第四参数,实际应用时如果该月份有其他法定节假日,可以使用第四参数予以排除。
示例13-46 使用NET WORKDAYS.INTL函数计算指定月份中有多少个星期日根据NETWORKDAYS.INTL函数能够自定义周末参数的特点,能够方便地计算出指定日期所在月份中包含多少个星期日。
如图13-70所示,在B2单元格中输入以下公式,并向下复制到B7单元格。=NETWORKDAYS.INTL(EOMONTH(A2,-1) 1,EOMONTH(A2,0),"1111110")
“EOMONTH(A2,-1)”部分用于计算出A2单元格日期上一个月的最后一天,结果加1,即为当前月的第一天。“EOMONTH(A2,0)”部分用于计算出A2单元格日期当前月份的最后一天。NETWORKDAYS.INTL函数分别以当前月的第一天和当前月的最后一天作为起止日期,第三参数使用“1111110”,表示仅以星期日作为工作日,计算两个日期之间的工作日数,结果就是日期所在月份中包含的星期日天数。
---------------------------------------------------------------------
推荐图书
北京大学出版社
《Excel 2016函数与公式大全》