EXCEL值日生循環排序

想請問EXCEL高手~

要怎麼依照每月日期設定每天的值日生?
條件:
1.每天都有1位安排掃地;每月1個拖地
2.只要當月【拖地】就不安排【掃地】
3.依照每月的天數/掃地的人去重複排序(為AAABBB不是ABABAB的排序方式)

例如
員工ABC三位,C這個月拖地
則112年2月的排班表
112/2/1~2/14掃地值日生為A
112/2/15~2/28掃地值日生顯示為B

謝謝各位!
2023-05-29 18:03 發佈
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:E367儲存格。







錦色如月,子耀光芒。
mika_85
mika_85 樓主

員工人數超過三個也可以嗎?要輪值的總共有七個我改了之後提示框顯示輸入的引數太多[淚]

2023-05-30 11:09
錦子 wrote:
E2:
=IF(VLOOKUP...(恕刪)


原本的想法是
當我在A1輸入本月拖地的(A)之後每天值日生的表則扣掉A1的值由剩下的(B)~(G)去以每月天數/6人去輪替

拖地A1:A員工

掃地:
4/1~4/5:B員工
4/6~4/10:C員工
4/11~4/15:D員工
4/16~4/20:E員工
4/21~4/25:F員工
4/26~4/30:G員工
第幾個人打掃可以用算的
G1:
=IF($A$1=H1,100,(ROW()-1)*ROUND(DAY(EOMONTH(D2,0))/6,0)+1)
向下複製G2:G7儲存格
點取常用> 排序與篩選>從最小到最大排序
將數字由小到大排,方便填入人名,每個月只要A1儲存格變動,就要做一次。
E2:
=VLOOKUP(DAY(D2),$G$1:$H$7,2)
向下複製E2:E31儲存格,若二月則會最後一個人只有3或4天,月有31天的最後一個人會多一天。




錦色如月,子耀光芒。
錦子 wrote:
G1:=IF($A$1...(恕刪)


G1=IF($A$1=H1,100,(ROW()-1)*ROUND(DAY(EOMONTH(D2,0))/6,0)+1)
false的部分好像怪怪的
A1=關羽,前面應該顯示諸葛亮的天數會出現#N/A
A1=張飛~孫權,則會顯示上一個人掃地天數過多
只有A1=諸葛亮的天數分配及排序都是正確的
錦子

G欄儲存格打完公式,要將G欄與H欄資料依G欄資料由小到大排序。以後每個月只要打好A1儲存格,就要將G欄與H欄再排序一次。E欄資料才會正確。

2023-05-31 18:07
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?