我需要利用1-99的數字,然後隨機抽出64個號碼,
我在Excel裡面設定一個函數=1*RAND()*98
但是出現的隨機亂數卻會有出現某些相同的數字,
想請問我該如何處理,才不會有相同的數字出現??
可以的話儘量使用函數來設定,
需要用到vb或是巨集,希望可以提供完整的內容,謝謝你們!!
2005-01-08 20:24:18 · 3 個解答 · 發問者 ? 3 in 電腦與網際網路 ➔ 軟體
如果不想用到VBA或巨集,只要利用Excel工作表的特性及函數的話,有一個簡單的方法:
-----------------------------------------------------
1)在A1儲存格輸入公式 =RAND()
將A1儲存格的公式複製到 A2..A99
2)在B1儲存格輸入公式 =RANK(A1,$A$1:$A$99,1) -->{注意是RANK不是RAND}
將B1儲存格的公式複製到 B2..B99
3)在C1儲存格輸入公式 =MATCH(ROW(B1),$B$1:$B$99,0)
將C1儲存格的公式複製到 C2..C64 -->{注意是到C64不是到C99}
作出來的工作表應該是像下面這個樣子:
0.446608373 48 93
0.352162082 42 67
0.795138552 75 35
: : :
0.826942602 83 76
: :
0.814345920 79
0.902604046 95
第C行的64個數字,就是從1到99隨機抽出的64個號碼。
-----------------------------------------------------
說明:第A行的99個亂數,可以看做是座號1~99的學生各自亂數抽籤;第B行將各個學生抽到的亂數由小到大分配一個號碼牌;第C行將號碼牌前面64位的學生的座號列出來。這樣列出來的64個數字絕對是1到99的隨機亂數,而且不會重複。
2005-01-10 10:53:51 補充:
回發問者評價中的問題:要將那64個數字直接顯示在8*8框框內當然也可以---步驟1和2同上;將步驟3的公式輸入到8*8的框框內,只要將公式中的ROW(B1)改成1~64就可以了。
2005-01-09 18:41:12 · answer #1 · answered by d 4 · 0⤊ 0⤋
A1輸入=RAND() 然後 , COPY A1TO A2..A99
B1輸入=RANK(A1,A$1:A$99,ROW()) 然後 , COPY B1TO B22..B64
即可求出 64個 1-99 間數字
2006-03-16 17:54:44 · answer #2 · answered by Bill Yen 5 · 0⤊ 0⤋
你可以加
IF XXX THEN XXX
意思是取出一個剩97個再從97個取出一個
2005-01-09 05:16:03 · answer #3 · answered by 阿軒 4 · 0⤊ 0⤋