工作量当然得以“工作日”
![](/icons/39871de.gif)
数量去安排
![](/icons/39871dou.gif)
但每个月
![](/icons/39871de.gif)
天数区别
![](/icons/39871dou.gif)
而且周 6日也不尽相同
![](/icons/39871dou2.gif)
如果想准确地知道
![](/icons/39871yi.gif)
个月有多少个工作日
![](/icons/39871dou.gif)
可以请Excel来帮忙!
小知识
标准工作日是指法律规定
![](/icons/39871de.gif)
各企业、事业、机关、团体等单位在正常情况下普遍实行
![](/icons/39871de.gif)
工作日
![](/icons/39871dou2.gif)
通俗
![](/icons/39871de.gif)
说
![](/icons/39871dou.gif)
就是指除了国家法定节假日(双休日、元旦、 5
![](/icons/39871yi.gif)
、国庆、春节等)的外正常工作
![](/icons/39871de.gif)
日期
![](/icons/39871dou2.gif)
任务分析
![](/icons/39871yinwei.gif)
每月
![](/icons/39871de.gif)
总天数和双休日
![](/icons/39871de.gif)
分布是区别
![](/icons/39871de.gif)
![](/icons/39871dou.gif)
而且春节是农历
![](/icons/39871de.gif)
假期
![](/icons/39871dou.gif)
简单地使用Excel
![](/icons/39871hanshu.gif)
去计算是满足不了要求
![](/icons/39871de.gif)
![](/icons/39871dou2.gif)
我们先使用Excel“分析工具库”中
![](/icons/39871de.gif)
networkdays
![](/icons/39871kh.gif)
![](/icons/39871hanshu.gif)
计算出“准工作日”
![](/icons/39871dou.gif)
再考虑其中
![](/icons/39871de.gif)
特殊农历假日
![](/icons/39871dou2.gif)
这样就能准确
![](/icons/39871de.gif)
算出“工作日”
![](/icons/39871de.gif)
天数
![](/icons/39871dou2.gif)
有请 networkdays
![](/icons/39871kh.gif)
![](/icons/39871hanshu.gif)
通常情况下
![](/icons/39871dou.gif)
在Excel中是找不到这个
![](/icons/39871hanshu.gif)
![](/icons/39871de.gif)
![](/icons/39871dou2.gif)
别着急
![](/icons/39871dou.gif)
跟我来
![](/icons/39871dou2.gif)
单击“工具→加载宏”
![](/icons/39871dou.gif)
在弹出
![](/icons/39871de.gif)
“加载宏”对话框中复选“分析工具库”
![](/icons/39871dou.gif)
再单击“确定”按钮
![](/icons/39871dou2.gif)
将Office
![](/icons/39871de.gif)
安装光盘放入光驱
![](/icons/39871dou.gif)
按提示即可安装成功
![](/icons/39871dou.gif)
如图1
![](http://www.crazycoder.cn/WebFiles/20092/1a861aa4-4dd0-4576-b1ba-51dbc623a9ca.jpg)
外来
![](/icons/39871de.gif)
和尚念不好经
networkdays
![](/icons/39871kh.gif)
![](/icons/39871hanshu.gif)
![](/icons/39871de.gif)
语法为:networkdays(Start_date
![](/icons/39871dou.gif)
End_date
![](/icons/39871dou.gif)
Holidays)
![](/icons/39871dou2.gif)
其中Start_date表示开始日期
![](/icons/39871dou.gif)
End_date为终止日期
![](/icons/39871dou.gif)
Holidays表示
![](/icons/39871yi.gif)
个或者多个特定假日序列
![](/icons/39871dou.gif)
可以采用单元格引用
![](/icons/39871de.gif)
方式
![](/icons/39871dou2.gif)
如图2
![](/icons/39871dou.gif)
B8单元格公式“=networkdays(B2,B3,B4:B6)”结果为20
![](/icons/39871dou2.gif)
事实上
![](/icons/39871dou.gif)
2004年
![](/icons/39871de.gif)
10月2日和3日是星期 6和星期天
![](/icons/39871dou.gif)
那么按照我们
![](/icons/39871de.gif)
习惯就会通过调休
![](/icons/39871de.gif)
方式
![](/icons/39871dou.gif)
最终得到10月份只有18天上班
![](/icons/39871dou.gif)
而不是networkdays
![](/icons/39871kh.gif)
![](/icons/39871hanshu.gif)
计算出
![](/icons/39871de.gif)
20天
![](/icons/39871dou2.gif)
特殊假日
![](/icons/39871de.gif)
处理
虽然说直接应用networkdays
![](/icons/39871kh.gif)
![](/icons/39871hanshu.gif)
并不能得到正确
![](/icons/39871de.gif)
工作日天数
![](/icons/39871dou.gif)
但我们还是可以通过对此
![](/icons/39871hanshu.gif)
![](/icons/39871de.gif)
变化来得到
![](/icons/39871dou2.gif)
图3是我们
![](/icons/39871de.gif)
范例
![](/icons/39871dou.gif)
演示了如何
![](/icons/39871yi.gif)
步
![](/icons/39871yi.gif)
步逼近我们
![](/icons/39871de.gif)
目标
![](/icons/39871dou2.gif)
第
![](/icons/39871yi.gif)
步:将A列定义为月份
![](/icons/39871dou2.gif)
选中A列
![](/icons/39871dou.gif)
在右键菜单中选择“设定单元格格式”
![](/icons/39871dou.gif)
在“数字”标签中选择“分类”为“自定义”
![](/icons/39871dou.gif)
“类型”中输入“yyyy-mm”格式
![](/icons/39871dou.gif)
单击“确定”按钮退出
![](/icons/39871dou2.gif)
第 2步:设计B列公式
![](/icons/39871dou2.gif)
先直接用networkdays
![](/icons/39871kh.gif)
![](/icons/39871hanshu.gif)
计算只考虑本月除去双休日后
![](/icons/39871de.gif)
天数
![](/icons/39871dou2.gif)
虽然可直接使用该
![](/icons/39871hanshu.gif)
![](/icons/39871dou.gif)
但需要知道每月
![](/icons/39871de.gif)
开始日期和终止日期
![](/icons/39871dou2.gif)
开始日期当然是每月
![](/icons/39871de.gif)
1日
![](/icons/39871dou.gif)
用“date(year(A2),month(A2),1)”表示就OK了
![](/icons/39871dou2.gif)
结束日期应当是每月
![](/icons/39871de.gif)
最后
![](/icons/39871yi.gif)
天
![](/icons/39871dou.gif)
这就有些难度了
![](/icons/39871dou.gif)
究竟是30日、31日还是28日、29日?需要
![](/icons/39871yi.gif)
个复杂
![](/icons/39871de.gif)
判断关系
![](/icons/39871dou2.gif)
这里我们采用了
![](/icons/39871yi.gif)
个变通
![](/icons/39871de.gif)
办法
![](/icons/39871dou.gif)
就是当月
![](/icons/39871de.gif)
最后
![](/icons/39871yi.gif)
天其实就是下月
![](/icons/39871de.gif)
第
![](/icons/39871yi.gif)
天再减去1天
![](/icons/39871dou.gif)
所以我们可以用“date(year(A2),month(A2)+1,1)-1”来表示
![](/icons/39871dou2.gif)
于是B2
![](/icons/39871de.gif)
公式就有了:“=networkdays(date(year(A2),month(A2),1),date(year(A2),month(A2)+1,1)-1)”
![](http://www.crazycoder.cn/WebFiles/20092/41325b10-c15a-4a36-80de-b1d6b7e695cc.jpg)
第 3步:计算除了春节以外
![](/icons/39871de.gif)
双休日
![](/icons/39871dou2.gif)
我们知道国家规定
![](/icons/39871de.gif)
公众假日
![](/icons/39871yi.gif)
共10天
![](/icons/39871dou.gif)
除了春节
![](/icons/39871de.gif)
3天是每年变化
![](/icons/39871de.gif)
外
![](/icons/39871dou.gif)
其余元旦1天
![](/icons/39871dou.gif)
劳动节3天
![](/icons/39871dou.gif)
国庆节3天都是固定
![](/icons/39871de.gif)
![](/icons/39871dou2.gif)
因此我们可以用IF
![](/icons/39871hanshu.gif)
对月份是否是1月、5月和10月做判断
![](/icons/39871dou.gif)
再来减去相应
![](/icons/39871de.gif)
公众假日天数
![](/icons/39871dou.gif)
就得到了不考虑春节以外
![](/icons/39871de.gif)
工作日
![](/icons/39871dou2.gif)
于是C2=
![](/icons/39871if.gif)
(month(A2)=5,B2-3,
![](/icons/39871if.gif)
(month(A2)=5,B2-3,
![](/icons/39871if.gif)
(month(A2)=1,B2-1,B2)))或者使用or
![](/icons/39871kh.gif)
![](/icons/39871hanshu.gif)
就是C2=
![](/icons/39871if.gif)
(or(month(A2)=5,month(A2)=10),B4-3,
![](/icons/39871if.gif)
(month(A2)=1,B4-1,B4))
![](/icons/39871dou2.gif)
第 4步:考虑春节
![](/icons/39871de.gif)
问题
![](/icons/39871dou2.gif)
根据常识
![](/icons/39871dou.gif)
春节
![](/icons/39871de.gif)
3天只会在1月份或者2月份出现
![](/icons/39871dou.gif)
也就是说最后
![](/icons/39871de.gif)
判断只正对1、2月份
![](/icons/39871dou2.gif)
通过万年历查询得到2000——2010这十年
![](/icons/39871de.gif)
春节分布
![](/icons/39871dou.gif)
巧
![](/icons/39871de.gif)
是正好没有春节 3天跨月份
![](/icons/39871de.gif)
年份
![](/icons/39871dou.gif)
也就是说春节 3天不是落在1月份就是落在2月份
![](/icons/39871dou.gif)
如图4所示
![](/icons/39871dou.gif)
这给我们应用IF
![](/icons/39871hanshu.gif)
判断带来了方便
![](/icons/39871dou2.gif)
通过对年份和月份
![](/icons/39871de.gif)
判断
![](/icons/39871dou.gif)
减去相应
![](/icons/39871de.gif)
春节天数
![](/icons/39871dou.gif)
就得到了真正意义上
![](/icons/39871de.gif)
工作日
![](/icons/39871dou2.gif)
因此在D2中应该输入=IF(AND(OR(YEAR(A2)=2001,YEAR(A2)=2004,YEAR(A2)=2006,YEAR(A2)=2009),MONTH(A2)=1),C2-3,IF(AND(OR(YEAR(A2)=2000,YEAR(A2)=2002,YEAR(A2)=2003,YEAR(A2)=2005,YEAR(A2)=2007,YEAR(A2)=2008,YEAR(A2)=2010),MONTH(A2)=2),C2-3,C2))
![](http://www.crazycoder.cn/WebFiles/20092/4a67cf5b-a646-41a8-87df-899b18d7b6c7.jpg)
第 5步:隐藏过渡列
![](/icons/39871dou2.gif)
选中“B:C”这两列
![](/icons/39871dou.gif)
在右键菜单中选择“隐藏”
![](/icons/39871dou.gif)
将中间用于计算方便所使用
![](/icons/39871de.gif)
过渡列B和列C隐藏即可
![](/icons/39871dou2.gif)
选中区域B2:D2
![](/icons/39871dou.gif)
按住填充柄向下拖动填充后
![](/icons/39871dou.gif)
只要在A列任
![](/icons/39871yi.gif)
单元格输入月份
![](/icons/39871dou.gif)
就可以在D列得到该月相应
![](/icons/39871de.gif)
天数
![](/icons/39871dou.gif)
是不是很方便?