English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我需要利用1-99的數字,然後隨機抽出64個號碼,
我在Excel裡面設定一個函數=1*RAND()*98
但是出現的隨機亂數卻會有出現某些相同的數字,
想請問我該如何處理,才不會有相同的數字出現??

可以的話儘量使用函數來設定,
需要用到vb或是巨集,希望可以提供完整的內容,謝謝你們!!

2005-01-08 20:24:18 · 3 個解答 · 發問者 ? 3 in 電腦與網際網路 軟體

3 個解答

如果不想用到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

fedest.com, questions and answers