感度分析テーブル(1変数・2変数)

エクセルモデルの出力(NPV、IRR、EPS、マージンなど)が1つまたは2つの入力変数の変化に応じてどう動くかを、ライブ計算式と再計算チェック付きの.xlsxファイルとして作成します。

感度分析テーブル(1変数・2変数) とは?

このスキルは、戦略や財務モデルにおいて、単一の主要出力が1つまたは2つのドライバーの変動にどのように応答するかを示す感度分析テーブルを構築します。典型的なドライバーには価格、数量、割引率、成長率、チャーン率、単位コストなどがあります。Claudeアプリ内でopenpyxlとnumpyを使用して.xlsxファイルをゼロから作成し、ライブのExcelデータテーブル(`{=TABLE(r,c)}`配列)と、Pythonで全入力組み合わせを再評価したコード計算フォールバックの両方を提供します。ワークブックはヘッドレスLibreOfficeで再計算され、エラーチェックを通過した後、ダウンロード可能な状態で提供されます。このスキルはClaude for Excelアドインではなく、独立したワークブックを生成する点に注意してください。

対応✓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に質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

感度分析テーブル(1変数・2変数) は何をしますか?

使用するタイミング

戦略や財務モデルに単一の主要出力があり、その出力が1つまたは2つのドライバーの変動にどのように応答するかを示したい場合に使用します。典型的なドライバーは価格、数量、割引率、成長率、チャーン率、または単位コストです。このスキルは、Claudeアプリ内でダウンロード可能な.xlsxファイルをゼロから作成し(openpyxlとnumpyを使用)、ライブ計算式と再計算・検証パスを含みます。これはClaude for Excelアドインではありません。

構築するもの

既存のモデルに接続する単一の「Sensitivity」タブを作成します。モデルの入力セルと出力セルを参照し、1変数グリッドと2変数グリッドを配置し、結果ブロックにカラースケールを適用します。ソースモデルが別のシートにある場合、グリッドはシート間参照でリンクされ、ライブ状態を維持します。

構築ワークフロー

  1. 出力セル(例:NPVを保持する Model!B40)と、それを駆動する1つまたは2つの入力セル(例:Model!B6 割引率、Model!B7 成長率)を特定します。
  2. 出力がそれらの入力に戻るライブ計算式チェーンであることを確認します。出力がハードコードされている場合は、停止してモデルを配線し直します。定数に対するデータテーブルは定数を返します。
  3. ベースケースを中心に入力範囲を選択します(例:ベース割引率10%、6%から14%を2%刻みでスイープ)。
  4. ネイティブExcelデータテーブル構造(コーナー式、入力軸、{=TABLE(r,c)} 配列)を構築します(仕様参照)。
  5. 同時に、コード計算フォールバックとして堅牢なバックアップも構築します。Pythonで全入力組み合わせにわたってモデルを再評価し、結果の値をラベル付き行列として書き込みます。
  6. 結果ブロックに3色スケールを適用し、両軸に入力セル名をラベル付けします。
  7. Checksブロックを追加します。
  8. ワークブックを実際のエンジン(ヘッドレスLibreOffice)で再計算します。
  9. ゼロの計算式エラー(#REF!、#DIV/0!、#VALUE!、#NAME?)を確認し、チェックが合格したことを確認して、.xlsxを提供します。

タブごとの仕様

Sensitivityタブ、1変数ブロック

レイアウト方向を選択します。入力が列方向にDOWNしている場合:

  • B3: 出力式、ライブ出力を参照:=Model!B40。これがコーナーセルです。
  • A4:A10: スイープする入力値(青色の入力)、例:6%、8%、10%、12%、14%。
  • B4:B10: データテーブルの結果列。
  • A3:B10を選択し、データ > What-If分析 > データテーブル。行入力セルを空白のまま、列入力セルを Model!B6 に設定します。Excelは {=TABLE(,Model!B6)} を B4:B10 に書き込みます。
  • openpyxlは配列数式文字列 =TABLE(,Model!B6) をブロックに、=Model!B40 をコーナーに書き込めますが、実際のエンジンでの再計算後にのみ値が入力されます。

同じブロックのコード計算フォールバック(コードで生成する場合に推奨)は、ラベル付き行列として下のA14から書き込みます:

  • A14: ラベル「割引率」。B14: 「NPV(計算値)」。
  • A15:A21の各入力値について、Pythonは Model!B6 をその値に設定し、numpyでモデルロジックを再計算し、結果のNPVをプレーンな値としてB列に書き込みます。
  • 両方を維持します。ネイティブデータテーブルはライブであることを証明し、計算行列はユーザーがExcelを開く前でも数値が入力されていることを保証します。

Sensitivityタブ、2変数ブロック

  • コーナーセル E3: =Model!B40(ライブ出力)。
  • E4:E10: 左端を下る行入力値(最初のドライバー、例:成長率 0%、1%、... 6%)。
  • F3:L3: 最上行を横切る列入力値(2番目のドライバー、例:割引率 6% ... 14%)。
  • E3:L10を選択し、データ > What-If分析 > データテーブル。行入力セル = Model!B7(横方向のドライバー)、列入力セル = Model!B6(下方向のドライバー)。Excelは F4:L10 を {=TABLE(Model!B7,Model!B6)} で埋めます。
  • 方向に注意:最上行にリンクされたセルは行入力セルに、左列にリンクされたセルは列入力セルに入れます。入れ替えると結果が暗黙的に転置されます。
  • コード計算フォールバック:両軸にわたるPythonの二重ループで、値行列をラベル付きブロックに書き込みます(軸ヘッダーはモデルから取得する場合は緑、リテラルスイープ値の場合は青)。

軸範囲の選択

  • 各軸をベースケース値で中心に配置し、ベースが中央の行と中央の列に来るようにします。これにより中央セルのチェックが意味を持ちます。
  • 奇数のステップ数(5、7、または9)を使用すると、単一の中央セルがベースケースと正確に一致し、2つのセルの間に落ちることを防げます。
  • 各軸のステップサイズを均一に保ち(一定の増分)、グリッドがきれいなグラデーションとして読み取れ、カラースケールが解釈可能になるようにします。
  • レートの場合、ベースの相対パーセントではなく絶対ポイント(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? についてスキャンします。3つのチェックがTRUEを返すことを確認します。エラーやFALSEが表示された場合、参照または範囲を修正してループし、クリーンになるまで繰り返した後、提供します。

収集する入力

  • ソースモデルへのパスと正確な出力セルアドレス。
  • スイープする1つまたは2つの入力セルアドレス。
  • ベースケース値と、各軸の希望する範囲およびステップ。
  • 軸と出力の単位および希望する数値形式。

例

仮想モデル:Model!B40 = プロジェクトNPV、Model!B6 割引率(ベース10%)と Model!B7 収益成長率(ベース3%)によって駆動。1変数ブロックは割引率を6%から14%まで2%刻みでスイープし、(例として)1,210 / 980 / 760 / 560 / 380(仮想単位)のNPVを生成。2変数ブロックは成長率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.

関連スキル