返回目录:excel表格制作
使用NETWORKDAYS函数进行处理Excel版本参考:2010测试:A1和来A2单元格中日期段内的工作日天数1、选中B1单元格2、输入公式:=NETWORKDAYS(A1,A2)3、回车,查看效果知识点补充:NETWORKDAYS语法:自NETWORKDAYS(开始日期,结束日期)工作日不包括周末和专门指定的假期。可知以使用函数NETWORKDAYS,根据某一特定道时期内雇员的工作天数,计算其应计的报酬。
方法
函数及参数说明
函数:DATEDIF(start_date,end_date,unit)
Start_date:为一个日期,它代表时间段内的第一个日期或起始日期。
End_date:为一个日期,它代表时间段内的最后一个日期或结束日期。
Unit:为所需信息的返回类型。
Unit取不同值的含意:
"Y"——时间段中的整年数。
"M"——时间段中的整月数。
"D"——时间段中的天数。
"YM"——start_date 与 end_date 日期中月数的差。忽略日期中的日和年。
"YD"——start_date 与 end_date 日期中天数的差。忽略日期中的年。
"MD"——start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
2
举例说明。
开始日期:2012/12/21
结束日期:2014/2/26
在单元格C2中输入公式“=DATEDIF(A2,B2,"Y")”,注意不包含最外面的双引号;
在单元格D2中输入公式“=DATEDIF(A2,B2,"YM")”;
在单元格E2中输入公式“=DATEDIF(A2,B2,"MD")”;
在单元格F2中输入公式“=DATEDIF(A2,B2,"D")”。
3
结果说明。
2012/12/21与2014/2/26之间相隔1年、2个月、零5天,即14个月、零5天,总共相隔432天。e799bee5baa6e997aee7ad94e78988e69d83336
如图设置月份zd为2019-1-1至2020-1-1,通过自定义单元格格内式转成月份显示,G4公式:
=SUM(($A$4:$A$1000=$F4)*IFERROR((IF(($C$4:$C$1000<H$3)*($C$4:$C$1000>=G$3),$C$4:$C$1000,IF($C$4:$C$1000>=H$3,H$3-1,""))-IF(($B$4:$B$1000>=G$3)*($B$4:$B$1000<H$3),$B$4:$B$1000,IF($B$4:$B$1000<G$3,G$3,""))+1),0))
ctrl+shift+回车右拉容后下拉。
1、统计两个日期之间的工作日天数(按周六、日双休不考虑节日)
这个最简单,相应的EXCEL公式如下:
C2:=NETWORKDAYS(A2,B2)
实例下载:统计两个日期之间的工作日天数(按周六、日双休不考虑节日).xls
http://pan.baidu.com/s/1jG3NQ8u
2、统计两个日期之间的工作日天数(按周日单休不考虑节日)
如图所示,相应的EXCEL公式如下:
C2:=NETWORKDAYS.INTL(A2,B2,11)
实例下载:统计两个日期之间的工作日天数(按周日单休不考虑节日).xls
http://pan.baidu.com/s/1hqDvxZI
3、统计两个日期之间的工作日天数(自定义节假日,按周六、日双休)
这个就比较复杂了,但更具有通用性,其实也是可以使用相应的Excel函数解决的。7a64e4b893e5b19e336
解决思路:
1、使用NETWORKDAYS.INTL函数统计两个日期之间的工作日数
2、调整该函数的第3、4参数以实现需求,具体解析见下
3、第4参数可以结合自定义名称的创建以实现节假日区域的自由扩展,公式结果动态更新。
关于第3参数weekend第二种表达方式的几点说明:
1、weekend 的表达方式2是一个长度为7的字符串
2、该字符串中的每个字符代表一周中的一天,从星期一开始
3、1 代表休息日,0代表工作日
4、该字符串中只允许使用字符 1和 0
关于第4参数holidays的几点说明:
1、是一个包含一个或多个日期的可选集合,这些日期将作为节假日不参与工作日个数统计
2、可以是包含日期的单元格区域,也可以是区域的引用,还可以是代表日期序列值的数组常量
3、其中的日期或序列值顺序可以任意打乱,不影响统计。
【公式】
打开名称管理器创建自定义名称holidays=OFFSET(Sheet1!$E$2,,,COUNTA(Sheet1!$E:$E)-1)
C2输入公式:=NETWORKDAYS.INTL(A2,B2,1,holidays)
实例下载::统计两个日期之间的工作日天数(自定义节假日,按周六、日双休).xls