Community생산성 & 협업github.com

민감도 테이블 (단일 및 이중 변수)

모델 출력(NPV, IRR, EPS, 마진 등)이 하나 또는 두 개의 입력 변수 변화에 따라 어떻게 움직이는지 보여주는 .xlsx 워크북을 라이브 수식과 재계산 검증과 함께 빌드합니다.

민감도 테이블 (단일 및 이중 변수)란 무엇인가요?

이 스킬은 전략 및 재무 모델의 핵심 출력이 하나 또는 두 개의 입력 변수 변동에 따라 어떻게 반응하는지 시각적으로 분석하는 민감도 테이블(데이터 테이블)을 구축합니다. Claude 앱(openpyxl + numpy)에서 처음부터 다운로드 가능한 .xlsx 파일을 빌드하며, 라이브 수식과 재계산 및 검증 과정을 포함합니다. 주요 기능으로는 네이티브 엑셀 데이터 테이블 구조(`{=TABLE(r,c)}` 배열)와 코드 기반 폴백 매트릭스를 모두 생성하고, 결과 블록에 3색조 색상 스케일을 적용하며, 입력 축 레이블을 명확히 표시합니다. 또한 헤드리스 LibreOffice를 통한 재계산, 수식 오류(#REF!, #DIV/0! 등) 검증, 그리고 중심값이 기본 사례와 일치하는지 확인하는 검증 블록을 포함합니다. 이 스킬은 Claude for Excel 애드인이 아닌 독립적인 환경에서 사용되며, 사용자가 특정 출력(예: 순현재가치(NPV), 내부수익률(IRR), 주당순이익(EPS), 마진)에 대해 '가격, 볼륨, 할인율, 성장률, 이탈률, 단위당 비용' 같은 주요 변수의 영향을 분석하고자 할 때 유용합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andreworia/claude-excel-skills/tree/main/skills/sensitivity-tables

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

민감도 테이블 (단일 및 이중 변수)은(는) 무엇을 하나요?

사용 시기

전략 또는 재무 모델에 단일 핵심 출력이 있고, 하나 또는 두 개의 구동 변수가 범위에 걸쳐 어떻게 반응하는지 보여주려 할 때 사용합니다. 일반적인 구동 변수는 가격, 볼륨, 할인율, 성장률, 이탈률, 또는 단위당 비용입니다. 이 스킬은 Claude 앱(openpyxl + numpy)에서 처음부터 다운로드 가능한 .xlsx를 빌드하며, 라이브 수식과 재계산 및 검증 과정을 포함합니다. Claude for Excel 애드인이 아닙니다.

빌드하는 내용

기존 모델에 연결되는 단일 Sensitivity 탭을 생성합니다. 모델의 입력 셀과 출력 셀을 참조하고, 단일 변수 및 이중 변수 그리드를 배치하며, 결과 블록에 색상 스케일을 적용합니다. 소스 모델이 다른 시트에 있는 경우, 그리드는 시트 간 참조로 연결되어 라이브 상태를 유지합니다.

빌드 워크플로우

  1. 출력 셀(예: NPV를 보유한 Model!B40)과 이를 구동하는 하나 또는 두 개의 입력 셀(예: Model!B6 할인율, Model!B7 성장률)을 식별합니다.
  2. 출력이 해당 입력으로 다시 연결되는 라이브 수식 체인인지 확인합니다. 출력이 하드코딩된 경우 중단하고 먼저 모델을 연결하십시오. 상수에 대한 데이터 테이블은 상수를 반환합니다.
  3. 기본 사례를 기준으로 입력 범위를 선택합니다(예: 기본 할인율 10%, 6%에서 14%까지 2% 단위로 스위프).
  4. 네이티브 Excel 데이터 테이블 구조(코너 수식, 입력 축, {=TABLE(r,c)} 배열)를 빌드합니다(사양 참조).
  5. 또한 코드로 계산된 그리드를 강력한 폴백(fallback)으로 추가로 빌드합니다: 모든 입력 조합에 대해 Python에서 모델을 재평가하고 결과 값을 레이블이 지정된 매트릭스로 기록합니다.
  6. 결과 블록에 3색조 색상 스케일을 적용하고 두 축에 입력 셀 이름을 레이블로 표시합니다.
  7. 검증 블록(Checks block)을 추가합니다.
  8. 실제 엔진(헤드리스 LibreOffice)에서 워크북을 재계산합니다.
  9. 수식 오류(#REF!, #DIV/0!, #VALUE!, #NAME?)가 없음을 확인하고, 검증을 통과했는지 확인한 후 .xlsx를 전달합니다.

탭별 사양

Sensitivity 탭, 단일 변수 블록

레이아웃 방향을 선택합니다. 입력이 열을 따라 아래로 실행되는 경우:

  • B3: 라이브 출력을 참조하는 출력 수식: =Model!B40. 이것이 코너 셀입니다.
  • A4:A10: 스위프하는 입력 값(파란색 입력)(예: 6%, 8%, 10%, 12%, 14%).
  • B4:B10: 데이터 테이블 결과 열.
  • A3:B10을 선택한 다음 데이터 > 가상 분석 > 데이터 테이블로 이동하여 행 입력 셀은 비워두고 열 입력 셀을 Model!B6으로 설정합니다. Excel은 B4:B10에 {=TABLE(,Model!B6)}를 기록합니다.
  • openpyxl은 배열 수식 문자열 =TABLE(,Model!B6)을 블록에 쓸 수 있고 =Model!B40 코너를 쓸 수 있지만, 값은 실제 엔진에서 재계산 후에만 채워집니다.

동일한 블록에 대한 코드 계산 폴백(코드로 생성할 때 권장)은 아래 A14부터 시작하는 레이블이 지정된 매트릭스에 기록됩니다:

  • A14: 레이블 "할인율". B14: "NPV (계산됨)".
  • A15:A21의 각 입력 값에 대해 Python은 Model!B6을 해당 값으로 설정하고, numpy에서 모델 로직을 재계산하고, 결과 NPV를 열 B에 일반 값으로 기록합니다.
  • 둘 다 유지: 네이티브 데이터 테이블은 라이브 상태임을 증명하고, 계산된 매트릭스는 사용자가 Excel을 열기 전에도 채워진 숫자를 보장합니다.

Sensitivity 탭, 이중 변수 블록

  • 코너 셀 E3: =Model!B40(라이브 출력).
  • E4:E10: 왼쪽 가장자리를 따라 아래로 내려가는 행 입력 값(첫 번째 구동 변수, 예: 성장률 0%, 1%, ... 6%).
  • F3:L3: 맨 위 행을 가로지르는 열 입력 값(두 번째 구동 변수, 예: 할인율 6% ... 14%).
  • E3:L10을 선택하고 데이터 > 가상 분석 > 데이터 테이블로 이동하여 행 입력 셀 = Model!B7(가로 구동 변수), 열 입력 셀 = Model!B6(세로 구동 변수)로 설정합니다. Excel은 F4:L10을 {=TABLE(Model!B7,Model!B6)}로 채웁니다.
  • 방향에 주의: 맨 위 행에 연결된 셀은 행 입력 셀에 들어가고, 왼쪽 열에 연결된 셀은 열 입력 셀에 들어갑니다. 바꾸면 결과가 조용히 전치됩니다.
  • 코드 계산 폴백: 두 축에 대한 Python의 이중 루프로, 값 매트릭스를 레이블이 지정된 블록(모델에서 가져오는 경우 축 헤더는 녹색, 리터럴 스위프 값인 경우 파란색)에 기록합니다.

축 범위 선택

  • 각 축을 기본 사례 값의 중앙에 맞추어 기본값이 중간 행과 중간 열에 위치하도록 하여 중심 셀 검증이 의미 있도록 합니다.
  • 중간 셀이 두 셀 사이에 떨어지지 않고 기본 사례와 정확히 일치하도록 홀수 단계(5, 7, 9)를 사용합니다.
  • 각 축의 단계 크기를 균일하게(일정한 증분) 유지하여 그리드가 깔끔한 그라데이션으로 읽히고 색상 스케일이 해석 가능하도록 합니다.
  • 비율의 경우 독자의 혼란을 피하기 위해 기본값의 상대적 백분율이 아닌 절대 포인트(8%, 10%, 12%)로 스위프합니다.

openpyxl 빌드 참고 사항

  • 코너를 실제 수식 문자열로 작성: ws["B3"] = "=Model!B40". 출력의 현재 숫자 값을 붙여넣지 마십시오.
  • 네이티브 데이터 테이블 배열의 경우 openpyxl은 =TABLE(...) 텍스트를 저장할 수 있지만, 실제 엔진이 블록을 채우기 위해 재계산해야 합니다. 배열을 재계산 단계가 실행될 때까지 자리 표시자로 취급하십시오.
  • 계산된 폴백을 작성할 때 Python으로 데이터 값을 설정하고(ws.cell(row=r, column=c, value=float(npv))), "계산된 스냅샷"과 같은 헤더 메모로 라이브 블록과 시각적으로 구별되도록 유지하십시오.
  • openpyxl.formatting.rule.ColorScaleRule을 결과 블록에 적용하여 최소값을 한 색상에, 최대값을 다른 색상에 중간점을 통해 매핑합니다.

수식 및 서식 규칙

  • 입력용 파란색 글꼴(입력하는 스위프 축 값).
  • 탭 내 수식용 검은색 글꼴.
  • =Model!B40과 같은 탭 간 링크용 녹색 글꼴.
  • 수식이 있어야 할 곳에 하드코드 금지: 코너 셀은 =Model!B40이어야 하며, 입력된 기본 사례 숫자가 아니어야 합니다.
  • 행 또는 열당 일관된 하나의 수식: 전체 데이터 테이블 블록은 단일 배열입니다. 계산된 폴백은 그리드 전체에 적용된 하나의 Python 표현식을 사용합니다.
  • 숫자 형식: 비율은 0.0%, 통화 출력은 #,##0, 비율은 0.00. 축 값은 대체하는 입력 셀의 단위와 일치합니다.

검증

  • 코너 셀이 라이브 출력과 일치: =(B3=Model!B40)이 TRUE를 반환합니다.
  • 축에 입력 셀 이름 레이블 지정(각 축 위나 옆에 구동 변수와 셀 주소를 명명하는 텍스트 레이블).
  • 그리드의 중심이 기본 사례와 일치: 기본 사례 행과 열에 있는 그리드 셀이 모델의 현재 출력과 같음, =(<center cell>=Model!B40) TRUE.
  • 계산된 폴백의 경우 기본 입력에 있는 셀이 동일한 입력에 있는 네이티브 데이터 테이블 셀과 같음(반올림 오차 이내).

재계산 및 확인

openpyxl로 저장한 다음, 헤드리스로 재계산(예: libreoffice --headless --convert-to xlsx)하여 =TABLE(...) 및 시트 간 링크가 채워지도록 합니다. 다시 로드하고 모든 셀에서 #REF!, #DIV/0!, #VALUE!, #NAME?를 스캔합니다. 세 가지 검증이 TRUE를 반환하는지 확인합니다. 오류나 FALSE가 나타나면 참조나 범위를 수정하고 깨끗해질 때까지 반복한 다음 전달합니다.

수집할 입력

  • 소스 모델의 경로와 정확한 출력 셀 주소.
  • 스위프할 하나 또는 두 개의 입력 셀 주소.
  • 기본 사례 값과 각 축에 대한 원하는 범위 및 단계.
  • 축 및 출력에 대한 단위 및 선호하는 숫자 형식.

예시

가상 모델: Model!B40 = 프로젝트 NPV, Model!B6 할인율(기본 10%) 및 Model!B7 수익 성장률(기본 3%)에 의해 구동됨. 단일 변수 블록은 할인율 6%에서 14%까지 2%씩 스위프하여 가상 단위로 NPV(예: 1,210 / 980 / 760 / 560 / 380)를 제공합니다. 이중 변수 블록은 성장률 0%에서 6%를 할인율 6%에서 14%와 교차시킵니다. 성장률 3% 및 할인율 10%의 중심 셀은 Model!B40인 760과 같으며, 기본 사례가 그리드 중간에 있음을 확인합니다.

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

andreworia/assumption-registry-builder

Creates a structured assumption register for any Excel model with columns for name, category, base value, source, Bull/Bear values, sensitivity rank, and owner, plus a formula for computing sensitivity rank from Data Table outputs.

andreworia/data-cleaning-for-excel

Turns pasted or exported data with mixed formats, blank rows, or duplicates into a clean, consistently formatted range ready for analysis. Use it right after pasting raw data into a worksheet.

andreworia/formula-audit-checker

Provides a systematic audit checklist for Excel model formula logic, hardcoded values, circular references, and error handling, with step-by-step instructions for using Excel's native auditing tools.

andreworia/inputs-calcs-outputs-design

Enforces the three-tab separation principle for any Excel model, producing a full design for a dedicated Inputs tab, one or more Calculations tabs, and a clean Outputs tab with a conventions checklist.

andreworia/model-architecture-template

Defines the master tab structure, naming conventions, color codes, number formats, and print area setup for any new strategy or finance Excel model, serving as the structural template before any content is added.

andreworia/output-summary-tab

Designs the executive summary tab of an Excel model with KPI tiles, a narrative block, a sensitivity summary, and an assumption log, formatted for print or screenshot use in a board pack.

andreworia/pivot-table-builder

Specifies and builds a pivot table from a flat data range, choosing rows, columns, values, and filters. Use it when you have raw tabular data and need a summary view without building it cell by cell.

andreworia/revenue-build

Builds a driver-based revenue forecast .xlsx with live formulas across separate drivers, build, and output tabs plus checks, rolling a customer or units schedule (beginning, adds, churn, ending) into revenue with Base/Bull/Bear scenario toggles. Use when someone needs a bottom-up revenue model, an ARR build, or a driver-based forecast for planning or a board deck. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

andreworia/scenario-manager

Builds a Base/Bull/Bear scenario switching layer for a model in a .xlsx with a live selector, CHOOSE or INDEX assumption links, a side-by-side output comparison, and a recalc check, then delivers the workbook. Use when someone wants an auditable scenario toggle instead of Excel's hidden Scenario Manager. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

andreworia/sensitivity-tornado

Ranks variable sensitivities to a key output and builds a tornado chart by swinging each input over a defined range, computing output impact, and producing a horizontal bar chart data structure.

andreworia/unit-economics

Builds a unit-economics and cohort .xlsx with live formulas across separate assumptions, cohort, and output tabs plus checks, computing CAC, LTV, LTV/CAC, and CAC payback from a monthly cohort retention grid. Use when someone needs unit economics, an LTV/CAC analysis, a payback model, or a cohort retention build. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

관련 스킬