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で実行。


コメント