시나리오 관리자 (Base / Bull / Bear)
사용 시기
모델이 Base, Bull, Bear 사례 간을 소수의 가정 집합으로 깔끔하게 전환해야 하고, 모든 사례를 한 시트에서 보고 감사할 수 있기를 원할 때 사용하세요. 이 스킬은 Claude 앱 내에서 처음부터 다운로드 가능한 .xlsx를 구축합니다(openpyxl + 데이터 유효성 검사). 라이브 선택기, 수식 기반 가정 연결, 비교 테이블, 재계산 및 검증 과정을 포함합니다. Claude for Excel 애드인이 아닙니다.
구축하는 항목
다섯 개 영역: Cover 탭(선택기 및 요약), 시나리오 입력 탭(Base, Bull, Bear 각각의 드라이버), 모델로 연결되는 라이브 링크(가정이 활성 사례를 가져오도록), 출력 비교 탭(세 가지 사례의 주요 결과를 나란히 표시), 검증 탭.
구축 워크플로우
- 사례별로 다른 드라이버(예: 성장률, 가격, 이탈률, 자본 지출)를 나열하고 각 드라이버의 가정 셀을 모델에서 찾습니다.
- 모든 드라이버에 대해 Base, Bull, Bear 값을 포함하는
시나리오 입력블록을 구축합니다. - 단일 선택기 셀(1, 2, 또는 3)을 데이터 유효성 검사 드롭다운과 함께 구축합니다.
- 각 모델 가정 셀을 선택기를 참조하는 CHOOSE 또는 INDEX를 통해 활성 사례를 가져오도록 다시 작성합니다.
- 세 가지 사례의 주요 결과를 비교하는
출력탭을 구축합니다(병렬 계산, 사양 참조). 선택기에 관계없이 모든 사례가 동시에 표시됩니다. 검증탭을 추가합니다.- 실제 엔진(헤드리스 LibreOffice)에서 워크북을 재계산합니다.
- 수식 오류(#REF!, #DIV/0!, #VALUE!, #NAME?)가 없는지 확인하고 검증을 통과했는지 확인한 후 .xlsx를 전달합니다.
탭별 세부 사양
Cover 탭
B2: 선택기 셀. 데이터 유효성 검사 목록1,2,3(또는 Base, Bull, Bear로 매핑된 1/2/3 이름 목록)을 적용합니다.B3: 활성 사례 이름,=CHOOSE(B2,"Base","Bull","Bear").- 활성 사례의 라이브 모델 출력을 읽는 작은 결과 요약. 예:
B6 =Model!B40.
시나리오 입력 탭
드라이버당 한 행, 사례당 한 열:
A드라이버 이름,BBase,CBull,DBear(모두 파란색 입력),E활성 값(검은색 수식).- 활성 값은 선택기로 가져옵니다. CHOOSE 사용:
E5 =CHOOSE(Cover!$B$2,B5,C5,D5). - INDEX 동등식:
E5 =INDEX(B5:D5,Cover!$B$2). 사례 수가 늘어날 수 있으면 INDEX가 더 깔끔합니다. 세 가지 고정 사례의 경우 CHOOSE가 더 명시적입니다. - 선택한 수식 하나를 모든 드라이버 행에 복사하여 열 전체가 일관되도록 합니다.
모델로의 링크
- 각 모델 가정 셀은 활성 값을 가리킵니다. 예:
Model!B6 =ScenarioInputs!E5. - 시나리오에서 제어해야 하는 가정이 모델에 직접 입력되지 않도록 해야 합니다. 값은 반드시 선택기 -> 활성 열 -> 모델로 흘러야 합니다.
- 링크는 녹색 크로스탭 색상을 사용하여 검토자가 가정이 입력된 것이 아니라 수식으로 연결되었음을 알 수 있도록 합니다.
출력 탭 (나란히 비교)
모든 사례를 한 번에 표시합니다(활성 사례만이 아님). 두 가지 강력한 패턴:
- 병렬 계산 (감사성 선호): 몇 개의 출력 수식을 Base, Bull, Bear 열에서 직접 가져와 세 번 복제합니다. 예를 들어 Bull의 NPV는
ScenarioInputs!C5:C12를 사용하여 출력 체인을 다시 계산합니다. 이렇게 하면 선택기를 건드리지 않고도 세 가지 모두 표시됩니다. - 순차 읽기: 모델이 큰 경우, 비교 셀이 각 사례의 라이브 출력을 캡처하도록 재계산 단계에서 선택기를 1, 2, 3으로 설정하고 각 값을 붙여넣습니다. 캡처된 셀은 스냅샷인지 라이브인지 명확히 표시합니다.
- 레이아웃: 행 = 주요 지표(매출, EBIT, NPV, IRR), 열 = Base, Bull, Bear + Bull-Base 및 Bear-Base 델타 열.
검증 탭
- 선택기 범위 내:
=AND(Cover!B2>=1,Cover!B2<=3,Cover!B2=INT(Cover!B2))TRUE. - 모든 드라이버에 세 가지 사례 값이 모두 채워짐:
=COUNTBLANK(ScenarioInputs!B5:D12)=0TRUE. - 활성 열이 선택기와 일치: 예시 드라이버에 대해
=(ScenarioInputs!E5=CHOOSE(Cover!B2,ScenarioInputs!B5,ScenarioInputs!C5,ScenarioInputs!D5))TRUE.
openpyxl 구축 참고
- 드롭다운 추가:
openpyxl.worksheet.datavalidation.DataValidation(type="list", formula1='"1,2,3"'),ws.add_data_validation(dv)및dv.add(ws["B2"]). - 모든 활성 값 및 링크 셀은 수식 문자열로 작성하고, 절대 해결된 사례 숫자로 작성하지 마세요. 값은 재계산 후에만 나타납니다.
- 드롭다운에 이름이 있는 사례를 사용하는 경우, 선택기가 CHOOSE/INDEX를 위해 정수로 해석되도록 숨겨진 매핑을 유지하세요. 텍스트와 인덱스를 혼합하면 수식이 깨집니다.
- 선택기 셀에 독특한 배경과 굵은 테두리를 채워 검토자가 단일 제어 셀을 즉시 알아볼 수 있도록 하세요.
방향성 검증
- Bull이 주요 지표에서 Base보다 나쁜 결과를 내거나 Bear가 Base를 이기지 않아야 합니다. 그렇다면 드라이버의 사례 값이 열 간에 잘못 배치된 것입니다.
- 출력 탭에 각 델타의 부호를 예상 방향과 비교하는 선택적 비공식 검사를 추가하여 검토 전 재계산 시 열 교환을 발견할 수 있습니다.
수식 및 서식 규칙
- Base/Bull/Bear 입력 값과 선택기 셀은 파란색 글꼴.
- 탭 내 수식(활성 값 CHOOSE/INDEX 열, 출력 계산)은 검은색 글꼴.
- 모델 내
=ScenarioInputs!E5같은 크로스탭 링크는 녹색 글꼴. - 수식 자리에 하드코드 금지: 활성 열과 모델 가정은 항상 수식이며, 사례 값을 다시 입력하지 않습니다.
- 행 또는 열당 일관된 수식: 활성 열에 동일한 CHOOSE/INDEX 패턴, 비교 열에 동일한 출력 수식.
- 숫자 형식: 비율
0.0%, 통화#,##0, 배수0.00x. 선택기 셀은 채우기로 강조하여 토글 위치를 명확히 합니다.
내장 시나리오 관리자와의 비교
Excel 내장 시나리오 관리자는 사례 값을 대화상자 안에 숨기고 시트에 보이지 않으며, 표시 시 활성 입력을 덮어쓰고 모델과 동기화가 쉽게 깨집니다. 눈에 보이는 토글 블록은 모든 사례를 그리드에 유지하고, 활성 풀을 추적 가능한 수식으로 만들며, 검토자가 메뉴를 열지 않고도 세 가지 결과를 나란히 볼 수 있습니다. 더 감사 가능하며 복사, 검토 및 버전 관리에서도 살아남습니다.
검증
위 검증 탭 참조: 선택기 1..3 및 정수, 빈 사례 셀 없음, 활성 값이 선택기의 사례와 일치. 세 가지 모두 TRUE를 반환해야 합니다.
재계산 및 확인
openpyxl로 저장하고, 헤드리스 재계산(예: libreoffice --headless --convert-to xlsx)하여 CHOOSE/INDEX 및 크로스시트 링크가 해석되도록 합니다. 다시 로드하여 #REF!, #DIV/0!, #VALUE!, #NAME?을 검사합니다. 선택기를 1, 2, 3으로 전환하면서 출력이 변경되고 활성 검증이 각 설정에서 유지되는지 확인합니다. 오류를 수정하고 깨끗해질 때까지 반복한 후 전달합니다.
수집할 입력
- 모델 경로 및 각 드라이버의 가정 셀 주소.
- 각 드라이버의 Base, Bull, Bear 값.
- 비교할 주요 출력 지표와 해당 셀.
- 비교가 병렬 계산(라이브)인지 캡처된 스냅샷인지 여부.
예시
가상 드라이버: 매출 성장률(Base 4%, Bull 8%, Bear 1%), 총이익률(Base 55%, Bull 58%, Bear 50%). 선택기 Cover!B2 = 2가 Bull을 선택하면 ScenarioInputs!E5 =CHOOSE(2,4%,8%,1%) = 8%가 Model!B6으로 흘러갑니다. 출력 탭은 NPV(가상 단위) Base 760, Bull 1140, Bear 410을 보여주며 Bull-Base 델타는 380으로 한 번에 모두 표시됩니다.