1樓:匿名使用者
1、利用一個輔助列比如c3到c12,在c3輸入公式:=rand()向下拉到c12
2、然後在b3利用排序函式得到1~10的不重複數字,b3輸入公式:=rank(c3,$c$3:$c$12)
向下拉到b12。
如果你覺得c列礙眼,可以把c列隱藏,也可以先複製b列,再在b列選擇性貼上/數值/確定,就可以把c列刪除了。甚至還有一個更簡單的辦法:把輔助列建在其他工作表,比如在sheet2的c3(也可以其他單元格,但後面公式要相應更改)輸入公式:
=rand()向下拉到c12,然後在你的**sheet1的b3輸入公式:=rank(sheet2!c3,sheet2!
$c$3:$c$12)向下拉到b12
2樓:匿名使用者
這種類似洗牌的,不能用迴圈產生隨機數,然後判斷重複再重新取的方法,那樣有可能死迴圈。
下面**的基本思路就是,將產生的隨機數剔除,然後在剩下的數裡面取。
private function myfunction13() '無重複隨機數
dim i as long, arr() as long, s as long
randomize
redim arr(1 to 10)
for i = 1 to 10 '初始化
arr(i) = i
next
for i = 3 to 12 '行範圍
s = int(rnd() * ubound(arr) + 1) '產生隨機數
range("b" & i).value = arr(s)
arr(s) = arr(ubound(arr)) '將產生的隨機數和陣列最後一個元素交換
if ubound(arr) = 1 then exit for '如果只有一個元素 退出
redim preserve arr(1 to ubound(arr) - 1) '將陣列最後一個元素剔除
next
msgbox "完成!"
end function
3樓:四面生風
第一個隨機數,就直接從1到10中抽,即:
b3=int(rand()*10)+1
從第二個隨機數開始,使用以下的陣列公式(按組合鍵ctrl+shift+enter完成輸入):
b4=small(if(isna(match(row($1:$10),b$3:b3,0)),row($1:$10),""),int(rand()*(13-row()))+1)
將公式向下拉到b12。
4樓:是敬
用vba做一個隨機抽取程式就可以,前幾天我幫別人做過一個公司**程式,應該跟你這個差不多
如何在excel**中設定隨機不重複數字?比如在1-100個數字中隨機出現 ,且不重複?
5樓:
這個要用vba**的,如果需要,可以聯絡我。
excel中如何輸入角度符號,在EXCEL中怎麼輸入表示角度的那個小圈圈呀?
41443 41444 41445 41423 excel要輸入上述符號,在按住alt鍵的同時,輸入上述編碼數字 1 計算 excel中,對於角度的運算是用 弧度 的,所以計算時要注意,若是 角度 則要進行轉換,入sin30 公式應為 sin 30 180 pi 結果為0.5。2 輸入和顯示 exc...
在Excel中,在單元格中輸入公式時,輸入的符號是
肯定是 啊 公式的標誌就是第一個字元是 要想在a1中計算a1 b1 c1 d1,應該在a1中這樣寫 b1 c1 d1 在excel中輸入公式時,首先要在單元格中輸入什麼符號?在excel中輸入公式之時,首先要在單元格中輸入 比如 a1 b1 則結果求得a1和b1的各值 sum a a 則結果為列a中...
怎樣在excel中輸入希臘字母,excel如何輸入希臘字母
插入 符號 在右上角的子集選取 希臘字元 然後插入就可以了!輸入希臘字母可以用輸入法自帶的功能,一般輸入法都有軟鍵盤功能,如果你實在找不到,可以在word裡用選單 插入,符號裡找到,然後複製貼上到excel裡 excel如何輸入希臘字母 你黏過去吧.字母是要在輸入法裡面找的.excel裡面怎麼輸入希...