주어진 평균과 표준 편차를 기반으로 Excel에서 난수 생성하기
특정 평균과 표준 편차를 가진 난수 세트를 생성하는 것은 통계 시뮬레이션, 알고리즘 테스트 또는 금융, 공학 및 교육 분야의 프로세스 모델링과 같은 영역에서 일반적인 요구사항입니다. 그러나 Excel에는 주어진 평균과 표준 편차에 맞춰 조정된 난수 목록을 즉시 생성할 수 있는 직접적인 내장 함수가 제공되지 않습니다. 만약 특정 통계적 특성을 가진 난수 데이터를 자주 생성해야 한다면, 이를 수행하는 방법을 아는 것이 작업 효율성과 데이터 품질을 크게 향상시킬 수 있습니다.
이 튜토리얼에서는 지정한 평균과 표준 편차를 기반으로 난수를 생성하는 실용적인 방법을 소개합니다. 여기에는 단계별 지침, 수식 매개변수에 대한 설명, 그리고 오류 방지 및 문제 해결을 위한 전문가 팁이 포함됩니다. 또한, 이 과정을 자동화하거나 대규모 데이터 세트를 효율적으로 생성해야 하는 사용자를 위한 VBA 매크로 솔루션도 제공합니다.
VBA 코드 - 지정된 평균과 표준 편차로 난수 생성하기
주어진 평균과 표준 편차로 난수 생성하기
Excel에서는 표준 함수들의 조합을 적용하여 원하는 평균과 표준 편차에 맞는 난수 세트를 생성할 수 있습니다. 작은 규모에서 중간 규모의 데이터 세트나 간단하고 즉흥적인 필요에 적합한 솔루션을 위해 다음 단계를 따르세요:
먼저, 목표 평균과 표준 편차를 두 개의 빈 셀에 입력하세요. 명확성과 조직을 위해서, B1 셀에 필요한 평균값을, B2 셀에 필요한 표준 편차 값을 입력한다고 가정하겠습니다. 스크린샷 참고:
초기 난수 데이터를 생성하려면 B3 셀로 이동하여 다음 수식을 입력하세요:
=NORMINV(RAND(),$B$1,$B$2)
수식을 입력한 후, 필요한 난수 데이터 세트의 크기만큼 채우기 핸들을 드래그하세요. 각 셀은 지정된 평균과 표준 편차에 따라 값이 생성됩니다.
팁: 수식 =NORMINV(RAND(),$B$1,$B$2)에서:
- RAND()는 워크시트가 다시 계산될 때마다 0과 1 사이의 다른 난수 확률을 생성합니다.
- $B$1은 지정한 평균값을 참조합니다.
- $B$2는 원하는 표준 편차를 참조합니다.
=NORM.INV(RAND(),$B$1,$B$2)
사용하는 것을 고려하세요. 이는 기능적으로 동일하지만 업데이트된 함수 이름을 반영합니다. 생성된 숫자들이 의도한 평균과 표준 편차와 통계적으로 유사한지 확인하려면, 다음 수식을 사용하여 생성된 샘플의 실제 값을 계산하세요. D1 셀에서 샘플 평균을 계산하려면:
=AVERAGE(B3:B16)
D2에서 샘플 표준 편차를 계산하려면: =STDEV.P(B3:B16)


팁:
- 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
줄을 주석 처리하거나 제거하세요. - 매크로는 선택한 출력 범위에 있는 기존 데이터를 덮어쓰므로, 필요한 경우 비어있는 영역을 선택하세요.
- 부적절한 값을 입력한 경우 (예: 음수 또는 0 표준 편차), 매크로는 진행되지 않고 경고 메시지가 표시됩니다.
관련 문서:
최고의 오피스 생산성 도구
? | Kutools AI Aide: 지능형 실행, 코드 생성, 사용자 정의 수식 작성, 데이터 분석 및 차트 생성, Kutools 함수 호출을 기반으로 데이터 분석 혁신… |
인기 기능: 중복 찾기, 강조 또는 식별 | 빈 행 삭제 | 데이터 손실 없이 열 또는 셀 결합 | 수식 없이 반올림 ... | |
슈퍼 LOOKUP: 다중 조건 VLookup | 다중 값 VLookup | 다중 시트 조회 | 퍼지 매치 .... | |
고급 드롭다운 목록: 빠르게 드롭다운 목록 만들기 | 종속 드롭다운 목록 | 다중 선택 드롭다운 목록 .... | |
열 관리자: 특정 개수의 열 추가 | 열 이동 | 숨겨진 열의 가시성 상태 전환 | 범위 및 열 비교 ... | |
주요 기능: 그리드 포커스 | 디자인 보기 | 향상된 수식 표시줄 | 통합 문서 및 시트 관리자 | 자동 텍스트 라이브러리 (Auto Text) | 날짜 선택기 | 데이터 병합 | 셀 암호화/해독 | 목록으로 이메일 보내기 | 슈퍼 필터 | 특수 필터 (굵은 글꼴/이탤릭체/취소선 필터링...) ... | |
최고의 15가지 도구 모음: 12개의 텍스트 도구 (텍스트 추가, 특정 문자 삭제, ...) | 50+ 차트 유형 (간트 차트, ...) | 40+ 실용적인 수식 (생일을 기반으로 나이 계산, ...) | 19개 삽입 도구 (QR 코드 삽입, 경로에서 그림 삽입, ...) | 12개 변환 도구 (단어로 변환하기, 통화 변환, ...) | 7개 병합 및 분할 도구 (고급 행 병합, 셀 분할, ...) | ... 그리고 더 많은 기능들 |
Kutools for Excel로 엑셀 스킬을 강화하고 지금까지 경험하지 못한 효율성을 체험하세요. Kutools for Excel은 생산성을 향상시키고 시간을 절약할 수 있는 300개 이상의 고급 기능을 제공합니다. 가장 필요한 기능을 얻으려면 여기를 클릭하세요...
Office Tab은 탭 인터페이스를 Office에 제공하여 작업을 훨씬 쉽게 만듭니다.
- Word, Excel, PowerPoint에서 탭 편집 및 읽기를 활성화하세요.
- 새 창 대신 동일한 창의 새 탭에서 여러 문서를 열고 생성하세요.
- 생산성을 50% 향상시키고 매일 수백 번의 마우스 클릭을 줄입니다!