Excel 에서 할당된 확률에 따라 무작위 값을 생성하는 방법은 무엇인가요?
Excel 작업 중 특정 기본 확률을 반영하는 무작위 값을 생성해야 할 경우가 종종 있습니다。 예를 들어, 아래 스크린샷과 유사하게 여러 가능한 결과와 그에 해당하는 확률이 나열된 테이블이 있다고 가정해 보세요。
이러한 시나리오는 비즈니스 시뮬레이션, 프로젝트 모델링 및 교육 목적에서 흔히 발생하며, 무작위 선택이 데이터에 명시된 가능성 또는 빈도를 정확하게 표현하도록 하려는 경우입니다。
대표적인 요구 사항 및 사용 사례는 다음과 같습니다:
- 특정 답변이 더 높은 확률로 선택되는 설문 조사 응답이나 고객 선택을 시뮬레이션할 때。
- 확률 개념을 가르치기 위한 테스트 데이터셋 또는 무작위 추출을 생성할 때。
- 각 옵션에 알려진 확률이 있는 선택 프로세스를 자동화할 때。
- 결과에 특정 확률 분포가 필요한 게임 디자인 및 리스크 분석 시。
아래에서는 Excel 에서 할당된 확률에 따라 무작위 값을 생성하는 여러 가지 방법을 소개합니다。 여기에는 표준 수식 기반 기법, 고급 VBA 자동화, Excel 내장 데이터 분석 Toolpak 사용법이 포함됩니다。
확률에 따라 무작위 값 생성하기
Excel 은 지정된 확률에 따라 무작위 값을 생성하기 위한 접근 가능한 수식 기반 솔루션을 제공합니다。 이 방법은 빠른 작업에 적합하며 워크시트 내에서만 작동하고 특별한 설정이 필요 없습니다。
시작하기 전에 값이 한 열(A2:A8)에 나열되어 있고, 해당 확률(0 과 1 사이의 소수로 표현됨)이 다음 열(B2:B8)에 입력되어 있는지 확인하세요. 정확성을 위해 확률의 합계는 1 이 되어야 합니다。 이 솔루션은 관리 가능한 수의 값이 있는 테이블에 이상적입니다。
1.인접한 열(C2 부터 시작)에 누적 확률을 계산하는 다음 수식을 입력하세요:
=SUM($B$2:B2) 그런 다음 이 수식을 모든 값에 적용되도록 아래로 드래그하세요。 이렇게 하면 각 값에 대한 누적 범위가 생성되어 무작위 숫자를 특정 결과에 매핑하는 데 도움이 됩니다。
2.빈 셀(예: D2)에 확률 분포에 기반한 무작위 값을 반환하는 다음 수식을 입력하세요:
=INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&RAND())+1) Enter 키를 눌러무작위 값을 표시하세요。 F9 키를 누르거나(재계산)하거나 워크시트 데이터가 변경될 때마다 새로운 결과가 나타납니다。
팁 및 주의사항:
- B 열의 확률 합계는 정확히 1 이 되어야 합니다(퍼센트를 사용하는 경우 100% 이지만, 수식에서는 소수로 변환해야 함)。 이는 공정한 분포를 보장하기 위함입니다。
- 이 기법은 짧은 목록에 가장 적합합니다。 수십 개나 수백 개의 값이 있는 경우 성능이 저하되고 유지보수가 어려워질 수 있습니다。
- 여러 번 무작위 선택을 반복해야 하는 경우(예: 시뮬레이션 결과 배치 생성), 최종 수식을 아래나 옆의 범위로 복사하기만 하면 됩니다。
- 빈 행 및 범위 불일치에는 주의하세요。 그렇지 않으면 오류나 예기치 않은 결과가 발생할 수 있습니다。
오류 알림:#REF! 또는 #VALUE! 오류가 발생하면 누적 확률 열이 값의 길이와 일치하는지, 모든 확률이 유효한 숫자인지 확인하세요。

