上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
案例35 计算工程完工日期
源文件:案例文件\02\案例35.xlsx
工程2008年4月20日开工,计划92天完工。公司规定除周末休息之外,每个月的最后一天也休息,如果最后一天也是周末则不补休。现需计算完工日期。
❶ 打开光盘中的源文件,在单元格C2中输入以下数组公式。
=WORKDAY(A2,B2,EOMONTH(A2,ROW(INDIRECT("1:"&INT(B2/30*2)))))
❷ 按下【Ctrl+Shift+Enter】组合键后,公式将返回工程的完工日期序列值,将单元格的数值格式设置为“日期”后,结果如图2-42所示。
图2-42
提示
本例公式利用WORKDAY函数计算2008年4月20日之后的92个工作日的日期值。因需要扣除每个月最末一天,故使用EOMONTH函数产生4月份开始的连续若干个月的最后一天的日期值作为WORKDAY函数的第三参数,从而扣除该休息日。
在产生连续的几个月最后一天的日期时,使用了表达式“ROW(INDIRECT("1:"&INT(B2/30*2)))”。此思路基于一个前提:WORKDAY函数在扣除第三参数所指定的节假日时,只扣起始日期到公式结果代表的日期值之间的日期,如果第三参数中某指定假日超过这个范围则会忽略。因此为了减少公式长度,本例中WORKDAY函数的第三参数只需要产生一个最小值为1,最大值大于工程完工日的数组即可。例如100或者55等都行。但为了使公式通用,即单元格B2的计划工作日增减后不影响公式结果,所以本例使用计划工作日需要的月数乘以2倍。其中大于完工日期的月末一天会被WORKDAY函数忽略。