作者ddqueen (呼~呼~叔叔覺得妳好可愛~)
看板Office
標題[算表] 隨機亂數不重覆的函數寫法
時間Mon Jun 22 19:14:53 2020
軟體:Excel
版本:2003
大家好,
在Sheet1中的A1,我寫了個函數 =RANDBETWEEN(0,MAX(Sheet2!A:A))
目前MAX(Sheet2!A:A))是141,未來還會再增加。
問題來了,我把Sheet1中A1往下拉到A80,的確A1到A80中每個儲存格都會跑
從0到MAX(Sheet2!A:A)這數字間的亂數,可是會有重覆的情況發生。
故請教
(1)我想要這些儲存格中的亂數都不會重覆,函數要怎麼寫?
(2)目前我是把函數從A1拉到A80,未來不一定到A80,可能少,可能多。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.240.71 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1592824495.A.303.html
2F:→ soyoso: 有可能少或多的話,設個儲存格鍵入亂數的數量,判斷列號是 06/22 20:27
3F:→ soyoso: 否在數量內,列號函數row 06/22 20:27
抱歉,可能我說的不夠仔細,所以有誤會。Sheet2的A1是0,A2是1,A3是2,…以下依序
排列。
Sheet1的A1我的函數是=RANDBETWEEN(0,MAX(Sheet2!A:A)) 然後下拉到A80。
因為Sheet2的A行全部都是整數,所以RANDBETWEEN(0,MAX(Sheet2!A:A)) 跑出來的數字
也是整數,而且會重複。
Sheet2的圖
https://imgur.com/ReQ5jiT
Sheet1的圖
https://imgur.com/bN4iuGD
因為Sheet2的原本的法條順序,我想用亂數的順序,所以我Sheet1的A1寫成
RANDBETWEEN(0,MAX(Sheet2!A:A)) 後,
Sheet1的B1寫成=INDEX(Sheet2!A:B,MATCH(A1,Sheet2!A:A,0),2)
這樣子我就可以得到以隨機順序排列的法條,可是結果發現Sheet1的A行的亂數會重複。
我想要的是,用隨機順序排列的法條,可是不要重覆……。
可以請您再幫我看看嗎?
※ 編輯: ddqueen (114.36.240.71 臺灣), 06/23/2020 12:29:04
4F:→ soyoso: 沒有誤會啦,我回文就是在產生不重覆的整數亂數 06/23 12:32
5F:→ soyoso: 回文連結內的a欄就為不重覆的部分,c欄視為輔助欄就可以 06/23 12:34
6F:→ soyoso: 要應用到原po檔案的話,sheet1的a欄就以函數rank,那輔助 06/23 12:36
7F:→ soyoso: 欄rand()的部分就看要設於哪欄的儲存格內,函數rank再調整 06/23 12:37
8F:→ soyoso: 另外,因為亂數有要0值,rank(..)則減1 06/23 13:12
了解了,謝謝您。
※ 編輯: ddqueen (114.36.240.71 臺灣), 06/23/2020 14:30:44