ExcelでA1:A100で正のランダムな値を入力し、平均が25となるようにしたい。標準偏差は5とします。しかしデータをひとつひとつ入力するのは時間がかかります。一括でランダムな値を入力したい
どのようにすれば良いでしょう
ChatGPT:
Excelで 平均が25、標準偏差が5の正のランダム値(A1:A100)を一括で生成するには、以下のような方法を使うと効率的です。
方法1:NORM.INV関数 + RAND関数
これは正規分布に従った乱数を作成する方法です。
手順:
セルA1に以下の数式を入力:
=MAX(0.01, NORM.INV(RAND(), 25, 5))
※ MAX(0.01, …) にしているのは、正の値(0より大きい)を保証するためです。
A1をA2:A100にコピー(または範囲A1:A100に数式を貼り付け)。
必要であれば、値だけに変換:
範囲A1:A100をコピー → 右クリック → 「値として貼り付け」。
補足:NORM.INVとは?
NORM.INV(RAND(), 平均, 標準偏差) は、平均と標準偏差に基づく正規分布の値をランダムに返します。
方法2:ExcelにVBA(マクロ)を使う(より柔軟)
Sub GenerateRandomNormalData()
Dim i As Integer
Dim mean As Double: mean = 25
Dim stdDev As Double: stdDev = 5
Dim val As Double
For i = 1 To 100
Do
val = WorksheetFunction.Norm_Inv(Rnd, mean, stdDev)
Loop While val <= 0
Cells(i, 1).Value = val
Next i
End Sub
Alt + F11でVBAエディタを開きます。
挿入 → モジュール → 上記コードを貼り付け。
F5で実行。
コメント
コメントを投稿