昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-10-16, 05:21:48
世界展望會助學計劃
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: Wink有贊助本論壇經營的會員,請務必來信通知小誌,這樣才能為您更新會員群組喔!!


+  麻辣家族討論區
|-+  MS Office 系列
| |-+  EXCEL
| | |-+  Excelㄧ般區 (版主: gong, bosco_yip)
| | | |-+  介紹亂數
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 向下 列印
作者 主題: 介紹亂數  (閱讀 2220 次)
沙拉油
台灣水電工
尊貴會員
*
離線 離線

會員性別: 男
文章: 308


個人網站
介紹亂數
« 於: 2005-03-29, 20:51:56 »

Excel 內建了一個可以產生亂數的函數 RAND
當你在儲存格內輸入了 =RAND() 時可以傳回一個大於等於 0 且小於 1 的隨機亂數。
而我們可以利用這個函數來產生我們所需要的整數亂數。

例如:要產生 1∼10 的隨機整數時則可以輸入公式 =INT(RAND()*10)+1
你可以把這個公式看成我們要亂數產生從1開始的10個數字

所以當你要產生一個指定區間的亂數時,例如產生 101~200 的亂數就可以將公式輸入成 =INT(RAND()*100)+101 ,這樣就可以產生我們所指定的亂數產生從101開始的100個數字,也就是101∼200間的數字。

如果你覺得上述的方法要產生指定區間的亂數不好記的話,還有一個函數比較容易記得,那就是 RANDBETWEEN
它的語法是 RANDBETWEEN(bottom,top) ,如要產生 101~200 的亂數就輸入 =RANDBETWEEN(101,200),這個函數就比較好記了吧!?
不過 RANDBETWEEN 是分析工具箱的函數,你必須先安裝增益集「分析工具箱」才可以使用這個函數。
安裝步驟: 工具 >> 增益集 >> 勾選分析工具箱 >> 確定。

若要重新產生亂數,按一下鍵盤上的功能鍵 F9 即可。
已記錄

沙拉油
台灣水電工
尊貴會員
*
離線 離線

會員性別: 男
文章: 308


個人網站
Re: 介紹亂數
« 回覆文章 #1 於: 2005-03-29, 20:59:19 »

如果你是要產生不重複的指定區間亂數那就得使用VBA了。
下列的程序可以在 A1:A5 產生 11~20 的亂數,而且不會重複。

程式碼:
Sub 亂數不重複()

Const rnd_start = 11 '亂數啟始值
Const rnd_end = 20 '亂數結束值
Const cell_start = 1 '要產生亂數的儲存格啟始列
Const cell_end = 5 '要產生亂數的儲存格結束列
Const Mycol = "A" '要產生亂數的儲存格欄

Dim Buf_rnd As Long '用來暫時存放亂數值,等比對沒有重複後才存入儲存格
Dim i As Long
Dim j As Long

If rnd_end - rnd_start < cell_end - cell_start Then
MsgBox "產生不重複的亂數區間不可以比要產生亂數的儲存格的數值還要少。"
Exit Sub
End If

'產生亂數
For i = cell_start To cell_end
1 Buf_rnd = Int(rnd() * (rnd_end - rnd_start + 1)) + rnd_start
'如果不是第1個儲存格就要往前比對。
If i > cell_start Then
For j = cell_start To i - 1
'如果重複了就跳到 1 重新產生亂數。
If Buf_rnd = Range(Mycol & j).Value Then GoTo 1
Next j
End If
Range(Mycol & i).Value = Buf_rnd
Next i

End Sub

您可以在使用亂數產生器之前先呼叫 Randomize 陳述式來對亂數產生器做初始化的動作。

關於Randomize的解釋可以參考VBA內的說明較為詳細。
已記錄

charce
中學生
*
離線 離線

文章: 12



Re: 介紹亂數
« 回覆文章 #2 於: 2005-04-09, 21:47:07 »

實際實作了不重複亂數的成語測驗題庫

在取50個亂數後罝於A欄,用vlookup在B欄對應相關內容
在執行亂數巨集後,
B欄每次總會有一、二筆資料呈現 #N/A (不知打對嗎?)
而且每一次都是不同的地方。

請教一下,這是那一出錯了,可以查得出來嗎? 謝謝!

PS.補充說明

我的SHEET1是成語資料庫
A欄為流水號
B欄為成語

我的SHEET2為題目卷
A欄為亂數選出的編號
B欄為對應A欄的成語
已記錄

努力學習EXCEL中,請為我加油!
yem
高中生
*
離線 離線

文章: 110



Re: 介紹亂數
« 回覆文章 #3 於: 2005-04-09, 22:16:11 »

如果你是要產生不重複的指定區間亂數那就得使用VBA了。


不重複的指定區間亂數用函數也可達成,原理十分簡單哦!!各位可以先猜猜看,

提示:只須2個很普通的函數+ 一行輔助欄

如附件:

[附件已被管理員刪除]
已記錄

What doesn't kill you will only make you stronger
charce
中學生
*
離線 離線

文章: 12



Re: 介紹亂數
« 回覆文章 #4 於: 2005-04-10, 11:53:38 »

哇!
只用簡單的兩個函數

RAND 和 RANK就可以

利害!利害!

真是妙招!
« 最後編輯時間: 2005-04-10, 11:57:41 由 charce » 已記錄

努力學習EXCEL中,請為我加油!
頁: [1] 向上 列印 
« 上一篇主題 下一篇主題 »
自訂搜尋
跳到:  

本頁花了 0.336 秒, 以及 20 次的資料庫查詢.