2011年6月10日 星期五

Excel-產生多個範圍的亂數值

在 Excel 中,如果想要產生多個範圍的亂數,例如:產生1~40, 101~140, 200~240的亂數,該如何處理?

因為這是三組範圍為0~40的亂數,試試以下公式:

(1) 儲存格B2:{=LARGE(ROW($1:$40)+{0,100,200},INT(RAND()*120+1))}

(2) 儲存格B2:{=SMALL(ROW($1:$40)+{0,100,200},INT(RAND()*120+1))}

這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵。將儲存格B2複製到儲存格B2:F4。

ROW($1:$40)+{0,100,200}:產生1~40, 101~140, 200~240的數值。

INT(RAND()*120+1)):產生1~120的亂數(40+40+40=120)。

公式(1) =LARGE({1,101,201;2,102,202; 3,103,203; … ; 40,140,240},亂數值)

透過LARGE函數,可由亂數值抓取其中一個數值。

利用相同原理,如果要產生a~z, A~Z的隨機亂數字母,該如何處理?

儲存格B6:{=CHAR(LARGE(ROW($1:$26)+{64,96},INT(RAND()*52+1)))}

儲存格B6:{=CHAR(SMALL(ROW($1:$26)+{64,96},INT(RAND()*52+1)))}

這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵。將儲存格B6複製到儲存格B6:F8。

ROW($1:$26)+{64,96}:因為A的ASCII碼為65、a的ASCII碼為97,所以先產生65~90和97~122的數字。

LARGE(ROW($1:$26)+{64,96},INT(RAND()*52+1):可以隨機抓取52個字母中的其中一個。

透過CHAR函數,可以將ASCII碼轉成字元。

沒有留言:

張貼留言

好康東東