论文部分内容阅读
比如下表是某公司一个项目的计划安排表,分为7个子项目,开始日期是2021/3/1,总计需要31天(图1)。下面就可以根据项目的实际情况进行灵活的排程。
如果项目的计劃时间很紧张,不需要排除周末和假日(为了方便描述,默认周末和法定节假日以下统称为休息日),那么我们只要在C2单元格中输入开始日期,然后在D2单元格中输入公式“=C2+B2-1”,下拉公式到D8单元格。接着在C3单元格中输入公式“=D2+1”,下拉公式到C8单元格,这样即可完成该计划的排程了(图2)。
如果需要排除休息日,可以借助WORKDAY函数来实现。为了方便查看计划日期对应的是周几,先在D列前插入一个新列,接着定位到D2单元格并输入公式“=C2”,下拉填充到D8单元格。然后选中D2:D8区域,右击并依次选择“设置单元格格式→数字→日期→选择周一格式”(图3)。
接下来在F2单元格中输入公式“=E2”,下拉填充到F8单元格,选中F2:F8区域并执行上述的操作。接着定位到E2单元格并输入公式“=WORKDAY(C2,B2-1)”,下拉填充到E8单元格;定位到C3单元格并输入公式“=WORKDAY(E2,1)”,下拉填充到C8单元格,这样任务的起始日期就会自动将休息日排除了(图4)。
公式解释:函数的格式是“=WORKDAY(开始日期,间隔天数,特殊节假日列表)”,根据开始日期和间隔天数得到一个日期,这里的间隔天数不包合周末和指定节假日。比如C3单元格中的公式“=WORKDAY(E2,1)”,间隔天数是“1”,表示开始日期是2021/3/6,但因为这天是周六,而2021/3/7是周日,所以开始日期会被自动识别为2021/3/8(周一)。
除了常规的休息日,一些公司可能还有特殊的假日,比如2021/3/17是公司的周年庆,会安排休息。此时只要将图4中E2单元格里的公式更改为“=WORKDAY(C2,B2-1,"2021/3/17")”(表示排除3月17日这天),这样下拉公式后原来E5单元格中显示的日期就会变为2021/3/18了(自动跳过3/17)(图5)。
如前所述,不同公司的休息制度是不同的,比如B公司指定的休息日是每周二,这样在排程时要将周二排除(周末则保留);而C公司执行的是大小周休息制度,即每个月单周的周六休息,双周则双休,这样单周时要将周日排除(双周时则保留)。对于这些非常规的休息日期的排除可以借助WORKDAY.1NTL函数来完成(公式的格式是:WORKDAY.INTL(开始日期,间隔天数,周末选项,特殊节假日列表))。
比如对于B公司的排程,定位到E2单元格并输入公式“=WORKDAY.INTL(C2,B2-1,13)”(参数13表示仅星期二为休息日)。下拉公式后可以看到,2021/3/15(周一)开始的计划,结束时间就变为2021/3/17了(自动跳过3/16,周二)(图6)。
对于C公司的排程则可以通过自定义“特殊节假日列表”来排除。先将执行任务计划月份所包含的休息日标注出来,以2021年3月为例。在J1单元格中输入2021/3/1,下拉填充到2021/3/31。根据图4所介绍的操作在Ⅰ列设置为周显示,然后依次将本月双周的周日使用黄色进行填充(图7)。
接着选中11:J31区域中的数据,依次点击“数据一排序”,在弹出的对话框中,“排序依据”选择“单元格颜色”,“次序”选择“黄色”,点击“确定”按钮退出。再定位到E2单元格,将公式更改为“=WORKDAY.1NTL(C2,B2-1,17,$J$1:$J$2)”,参数17表示仅周六休息,J1:J2则是双周的周日,将其作为特殊假期处理,最后下拉填充公式即可(图8)。
1.不考虑休息日直接排程
如果项目的计劃时间很紧张,不需要排除周末和假日(为了方便描述,默认周末和法定节假日以下统称为休息日),那么我们只要在C2单元格中输入开始日期,然后在D2单元格中输入公式“=C2+B2-1”,下拉公式到D8单元格。接着在C3单元格中输入公式“=D2+1”,下拉公式到C8单元格,这样即可完成该计划的排程了(图2)。
2.排除休息日
如果需要排除休息日,可以借助WORKDAY函数来实现。为了方便查看计划日期对应的是周几,先在D列前插入一个新列,接着定位到D2单元格并输入公式“=C2”,下拉填充到D8单元格。然后选中D2:D8区域,右击并依次选择“设置单元格格式→数字→日期→选择周一格式”(图3)。
接下来在F2单元格中输入公式“=E2”,下拉填充到F8单元格,选中F2:F8区域并执行上述的操作。接着定位到E2单元格并输入公式“=WORKDAY(C2,B2-1)”,下拉填充到E8单元格;定位到C3单元格并输入公式“=WORKDAY(E2,1)”,下拉填充到C8单元格,这样任务的起始日期就会自动将休息日排除了(图4)。
公式解释:函数的格式是“=WORKDAY(开始日期,间隔天数,特殊节假日列表)”,根据开始日期和间隔天数得到一个日期,这里的间隔天数不包合周末和指定节假日。比如C3单元格中的公式“=WORKDAY(E2,1)”,间隔天数是“1”,表示开始日期是2021/3/6,但因为这天是周六,而2021/3/7是周日,所以开始日期会被自动识别为2021/3/8(周一)。
3.排除特定休息日
除了常规的休息日,一些公司可能还有特殊的假日,比如2021/3/17是公司的周年庆,会安排休息。此时只要将图4中E2单元格里的公式更改为“=WORKDAY(C2,B2-1,"2021/3/17")”(表示排除3月17日这天),这样下拉公式后原来E5单元格中显示的日期就会变为2021/3/18了(自动跳过3/17)(图5)。
4.排除自定义休息日
如前所述,不同公司的休息制度是不同的,比如B公司指定的休息日是每周二,这样在排程时要将周二排除(周末则保留);而C公司执行的是大小周休息制度,即每个月单周的周六休息,双周则双休,这样单周时要将周日排除(双周时则保留)。对于这些非常规的休息日期的排除可以借助WORKDAY.1NTL函数来完成(公式的格式是:WORKDAY.INTL(开始日期,间隔天数,周末选项,特殊节假日列表))。
比如对于B公司的排程,定位到E2单元格并输入公式“=WORKDAY.INTL(C2,B2-1,13)”(参数13表示仅星期二为休息日)。下拉公式后可以看到,2021/3/15(周一)开始的计划,结束时间就变为2021/3/17了(自动跳过3/16,周二)(图6)。
对于C公司的排程则可以通过自定义“特殊节假日列表”来排除。先将执行任务计划月份所包含的休息日标注出来,以2021年3月为例。在J1单元格中输入2021/3/1,下拉填充到2021/3/31。根据图4所介绍的操作在Ⅰ列设置为周显示,然后依次将本月双周的周日使用黄色进行填充(图7)。
接着选中11:J31区域中的数据,依次点击“数据一排序”,在弹出的对话框中,“排序依据”选择“单元格颜色”,“次序”选择“黄色”,点击“确定”按钮退出。再定位到E2单元格,将公式更改为“=WORKDAY.1NTL(C2,B2-1,17,$J$1:$J$2)”,参数17表示仅周六休息,J1:J2则是双周的周日,将其作为特殊假期处理,最后下拉填充公式即可(图8)。