close

4272

Excel如何將值日生循環排序-

如果我們要設計整年度每天的值日生?條件如下:

1.每天都有安排一位員工掃地,每月安排一位員工拖地。

2.只要當月安排拖地的員工,就不安排其去掃地。

3.依照每月的天數/掃地的人去重複排序。

image

例如:員工有劉備、關羽、張飛三位,張飛這個月拖地,則112年1月的排班表,112/1/1~1/15掃地值日生為劉備、112/1/16~1/31掃地值日生為關羽。

這個公式不複雜但LOLO長,因為要針對三位員工來判斷。

利用MONTH函數抓取D欄儲存格的日期月份(MONTH(D2)),再利用VLOOKUP函數與A欄月份資料比對傳回其B欄資料(VLOOKUP(MONTH(D2),$A$2:$B$13,2,0))。

如果是張飛,則將前5天安排劉備掃地,先判斷D欄日期(DAY(D2))是否為該月份前半段日期(INT(DAY(EOMONTH(D2,0))/2)),如果是則填入劉備,否則填入關羽。

如果是劉備,則將前5天安排劉備掃地,先判斷D欄日期(DAY(D2))是否為該月份前半段日期(INT(DAY(EOMONTH(D2,0))/2)),如果是則填入張飛,否則填入關羽。

如果是關羽,則將前5天安排劉備掃地,先判斷D欄日期(DAY(D2))是否為該月份前半段日期(INT(DAY(EOMONTH(D2,0))/2)),如果是則填入劉備,否則填入張飛。

點取E2儲存格,輸入公式:「=IF(VLOOKUP(MONTH(D2),$A$2:$B$13,2,0)="張飛",IF(DAY(D2)<= INT(DAY(EOMONTH(D2,0))/2),"劉備","關羽"),IF(VLOOKUP(MONTH(D2),$A$2:$B$13,2,0)="劉備",IF (DAY(D2)<=INT(DAY(EOMONTH(D2,0))/2),"張飛","關羽"),IF(VLOOKUP(MONTH(D2),$A$2:$B$13,2, 0)="關羽",IF(DAY(D2)<=INT(DAY(EOMONTH(D2,0))/2),"劉備","張飛"))))」後,向下複製到E3:E366。

image

image

image

 


arrow
arrow
    創作者介紹

    錦子老師 發表在 痞客邦 留言(0) 人氣()