2011年5月14日 星期六

Excel-亂數排座位表

在 Excel 取得一個座號和姓名的名條,如何使用這個資料表來亂數產生座位表呢?假設座位共有五排,每排有10人。

首先在C欄中產生亂數,輸入公式:

儲存格C2:=RAND()

複製儲存格C2,貼至儲存格C2:51。

利用D欄來觀察:

儲存格D2:=INDEX($B$2:$B$51,MATCH(LARGE($C$2:$C$51,ROW(1:1)),$C$2:$C$51,0))

LARGE($C$2:$C$51,ROW(1:1))可以找出亂數中的最大值(參數ROW(1:1)=1)。

MATCH(LARGE($C$2:$C$51,ROW(1:1)),$C$2:$C$51,0)會傳回這些亂數中最大值位於第幾個。

INDEX($B$2:$B$51,MATCH(LARGE($C$2:$C$51,ROW(1:1)),$C$2:$C$51,0))利用查表方式查得姓名。

現在要來產生座位表!

儲存格G1=INDEX($B$2:$B$51,MATCH(LARGE($C$2:$C$51,(ROW(1:1)-1)*5+COLUMN(A:A)),$C$2:$C$51,0))

將儲存格G1複製到儲存格G1:K10。

公式中的ROW(1:1)-1)*5+COLUMN(A:A))是為了將儲存格G1:K1設定為1,2,3,4,5,而G2:K2設定6,7,8,9,10,依次類推。

儲存格G1:ROW(1:1)-1)*5+COLUMN(A:A))=(1-1)*5+1=1

儲存格K1:ROW(1:1)-1)*5+COLUMN(E:E))=(1-1)*5+5=5

儲存格G2:ROW(2:2)-1)*5+COLUMN(A:A))=(2-1)*5+1=6

儲存格K2:ROW(2:2)-1)*5+COLUMN(E:E))=(2-1)*5+5=10

如此即可將最大值到最小值依序傳回儲存格G1:K10。

只要每按一次 F9 鍵,即可產生一個新的座位表。

沒有留言:

張貼留言

檢視其他文章

好康東東