網友問到:如果有一個員工的名冊,想要用其製作一個亂數排班表,其中同一天的員工姓名不能有重覆的現象。
因為亂數產生,所以會用到「反覆運算」,因此要先選取[檔案/選項],在[公式]標籤下勾選「啟用反覆運算」,並將最高次數設定為「5,000」(數值越大,運算時間越長)。
先選取儲存格A1:A9,按一下 Ctrl+Shift+F3 鍵,定義名稱:員工。
儲存格D2:=IF(COUNTIF($D2:$I2,D2)>1,INDEX(員工,INT(RAND()*8+1),),D2)
INT(RAND()*8+1):產生 1~8 的亂數值(員工有 8 名)。
INDEX(員工,INT(RAND()*8+1),):利用 INDEX 函數以查表方式查得員工姓名。
COUNTIF($D2:$I2,D2)>1:判斷儲存格D2的內容在儲存格D2:I2範圍中的個數,如果超過 1,表示有重覆,則重新再產生。因為已經設定反覆運算 5,000 次,重覆的機會應該很低(無法百分之百肯定不重覆)。
複製公式的方式:
1. 拖曳儲存格D2右下角的控制點,向下複製到儲存格D32。(儲存格D2:D32為被選取的狀態)
2. 拖曳儲存格D32右下角的控制點,向右複製到儲存格D2:I32。
每做一次複製的動作,Excel 就會重新運算一次。(可以產生不同的排班表)
由上圖右側的統計表可得知,這個公式的結果,每個人出現的次數並不平均。(看網友如何運用了!)
文章標籤
全站熱搜

*****
*****
*****
專家大大您好: 有類以排班問題想跟您請教 我有ABCDEF六人 每天排二個班,每班二人出席,人不能重復 請問:要如何排才能每次六人都平均有機會和另五人排到班 而且六個人的總出席數要一樣呢 頭大的我,感激不盡謝謝
您好: 我也有排班的問題 因應一例一休,有9個同仁要排班 A班1位、B班6位、C班2位 要如何用excel排班呢 謝謝您^^
專家大大您好: 有類以排班問題想跟您請教 我有5六人 每天排二個班,每班二人出席,有固定早班、固定晚班、1個輪班人 請問:要如何排才能每次五人都平均有機會和另五人排到班 而且五個人的總出席數要一樣呢