巧用MS Office Excel自动工作日计算(2)
中华网科技 http://tech.china.com
2006-02-28 15:51:08
|
|
|
第三步:计算除了春节以外的双休日。我们知道国家规定的公众假日一共10天,除了春节的3天是每年变化的外,其余元旦1天,劳动节3天,国庆节3天都是固定的。因此我们可以用IF函数对月份是否是1月、5月和10月做判断,再来减去相应的公众假日天数,就得到了不考虑春节以外的工作日。于是C2=if(month(A2)=5,B2-3,if(month(A2)=5,B2-3,if(month(A2)=1,B2-1,B2)))或者使用or()函数就是C2=if(or(month(A2)=5,month(A2)=10),B4-3,if(month(A2)=1,B4-1,B4))。
第四步:考虑春节的问题。根据常识,春节的三天只会在1月份或者2月份出现,也就是说最后的判断只正对1、2月份。通过万年历查询得到2000——2010这十年的春节分布,巧的是正好没有春节三天跨月份的年份,也就是说春节三天不是落在1月份就是落在2月份,如图4所示,这给我们应用IF函数判断带来了方便。通过对年份和月份的判断,减去相应的春节天数,就得到了真正意义上的工作日。因此在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))。
第五步:隐藏过渡列。选中“B:C”这两列,在右键菜单中选择“隐藏”,将中间用于计算方便所使用的过渡列B和列C隐藏即可。
选中区域B2:D2,按住填充柄向下拖动填充后,只要在A列任一单元格输入月份,就可以在D列得到该月相应的天数,是不是很方便?
首页 上页 | 1 | 2 | 下页 尾页 共 2 页
|