KUTOOLS AI 와 함께 엑셀의 마법을 경험하세요
- 스마트 실행: 간단한 명령어로 셀 작업을 수행하고, 데이터를 분석하며, 차트를 생성하세요。
- 사용자 지정 수식: 워크플로우를 간소화할 맞춤형 수식을 생성하세요。
- VBA 코딩: VBA 코드를 손쉽게 작성하고 적용하세요。
- 수식 해석: 복잡한 수식도 쉽게 이해하세요。
- 텍스트 번역: 스프레드시트 내에서 언어 장벽을 허물어 보세요。
VBA: 할당된 확률로 무작위 값 생성하기
더 많은 자동화가 필요하거나 대량의 무작위 값(예: 수천 개의 샘플)을 생성하려는 사용자의 경우, Excel VBA 는 워크시트 수식보다 더 빠르고 유연하게 작동하는 실용적인 솔루션을 제공합니다。 이 방법은 대규모 데이터셋 작업이나 시뮬레이션을 위한 대량 무작위 결과 생성 시 특히 효과적입니다。
1.개발자 도구로 이동하여>Visual Basic을 클릭한 후, VBA 창에서삽입>모듈을 선택하고 다음 코드를 모듈에 붙여넣으세요:
Sub GenerateRandomWithProbability()
Dim rngValues As Range
Dim rngProbs As Range
Dim n As Long
Dim i As Long
Dim cumProbs() As Double
Dim valList() As Variant
Dim randNum As Double
Dim resultRange As Range
Dim idx As Long
' On Error, ignore
On Error Resume Next
xTitleId = "KutoolsforExcel"
' Select values
Set rngValues = Application.InputBox("Select values range", xTitleId, Type:=8)
' Select probabilities
Set rngProbs = Application.InputBox("Select probabilities range", xTitleId, Type:=8)
' Number of random values to generate
n = Application.InputBox("Number of random values to generate", xTitleId, "10", Type:=1)
' Where to output
Set resultRange = Application.InputBox("Select output start cell", xTitleId, Type:=8)
If rngValues.Rows.Count <> rngProbs.Rows.Count Then
MsgBox "Values and probabilities range must be the same size.", vbExclamation
Exit Sub
End If
ReDim cumProbs(1 To rngValues.Count)
ReDim valList(1 To rngValues.Count)
' Calculate cumulative probabilities
cumProbs(1) = rngProbs.Cells(1, 1).Value
valList(1) = rngValues.Cells(1, 1).Value
For i = 2 To rngValues.Count
cumProbs(i) = cumProbs(i - 1) + rngProbs.Cells(i, 1).Value
valList(i) = rngValues.Cells(i, 1).Value
Next i
' Generate random results
For i = 1 To n
randNum = Rnd
For idx = 1 To UBound(cumProbs)
If randNum <= cumProbs(idx) Then
resultRange.Cells(i, 1).Value = valList(idx)
Exit For
End If
Next idx
Next i
End Sub 2.VBA 창에서
실행 버튼을 클릭하여 코드를 실행하세요。 순차적으로 값 범위, 확률 범위, 생성할 무작위 값 개수, 출력 시작 셀을 선택하라는 메시지가 표시됩니다。 매크로는 지정된 확률에 따라 대상 셀을 신속하게 무작위 값으로 채웁니다。
- 이 과정은 더 큰 데이터셋에도 반복할 수 있으며, 출력 열은 어떤 워크시트에서든 사용자 지정할 수 있습니다。
- 확률 범위의 합계가 1 에 매우 근접하지 않으면 코드가 분포를 왜곡할 수 있으므로, 항상 전제 조건을 검증하세요。
- 이 솔루션은 자동화된 샘플링, 시뮬레이션 및 재현 가능한 배치 생성에 적합합니다。
팁:값과 확률을 연속적이고 명확하게 정렬하세요。 VBA 작업은 실행 취소(Undo)가 불가능하므로 매크로 실행 전에 작업 내용을 저장하세요。
관련 문서:
- Excel 에서 중복 없는 난수를 생성하는 방법은 무엇인가요?
- Excel 에서 난수가 변경되지 않도록 유지하거나 중지하는 방법은 무엇인가요?
- Excel 에서 무작위로 '예‘ 또는 『아니오』를 생성하는 방법은 무엇인가요?
최고의 Office 생산성 도구
| 🤖 | KUTOOLS AI 도우미: 다음을 기반으로 데이터 분석 혁신하기:지능형 실행 | 코드 생성| 사용자 지정 수식 생성 | 데이터 분석 및 차트 생성| 향상된 함수 호출… |
| 인기 기능:찾기, 강조 표시 또는 중복 표시 | 빈 행 삭제 | 데이터 손실 없이 열 결합 또는 셀 제거 | 공식을 사용하지 않는 반올림... | |
| 슈퍼 LOOKUP:다중 조건 VLookup | 다중 값 VLookup | 여러 시트에서 VLookup | 퍼지 매치.... | |
| 고급 드롭다운 목록:드롭다운 목록 빠르게 생성 | 종속형 드롭다운 목록 | 다중 선택 드롭다운 목록.... | |
| 열 관리자:특정 수의 열 추가|열 이동|숨겨진 열의 표시 상태 전환|범위 및 열 비교... | |
| 주요 기능:그리드 포커스 | 디자인 보기 |향상된 수식 표시줄 | 워크북 및 시트 관리자 | 자원 라이브러리(자동 텍스트)| 날짜 선택기 | 워크시트 병합 | 암호화/셀 해독 | 목록으로 이메일 보내기 | 슈퍼 필터 | 특수 필터(굵은 글꼴이 있는 셀 필터링/기울임꼴/취소선。。。) 。。。 | |
| 상위 15 도구 모음:12 텍스트도구(텍스트 추가,특정 문자 삭제, ...)| 50+차트유형(간트 차트, ...)| 40+ 실용적인수식(생일을 기준으로 나이 계산, ...)| 19 삽입도구(QR 코드 삽입,경로에서 그림 삽입, ...)| 12 변환도구(단어로 변환하기,환율 변환, ...)| 7 병합 및 분할도구(고급 행 병합,셀 분할, ...)|그 외 더 많은 기능 |
Kutools for Excel 로 Excel 역량을 한 단계 업그레이드하고 전례 없는 효율성을 경험하세요。Kutools for Excel 는 생산성과 저장 시간을 향상시키는 300 개 이상의 고급 기능을 제공합니다。가장 필요한 기능을 지금 바로 확인하세요。。。
Office Tab 가 Office 에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만들어 줍니다
- Word, Excel, PowerPoint 에서 탭 기반 편집 및 읽기 기능을 활성화합니다, Publisher, Access, Visio 및 Project 에서도 사용 가능합니다。
- 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 생성할 수 있습니다。
- 50% 만큼 생산성을 높이고 매일 수백 번의 마우스 클릭을 줄여줍니다!
모든 Kutools 애드인。 하나의 설치 프로그램
Kutools for Office스위트 번들은 Excel, Word, Outlook 및 PowerPoint 용 애드인과 Office Tab Pro 를 포함하며, 다양한 Office 앱을 사용하는 팀에 이상적입니다。
- 올인원 스위트— Excel, Word, Outlook 및 PowerPoint 애드인 + Office Tab Pro
- 하나의 설치 프로그램, 하나의 라이선스— 몇 분 안에 설정 완료(MSI 지원)
- 함께 사용할수록 더 효과적입니다— Office 앱 전반에서 생산성 향상
- 30 일간 모든 기능 무료 체험— 등록이나 신용카드 필요 없음
- 최고의 가성비— 개별 애드인 구매 대비 절약