平淡
比如下表是某公司一個(gè)項(xiàng)目的計(jì)劃安排表,分為7個(gè)子項(xiàng)目,開始日期是2021/3/1,總計(jì)需要31天(圖1)。下面就可以根據(jù)項(xiàng)目的實(shí)際情況進(jìn)行靈活的排程。
如果項(xiàng)目的計(jì)劃時(shí)間很緊張,不需要排除周末和假日(為了方便描述,默認(rèn)周末和法定節(jié)假日以下統(tǒng)稱為休息日),那么我們只要在C2單元格中輸入開始日期,然后在D2單元格中輸入公式“=C2+B2-1”,下拉公式到D8單元格。接著在C3單元格中輸入公式“=D2+1”,下拉公式到C8單元格,這樣即可完成該計(jì)劃的排程了(圖2)。
如果需要排除休息日,可以借助WORKDAY函數(shù)來(lái)實(shí)現(xiàn)。為了方便查看計(jì)劃日期對(duì)應(yīng)的是周幾,先在D列前插入一個(gè)新列,接著定位到D2單元格并輸入公式“=C2”,下拉填充到D8單元格。然后選中D2:D8區(qū)域,右擊并依次選擇“設(shè)置單元格格式→數(shù)字→日期→選擇周一格式”(圖3)。
接下來(lái)在F2單元格中輸入公式“=E2”,下拉填充到F8單元格,選中F2:F8區(qū)域并執(zhí)行上述的操作。接著定位到E2單元格并輸入公式“=WORKDAY(C2,B2-1)”,下拉填充到E8單元格;定位到C3單元格并輸入公式“=WORKDAY(E2,1)”,下拉填充到C8單元格,這樣任務(wù)的起始日期就會(huì)自動(dòng)將休息日排除了(圖4)。


公式解釋:函數(shù)的格式是“=WORKDAY(開始日期,間隔天數(shù),特殊節(jié)假日列表)”,根據(jù)開始日期和間隔天數(shù)得到一個(gè)日期,這里的間隔天數(shù)不包合周末和指定節(jié)假日。比如C3單元格中的公式“=WORKDAY(E2,1)”,間隔天數(shù)是“1”,表示開始日期是2021/3/6,但因?yàn)檫@天是周六,而2021/3/7是周日,所以開始日期會(huì)被自動(dòng)識(shí)別為2021/3/8(周一)。
除了常規(guī)的休息日,一些公司可能還有特殊的假日,比如2021/3/17是公司的周年慶,會(huì)安排休息。此時(shí)只要將圖4中E2單元格里的公式更改為“=WORKDAY(C2,B2-1,"2021/3/17")”(表示排除3月17日這天),這樣下拉公式后原來(lái)E5單元格中顯示的日期就會(huì)變?yōu)?021/3/18了(自動(dòng)跳過(guò)3/17)(圖5)。
如前所述,不同公司的休息制度是不同的,比如B公司指定的休息日是每周二,這樣在排程時(shí)要將周二排除(周末則保留);而C公司執(zhí)行的是大小周休息制度,即每個(gè)月單周的周六休息,雙周則雙休,這樣單周時(shí)要將周日排除(雙周時(shí)則保留)。對(duì)于這些非常規(guī)的休息日期的排除可以借助WORKDAY.1NTL函數(shù)來(lái)完成(公式的格式是:WORKDAY.INTL(開始日期,間隔天數(shù),周末選項(xiàng),特殊節(jié)假日列表))。
比如對(duì)于B公司的排程,定位到E2單元格并輸入公式“=WORKDAY.INTL(C2,B2-1,13)”(參數(shù)13表示僅星期二為休息日)。下拉公式后可以看到,2021/3/15(周一)開始的計(jì)劃,結(jié)束時(shí)間就變?yōu)?021/3/17了(自動(dòng)跳過(guò)3/16,周二)(圖6)。
對(duì)于C公司的排程則可以通過(guò)自定義“特殊節(jié)假日列表”來(lái)排除。先將執(zhí)行任務(wù)計(jì)劃月份所包含的休息日標(biāo)注出來(lái),以2021年3月為例。在J1單元格中輸入2021/3/1,下拉填充到2021/3/31。根據(jù)圖4所介紹的操作在Ⅰ列設(shè)置為周顯示,然后依次將本月雙周的周日使用黃色進(jìn)行填充(圖7)。
接著選中11:J31區(qū)域中的數(shù)據(jù),依次點(diǎn)擊“數(shù)據(jù)一排序”,在彈出的對(duì)話框中,“排序依據(jù)”選擇“單元格顏色”,“次序”選擇“黃色”,點(diǎn)擊“確定”按鈕退出。再定位到E2單元格,將公式更改為“=WORKDAY.1NTL(C2,B2-1,17,$J$1:$J$2)”,參數(shù)17表示僅周六休息,J1:J2則是雙周的周日,將其作為特殊假期處理,最后下拉填充公式即可(圖8)。