KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

在 Excel 中根據指定的平均值與標準差產生隨機數字

作者修改日期

在統計模擬、演算法測試,以及金融、工程與教育等領域的流程建模中,經常需要產生符合特定平均值與標準差的隨機數字集。然而,Excel 並未內建可直接生成同時滿足指定平均值與標準差之隨機數列的函數。若您經常需建立具備特定統計特性的隨機測試資料,掌握此方法將顯著提升您的工作效率與資料品質。

本教學將介紹實用方法,協助您根據指定的平均值與標準差生成隨機數字,並提供詳盡的逐步操作說明、公式參數解析,以及專家級的錯誤預防與排除技巧。此外,針對需要自動化處理或高效生成大型資料集的使用者,我們也提供專用的 VBA 巨集解決方案。

根據指定的平均值與標準差產生隨機數字

VBA 程式碼-產生符合指定平均值與標準差的隨機數字


藍色右向箭頭氣泡根據指定的平均值與標準差產生隨機數字

在 Excel 中,您可以結合標準函數,輕鬆建立符合指定平均值與標準差的隨機數字集。請依照下列步驟操作——此方法特別適合小型至中型資料集,或臨時、快速的應用需求:

1. 首先,將目標平均值與標準差分別輸入兩個獨立的空白儲存格。為求清晰與條理,假設您將所需平均值存於 B1 儲存格,所需標準差存於 B2 儲存格。請參見截圖:
 在兩個空白儲存格中輸入平均值與標準差

2. 若要建立初始的隨機資料,請移至儲存格 B3 並輸入下列公式:

=NORMINV(RAND(),$B$1,$B$2)
輸入公式後,向下拖曳填滿控制點,即可快速產生所需數量的隨機資料列;每個儲存格將依據您指定的平均值與標準差,自動生成對應數值。
輸入公式並填滿至其他儲存格

提示:在公式 =NORMINV(RAND(),$B$1,$B$2) 中:

  • RAND()每次工作表重新計算時,都會產生一個介於 0 與 1 之間的全新隨機數值。
  • $B$1代表您指定的平均值。
  • $B$2指的是您所設定的標準差。
針對較新版本的 Excel(2010 及之後版本),建議使用 =NORM.INV(RAND(),$B$1,$B$2),功能相同,但採用更新後的函數名稱。

3. 若要驗證所產生的數字在統計上是否接近您預期的平均值與標準差,請使用下列公式計算樣本的實際統計值。在儲存格 D1 中,輸入以下公式以計算樣本平均值:

=AVERAGE(B3:B16)
在 D2 儲存格中,使用下列公式計算樣本標準差:
=STDEV.P(B3:B16)
套用此 AVERAGE 函數計算平均值
套用此 STDEV.P 函數計算標準差

提示:

  • B3:B16 僅為範例範圍,請根據您在步驟 2 中產生的隨機數量調整此範圍。
  • 根據大數法則,樣本規模愈大,實際的平均值與標準差就會愈接近您指定的數值。

4. 若要進一步微調數列,使其精準符合您指定的平均值與標準差,請先將初始的隨機數值進行標準化。在 D3 儲存格中,輸入下列公式:

=$B$1+(B3-$D$1)*$B$2/$D$2
向下拖曳填滿控制點,涵蓋所有包含隨機數字的列。此公式將標準化您的原始數值,並精確縮放至符合儲存格 B1 與 B2 所指定的平均值與標準差。
輸入公式以產生真實的亂數

提示:

  • B1 就是您需要的平均值。
  • B2 就是您需要的標準差。
  • B3 為原始的隨機數值。
  • D1 為這些原始隨機數值的平均值。
  • D2 是這些原始隨機數值的標準差。

您現在可透過重新計算最終數值集的平均值與標準差,確認其是否符合您的品質保證與文件記錄需求。

5. 在 D17 儲存格中,使用下列公式計算最終隨機數字集的平均值:

=AVERAGE(D3:D16)
接著在 D18 儲存格中,使用下列公式計算標準差:
=STDEV.P(D3:D16)
使用公式檢查最終亂數序列的平均值與標準差

提示:D3:D16 指的是您最終隨機數字所在的範圍。

疑難排解:

  • 若出現 #VALUE! 錯誤,請仔細檢查所有參照的儲存格範圍,並確認公式未引用空白或無效的儲存格。
  • 若公式每次重新計算時數值持續變動,請選取最終的隨機數字並複製,再使用選擇性貼上>數值,即可防止後續自動更新。
  • 請注意,Excel 的隨機數產生器依賴於重新計算,因此在一致性至關重要時,務必儲存靜態結果。

VBA 程式碼-產生符合指定平均值與標準差的隨機數字

當您需要快速產生大量符合指定平均值與標準差的隨機資料時(尤其適用於重複性高、自動化或需大量處理的情境),VBA 巨集能提供省時高效的解決方案。只需執行一次,即可直接在您的活頁簿中建立完整的資料集,大幅減少手動重複操作,並有效降低因複製公式而產生錯誤的風險。

此方法適用於:

  • 自動生成用於模擬、壓力測試或教學示範的隨機資料集。
  • 需要以最少手動介入即可標準化輸出格式的情境。
  • 熟悉 Excel VBA 編輯器操作的使用者。

相較於公式方法,VBA 不僅能實現動態調整,還可無縫整合至更複雜的工作流程中;但請注意,巨集必須在您的活頁簿中啟用,且可能需明確儲存為支援巨集的 .xlsm 格式。

1. 在 Excel 功能區上,按一下開發人員工具(若未顯示,請透過)檔案 選項 自訂功能區 啟用),然後選取 Visual Basic。在 Visual Basic for Applications 視窗中,按一下插入 模組,並將下列程式碼複製到空白模組視窗中:

Sub GenerateRandomNumbersWithMeanStd()
    Dim outputRange As Range
    Dim meanValue As Double, stdDevValue As Double
    Dim numItems As Long, i As Long
    Dim xTitleId As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set outputRange = Application.InputBox("Select the output range", xTitleId, Type:=8)
    meanValue = Application.InputBox("Enter the mean value", xTitleId, "", Type:=1)
    stdDevValue = Application.InputBox("Enter the standard deviation", xTitleId, "", Type:=1)
    
    If outputRange Is Nothing Or meanValue = 0 Or stdDevValue = 0 Then
        MsgBox "Please ensure you have specified all required parameters.", vbExclamation, "KutoolsforExcel"
        Exit Sub
    End If
    
    numItems = outputRange.Count
    Randomize
    
    For i = 1 To numItems
        outputRange.Cells(i).Value = Application.WorksheetFunction.NormInv(Rnd, meanValue, stdDevValue)
    Next i
End Sub

2. 點擊執行按鈕執行按鈕(或按下 )F5)以啟動巨集。系統將提示您選取要輸出隨機數字的範圍(例如,選取 A1:A100 即可產生 100 個數值)。接著,請輸入所需的平均值與標準差,巨集便會自動以符合您規格的隨機數字填滿該範圍!

提示與疑難排解:

  • VBA 使用 Excel 的 NormInv 函數產生常態分佈數字——請務必確認您的 Excel 版本是否支援此函數;若使用較舊版本,可能需改用 NORMINV
  • 透過 Randomize 設定隨機種子,確保每次執行都能產生不同的結果。
  • 若您希望獲得可重現的結果,請註解或移除 Randomize 這一行。
  • 巨集將覆寫所選列表放置區域中的所有現有資料,因此如有需要,請務必選擇空白區域。
  • 若您輸入不適當的數值(例如負數或零作為標準差),巨集將立即停止執行,並顯示警告訊息。

相關文章:

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用