手把手教你,学会工作日相关函数7 赞同25 收藏在用Excel进行项目管理、工作计划的表格制作过程中往往离不开工作日相关的计算。例如Excel表哥公众号分享的(◀点击查看链接),就大量使用了工作日计算函数。今天给大家分享几个工作日计算相关的函数。一、使用WORKDAY函数计算相隔指定工作日的日期WORKDAY函数用于返回在起始日期之前或之后、与该日期相隔指定工作日的日期。函数的基本语法如下。第一参数start_date为起始日期;第二参数days为开始日期之前或之后不含周末及节假日的天数;第三参数holidays为可选参数,包含需要从工作日历中排除的一个或多个节假日日期。示例一:计算项目结束日期下图为某公司项目施工计划表的部分内容,B列为项目开始日期,C列为各项目的预计天数,F列为法定节假日,需要计算出各项目的结束日期。在D2单元格中输入以下公式,并向下复制到D6单元格。=WORKDAY(B2,C2,F$2:F$4)公式中,B2为起始日期,指定的工作日天数为8,“F$2:F$4”单元格区域为需要排除的节假日日期,Excel计算时自动忽略这些日期来计算工作日。二、可以自定义周末参数的工作日计算函数WORKDAY.INTLWORKDAY .INTL函数的作用是使用自定义周末参数,返回在起始日期之前或之后、与该日期相隔指定工作日的日期,基本语法如下。start_date参数表示开始日期。days参数表示开始日期之前或之后的工作日的天数,正值表示未来日期,负值表示过去日期,零值表示开始日期。weekend为可选参数,用于指定一周中属于周末和不作为工作日的日期。不同weekend参数对应的自定义周末日如下表所示。weekend参数也可以使用由1和0组成的7位数字符串,0为工作日,1为休息日。这种表现形式更为直观,也更便于记忆。例如,指定星期二、星期四和星期六为休息日,则可使用“0101010”表示。在字符串中仅允许使用字符1和0,并且至少要包含1个1或1个0。holidays为可选参数,表示要从工作日日历中排除的日期。该参数可以是一个包含相关日期的单元格区域,也可以是由日期序列值构成的数组常量。示例二:按自定义周末计算项目完成日期通过设置不同的weekend参数,WORKDAY.INTL函数可以灵活地实现非5天工作日的日期计算。在下图所示的项目施工计划表中,需要根据开始日期和预计天数,计算出各项目的结束日期。计算时需按每周6天工作制,以星期日为休息日计算,并且需要去除F列的法定节假日。在D2单元格中输入以下公式,并向下复制到D6单元格。=WORKDAY.INTL(B2,C2,11,F$2:F$4)WORKDAY.INTL函数的第三参数使用11,表示仅以星期日作为休息日。如果第三参数使用由1和0组成的7位数字符串,可以写成以下公式。=WORKDAY.INTL(B2,C2,"0000001",F$2:F$4)有的读者咨询表哥,需要设置的结束日期不考虑周末、节假日该用哪个函数呢?不论是WORKDAY函数或者是WORKDAY.INTL函数计算时候都会跳过周末,那有没有不跳过周末的公式呢?公式用的多了反而产生了思维定势,其实如果不考虑周末、节假日的话,直接把日期相加不就ok了么?如在D2单元格中输入以下公式即可:=B2+C2-1公式中是否"-1"则取决于是否把B2当天也算上。三、使用NETWORKDAYS函数计算两个日期之间的工作日天数NETWORKDAYS函数用于返回两个日期之间完整的工作日天数,该函数的语法如下。第一参数start_date为起始日期;第二参数end_date为结束日期;第三参数holidays可选,是需要排除的节假日日期。示例三:计算员工应出勤天数下图为某公司新入职员工的部分记录,需要根据入职日期,计算员工该月应出勤天数。在C2单元格中输入以下公式,并向下复制到C8单元格。=NETWORKDAYS(B2,EOMONTH(B2,0))“EOMONTH(B2,0)”部分用于计算出员工入职所在月份的最后一天。NETWORKDAYS函数以入职日期作为起始日期,以入职所在月份的最后一天作为结束日期,计算出两个日期间的工作日天数。本例中省略第三参数,实际应用时如果该月份有其他法定节假日,可以使用第三参数予以排除。示例四:计算调休情况下的员工应出勤天数实际的工作日计算中,除了考虑法定节假日的因素外,还要考虑调休日期安排。如下图所示,需要根据F列和G列的放假时间及调休安排,计算2018年员工每月应出勤天数。在G2单元格中输入以下公式,并向下复制到G13单元格。=NETWORKDAYS(A2,B2,F$2:F$28)+COUNTIFS(G$2:G$28,">="&A2,G$2:G$28,"<="&B2)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为可选参数,表示包含需要从工作日历中排除的一个或多个节假日日期。示例五:处理企业6天工作制度的应出勤天数如下图所示,需要根据新员工的入职日期,按每周6天工作日、星期日为休息日,计算员工该月应出勤天数。在C2单元格中输入以下公式,并向下复制到C8单元格。=NETWORKDAYS.INTL(B2,EOMONTH(B2,0),11)NETWORKDAYS.INTL函数的第三参数使用11,表示仅星期日为休息日。以下公式也可完成相同的计算。=NETWORKDAYS.INTL(B2,EOMONTH(B2,0),"0000001")本例中省略第四参数,实际应用时如果该月份有其他法定节假日,可以使用第四参数予以排除。示例六:使用NETWORKDAYS.INTL计算指定月份中有多少个星期日根据NETWORKDAYS.INTL函数能够自定义周末参数的特点,能够方便地计算出指定日期所在月份中包含多少个星期日。如下图所示,在B2单元格中输入以下公式,并向下复制到B7单元格。=NETWORKDAYS.INTL(EOMONTH(A2,-1)+1,EOMONTH(A2,0),"1111110")“EOMONTH(A2,-1)”部分用于计算出A2单元格日期上一个月的最后一天,结果加1,即为当前月的第一天。“EOMONTH(A2,0)”部分用于计算出A2单元格日期当前月份的最后一天。NETWORKDAYS.INTL函数分别以当前月的第一天和当前月的最后一天作为起止日期,第三参数使用“1111110”,表示仅以星期日作为工作日,计算两个日期之间的工作日数,结果就是日期所在月份中包含的星期日天数。注:以上内容摘录自ExcelHome出品的畅销书籍《Excel2016函数与公式大全》。▲建议需要的朋友可以入手一本,我自己也有在用。项目管理模板合辑 注:本平台所载原创文章均为作者辛苦创作,转载请联系作者并标明出处。处处留心皆学问,建议大家可以将这篇推文收藏,以备不时之需。你点的每个"赞"我都认真当成了喜欢▼编辑于 2021-02-03 · 著作权归作者所有, Workday [1] (noun) = (i) days upon which most people work, e.g. "Next Monday is a public holiday, but Tuesday will be a normal workday. (ii) days upon which specific people work, e.g. "Saturday and Sunday are normal workdays for policemen." (i) adjective relating to days upon which most people work, e.g., A workday or work day is a day on which you work: Monday to Friday, normally. A working day could be the same as that, but is perhaps more often used for the hours of the day you're at work. If something happens during the working day, it happens between 9 and 5.30 or whenever..