在 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 鍵,即可產生一個新的座位表。
留言列表