---
title: "Lbo Model — IRR / MOIC 付きの LBO ワークブックを Excel で作る"
description: "IRR / MOIC 付きの LBO ワークブックを Excel で作る"
upstream_path: user-guide/skills/optional/finance/finance-lbo-model.md
upstream_blob: 052cf588096d904e839d550e1fdbab678e218d4c
sources:
  - https://hermes-agent.nousresearch.com/docs/user-guide/skills/optional/finance/finance-lbo-model
---

# Lbo Model {#lbo-model}

IRR / MOIC 付きの LBO（レバレッジド・バイアウト）ワークブックを Excel で作ります。

## skill の情報 {#skill-metadata}

| | |
|---|---|
| 提供元 | 追加 skill — `hermes skills install official/finance/lbo-model` で入れます |
| パス | `optional-skills/finance/lbo-model` |
| バージョン | `1.0.0` |
| 作者 | Anthropic（Nous Research が改変） |
| ライセンス | Apache-2.0 |
| 対応プラットフォーム | linux, macos, windows |
| タグ | `finance`, `valuation`, `lbo`, `private-equity`, `excel`, `openpyxl`, `modeling` |
| 関連 skill | [`excel-author`](/hermes/docs/user-guide/skills/optional/finance/finance-excel-author/), [`pptx-author`](/hermes/docs/user-guide/skills/optional/finance/finance-pptx-author/), [`dcf-model`](/hermes/docs/user-guide/skills/optional/finance/finance-dcf-model/), [`3-statement-model`](/hermes/docs/user-guide/skills/optional/finance/finance-3-statement-model/) |

## 参考: SKILL.md 全文 {#reference-full-skillmd}

:::info
以下は、この skill が呼び出されたときに Hermes が読み込む skill 定義の全文です。skill が有効なあいだ、エージェントはこれを指示として受け取ります。
:::

## 動かす環境 {#environment}

この skill は **ヘッドレスの openpyxl** を前提にしています。つまり、ディスク上に .xlsx ファイルを作ることが目的です。
セルの色付け、数式、名前付き範囲、感応度表については `excel-author` skill の作法にそろえてください。
納品の前に再計算します: `python /path/to/excel-author/scripts/recalc.py ./out/model.xlsx`。

---

## テンプレートについての決まり {#template-requirement}

**この skill は LBO モデルにテンプレートを使います。まず添付のテンプレートファイルがないかを必ず確かめてください。**

LBO モデルを作り始める前に:
1. **テンプレートファイルが添付・提示されている場合**: そのテンプレートの構成をそのまま使います。複製して、ユーザーのデータを埋めていきます
2. **テンプレートの添付がない場合**: ユーザーにこう尋ねます。*「使ってほしい LBO のテンプレートはありますか。なければ、Sources & Uses、オペレーティングモデル、デットスケジュール、リターン分析を含む標準テンプレートを使います」*
3. **標準テンプレートを使う場合**: `examples/LBO_Model.xlsx` を複製して出発点にし、ユーザーの前提条件を埋めます

**重要**: `LBO_Model.xlsx` のようなファイルが添付されているときは、必ずそれをテンプレートとして使ってください。ゼロから作ってはいけません。テンプレートが複雑に見えても、必要以上の機能を持っていても、複製してユーザーの要件に合わせます。テンプレートが渡されているのに「ゼロから作る」と判断してはいけません。

---

## 重要な指示 — 最初に読むこと {#critical-instructions-read-first}

Python / openpyxl を使います。数式を文字列として書き込み（`ws["D20"] = "=B5*B6"`）、納品前に `excel-author` skill の `recalc.py` ヘルパーを実行してください。

### 基本の考え方 {#core-principles}
* **すべての計算を Excel の数式にする** — Python 側で値を計算してセルに直接書き込んではいけません。openpyxl では `cell.value = "=B5*B6"`（数式の文字列）と書き、`cell.value = 1250`（計算済みの値）とは書きません。入力を変えたらモデル全体が追従する必要があります。
* **テンプレートの構成に従う** — `examples/LBO_Model.xlsx` またはユーザーが渡したテンプレートの並びに従います。独自のレイアウトを考え出さないでください。
* **セル参照を正しく使う** — 数式はすべて該当するセルを参照します。他のセルから来るべき数値を直接打ち込んではいけません。
* **符号の取り決めを統一する** — テンプレートが採っている符号の取り決め（支出を負とするもの、正とするもの）に従い、最後まで一貫させます。
* **セクション単位で進め、その都度ユーザーに確認する** — 1 つのセクションを仕上げ、何を作ったかを見せ、そのセクションの検証項目を実行し、了解をもらってから次に進みます。モデルを最後まで一気に作ってから見せるのはやめてください。後のセクションは前のセクションに依存するので、リターンまで作った後で Sources & Uses の誤りが見つかると、全体をやり直すことになります。

### 数式の文字色の取り決め {#formula-color-conventions}
* **青（0000FF）**: 直接入力した値 — 他のセルを参照せずに打ち込んだ数値
* **黒（000000）**: 計算を伴う数式 — 演算子や関数を使う数式すべて（`=B4*B5`、`=SUM()`、`=-MAX(0,B4)`）
* **紫（800080）**: **同じシート内**のセルへのリンク — 計算を伴わない直接参照（`=B9`、`=B45`）
* **緑（008000）**: **別シート**のセルへのリンク — シートをまたぐ参照（`=Assumptions!B5`、`='Operating Model'!C10`）

### 塗りつぶしの色 — 落ち着いたブルーとグレー（ユーザーやテンプレートの指定がなければこれを既定にします） {#fill-color-palette-professional-blues-greys-default-unless-usertemplate-specifies-otherwise}
* **控えめにする** — セルの塗りつぶしにはブルーとグレーだけを使います。緑、黄、赤や複数のアクセント色を持ち込まないでください。仕上がりのよい LBO モデルは色を抑えています。
* **既定の配色:**
  * **セクション見出し**（Sources & Uses、オペレーティングモデルなど）: 濃い青 `#1F4E79`、文字は白の太字
  * **列見出し**（Year 1、Year 2 など）: 薄い青 `#D9E1F2`、文字は黒の太字
  * **入力セル**: 薄いグレー `#F2F2F2`（または白のまま） — 目印になるのは青い**文字色**で、塗りつぶしは補助です
  * **数式・計算結果のセル**: 白、塗りつぶしなし
  * **主要な出力**（IRR、MOIC、Exit Equity）: 中間の青 `#BDD7EE`、文字は黒の太字
* **使う色はこれで全部です。** 青 3 色 + グレー 1 色 + 白。テンプレートが独自の色を持っているなら、そちらに従います。
* 補足: 上に挙げた青・黒・紫・緑の**文字色**は、入力・数式・リンクを見分けるためのものです。ここでの**塗りつぶし**の配色とは別物で、両方を組み合わせて使います。

### 数値表示の決まり {#number-formatting-standards}
* **通貨**: `$#,##0;($#,##0);"-"` または `$#,##0.0`（テンプレートに合わせます）
* **パーセント**: `0.0%`（小数 1 桁）
* **倍率**: `0.0"x"`（小数 1 桁）
* **MOIC・細かい比率**: `0.00"x"`（精度が要るので小数 2 桁）
* **数値セル全般**: 右揃え

---

### 先に要件をはっきりさせる {#clarify-requirements-first}

数式を埋め始める前に:

* **テンプレートの構成を確かめる** — すべてのセクションを洗い出し、期間の並び（どの列がどの期にあたるか）を把握し、すでに入っている数式を控えておきます
* **わからないことはユーザーに聞く** — テンプレートの構成、計算方法、要件があいまいなら、進める前に確認します
* **主要な前提を確認する** — 重要な入力値、計算方法の好み、個別の要件など
* **テンプレートを理解できてから**、数式を埋める作業に進みます

---

## テンプレート分析フェーズ — まずここから {#template-analysis-phase---do-this-first}

数式を埋め始める前に、テンプレートをよく調べます:

1. **構成を把握する** — 各セクションがどこにあり、互いにどうつながるかを洗い出します。どのセクションが他へ流れ込むかを控えておきます。

2. **期間の並びを理解する** — どの列がどの期にあたるか。「Closing」や「Pro Forma」の列はあるか。予測期間はどこから始まるか。

3. **入力セルと数式セルを見分ける** — テンプレートは色分け、罫線、網掛けで入力用と数式用を示していることが多いので、その取り決めを尊重します。

4. **行ラベルを丁寧に読む** — 行のラベルが、期待されている計算をそのまま示しています。推測せず、テンプレートが求めているものを読み取ってください。

5. **すでに入っている数式を確かめる** — 一部が埋まった状態のテンプレートもあります。指示がない限り、動いている数式を上書きしてはいけません。

6. **テンプレート固有の作法を控える** — 符号の取り決め、小計の作り方、セクションの並べ方、要素ごとにシートが分かれているかどうか、などです。

---

## 数式を埋める — 全体の進め方 {#filling-formulas---general-approach}

数式が必要なセルごとに、次の順で判断します。

### ステップ 1: テンプレートを確認する {#step-1-check-the-template}
* そのセルにすでに数式が入っていないか。入っていれば、正しいことを確かめて次へ進みます。
* 想定される計算を示すコメントや注記はないか。
* 行・列のラベルから計算内容が読み取れないか。
* 隣接するセルに、踏襲すべきパターンがないか。

### ステップ 2: ユーザーの指示を確認する {#step-2-check-the-users-instructions}
* 特定の計算方法の指定はあったか。
* この数式に影響する前提が示されていないか。
* 個別の要件が挙がっていないか。

### ステップ 3: 一般的な作法に従う {#step-3-apply-standard-practice}
* テンプレートにもユーザーの指示にもない場合は、LBO モデリングの一般的な作法に従います
* 置いた前提は書き残します
* どうしても判断がつかないときは、ユーザーに尋ねます

---

## つまずきやすいところ {#common-problem-areas}

次の計算パターンは、LBO モデルでよく問題になります。出てきたときは特に注意してください。

### 一致させるセクション {#balancing-sections}
* 2 つのセクションが一致しなければならないとき（Sources = Uses など）、片方の項目が調整弁（差額で埋める項目）になるのが普通です
* どれが調整弁かを見極め、差額として計算します

### 税金の計算 {#tax-calculations}
* 税金の数式は、対象となる利益の行と税率だけを参照します
* 関係のないセクション（デットスケジュールなど）を参照してはいけません
* 損失が税の控除効果を生むのか、単に無視するのかを検討します

### 支払利息と循環参照 {#interest-and-circular-references}
* 利息の計算は、キャッシュフローの影響を受ける残高を参照すると循環参照になります
* 循環を断つため、**期首残高**を使います（平均残高や期末残高は使いません）
* 流れはこうです。利息 → キャッシュフロー → 返済 → 期末残高（利息が期末残高を使うと、ここで元へ戻ってしまいます）

### 債務の返済・キャッシュスイープ {#debt-paydown-cash-sweeps}
* 複数のトランシェがあるときは、たいてい返済の優先順位があります
* キャッシュスイープはその優先順位（ウォーターフォール）に従わせます
* 残高がマイナスになってはいけません。MAX や MIN を適切に使います

### リターンの計算（IRR / MOIC） {#returns-calculations-irrmoic}
* キャッシュフローの符号を正しくします。投資は負、回収は正です
* XIRR を使うなら、対応する日付が必要です
* IRR を使うなら、キャッシュフローは連続した期に並べます
* MOIC = 回収額の合計 ÷ 投資額の合計

### 感応度表 {#sensitivity-tables}
* **縦横は奇数にします**（5×5 か 7×7）。4×4 や 6×6 は避けてください。奇数なら中央のセルが必ず 1 つ決まります。
* **中央セルがベースケースです。** 行と列の軸の値は、モデルの実際の前提を中心に左右対称に並べます（例: ベースの取得倍率が 10.0x なら、軸は `[8.0x, 9.0x, 10.0x, 11.0x, 12.0x]`）。このとき中央セルの IRR / MOIC は、モデルが実際に出している IRR / MOIC と一致しなければなりません。これが表が正しくつながっている証拠になります。
* **中央セルを目立たせます** — 中間の青の塗りつぶし（`#BDD7EE`）と太字で、ベースケースが目で追えるようにします。
* Excel のデータテーブル機能は openpyxl では使えないことがあります。その場合は、行見出し・列見出しを参照する数式を明示的に書きます
* 各セルの値は互いに異なるはずです。すべて同じ値なら、数式が入力に応じて変わっていません
* 複合参照を使います（行方向の入力には `$A5`、列方向の入力には `B$4` のように）

---

## 検証チェックリスト — 完成後に実行する {#verification-checklist---run-after-completion}

### 数式の検証を実行する {#run-formula-validation}
```bash
python /path/to/excel-author/scripts/recalc.py model.xlsx
```
エラー 0 件で成功が返る必要があります。

### セクションの一致 {#section-balancing}
- [ ] 一致すべきセクション（Sources / Uses、資産 / 負債）がぴったり一致している
- [ ] 調整弁の項目が差額として正しく計算されている
- [ ] セクションをまたいで一致すべき金額が食い違っていない

### 損益・オペレーティングの予測 {#incomeoperating-projections}
- [ ] 売上高がドライバーや成長率から正しく積み上がっている
- [ ] 原価・費用の各項目が適切に計算されている
- [ ] 小計と合計が正しく足し上がっている
- [ ] 利益率や各種比率が妥当な水準にある
- [ ] 前提条件へのリンクが正しい

### 貸借対照表（該当する場合） {#balance-sheet-if-applicable}
- [ ] 資産 = 負債 + 資本（必ず一致すること）
- [ ] 各項目が対応するスケジュールや推移表にリンクしている
- [ ] 期首残高が前期の期末残高と一致している
- [ ] チェック行があり、0 を示している

### キャッシュフロー（該当する場合） {#cash-flow-if-applicable}
- [ ] 正しい利益の数値から始まっている
- [ ] 非資金項目が適切に加減されている
- [ ] 運転資本の増減の符号が正しい
- [ ] 期末現金 = 期首現金 + 純キャッシュフロー
- [ ] 現金残高が各計算書のあいだで食い違っていない

### 補助スケジュール {#supporting-schedules}
- [ ] 推移表が整合している（期首 + 増減 = 期末）
- [ ] スケジュールが主要な計算書に正しくリンクしている
- [ ] 計算項目が適切なドライバーを使っている
- [ ] すべての期が同じやり方で計算されている

### デット・ファイナンスのスケジュール（該当する場合） {#debtfinancing-schedules-if-applicable}
- [ ] 期首残高が Sources または前期の値とつながっている
- [ ] 利息が適切な残高（通常は期首残高）で計算されている
- [ ] 返済が手元資金の範囲と優先順位を守っている
- [ ] 期末残高がマイナスになっていない
- [ ] 合計が各トランシェを正しく足し上げている

### リターン・出力の分析 {#returnsoutput-analysis}
- [ ] 出口価値・ターミナルバリューが正しく計算されている
- [ ] 必要な調整がすべて織り込まれている
- [ ] キャッシュフローの符号が正しい（投資は負、回収は正）
- [ ] IRR / MOIC の数式が対象範囲をすべて含んでいる
- [ ] 結果がそのシナリオとして妥当な水準にある

### 感応度表（該当する場合） {#sensitivity-tables-if-applicable}
- [ ] 表の縦横が奇数（5×5 か 7×7）で、中央セルが 1 つ決まっている
- [ ] 行と列の軸の値がベースケースを中心に左右対称になっている（`[base-2Δ, base-Δ, base, base+Δ, base+2Δ]`）
- [ ] 中央セルの出力がモデルの実際の IRR / MOIC と一致している（表が正しくつながっている証拠になります）
- [ ] 中央セルが強調されている（中間の青 `#BDD7EE` の塗りつぶし、太字）
- [ ] 行見出しと列見出しに適切な入力値が入っている
- [ ] データセルがすべて数式になっている（直接入力になっていない）
- [ ] データセルの値が互いに異なっている
- [ ] 値の動く向きが想定どおり（出口倍率が高いほど IRR も高い、など）

### 書式 {#formatting}
- [ ] 直接入力した値が青（0000FF）になっている
- [ ] 計算する数式が黒（000000）になっている
- [ ] 同一シートへのリンクが紫（800080）になっている
- [ ] 別シートへのリンクが緑（008000）になっている
- [ ] 数値がすべて右揃えになっている
- [ ] 適切な数値書式が全体に適用されている
- [ ] エラー値（#REF!、#DIV/0!、#VALUE!、#NAME?）が出ているセルがない

### 常識的なチェック {#logical-sanity-checks}
- [ ] 数値の桁が妥当である
- [ ] 傾向に納得がいく（想定どおりの成長・減少・横ばいになっている）
- [ ] 明らかにおかしい値がない（正であるべきところが負、あり得ないパーセントなど）
- [ ] 主要な出力が、この種の分析として妥当な範囲に収まっている

---

## よくある失敗と対処 {#common-errors-to-avoid}

| 失敗 | 何が起きるか | どう直すか |
|-------|-----------------|------------|
| 計算結果を直接書き込む | 入力を変えてもモデルが追従しない | 参照元のセルを参照する数式を必ず使う |
| コピー後に参照先がずれる | 数式が別のセルを指してしまう | すべてのリンクを確認し、$ で適切に固定する |
| 循環参照のエラー | モデルが計算できなくなる | 利息のような計算に期首残高を使い、循環を断つ |
| セクションが一致しない | 一致すべき合計が合わない | どれか 1 項目を調整弁（差額で計算）にする |
| あり得ないマイナス残高 | 使える額を超えて支払っている | MAX(0, ...) や MIN を適切に使う |
| IRR やリターンのエラー | 符号が違うか、範囲が足りない | キャッシュフローの符号を確かめ、数式が全期間を含むようにする |
| 感応度表がどこも同じ値 | 数式が入力に応じて変わっていない | セル参照を確認する。複合参照（$A5、B$4）が必要 |
| 推移表がつながらない | 期首 ≠ 前期の期末 | 期をまたぐリンクを確認する |
| 符号の取り決めがばらばら | 加算のはずが減算になる（またはその逆） | テンプレートの取り決めに最後まで従う |

---

## ユーザーとの進め方 — セクションごとの確認ポイント {#working-with-the-user-section-by-section-checkpoints}

* **テンプレートの構成がはっきりしないときは**、進める前に尋ねます
* **ユーザーの要件がテンプレートと食い違うときは**、どちらを取るか確認します
* **大きなセクションを終えるたびに**、いったん止めてユーザーと確認してから先へ進みます:
  - **Sources & Uses のあと** → 一致した表を見せ、調整弁が正しいことを確認し、了解をもらってからオペレーティングモデルへ
  - **オペレーティングモデル・予測のあと** → 予測 P&L を見せ、成長率と利益率が妥当か確認し、了解をもらってからデットスケジュールへ
  - **デットスケジュールのあと** → 期首・期末残高と利息を見せ、ウォーターフォールの考え方を確認し、了解をもらってからリターンへ
  - **リターン（IRR / MOIC）のあと** → キャッシュフローの並びと出力を見せ、符号と水準を確認し、了解をもらってから感応度表へ
  - **感応度表のあと** → 各セルの値が変化していることを見せ、ベースケースが想定どおりの位置に来ているか確認します
* **検証で誤りが見つかったら**、次のセクションへ進む前に直します
* **考えた筋道を示す** — 重要な数式や前提は、必要に応じて説明を添えます
* **各セクションで確認を挟まないまま、完成したモデルを提示してはいけません** — 参照ミスは、壊れた IRR から逆にたどるより、その場で捕まえたほうがずっと速く済みます

---

**この skill は、テンプレートに正しい数式・適切な書式・検証済みの計算を埋めることで、投資銀行の水準に耐える LBO モデルを作ります。どんなテンプレートの構成にも合わせながら、財務的な正確さと見せ方の水準を保ちます。**

## データの取得元 — まず MCP、なければ Web {#data-sources-mcp-first-web-fallback}

以下の箇所には「S&P Kensho MCP / Daloopa MCP / FactSet MCP を使う」と書かれています。これらは元になった Cowork プラグインが前提としていた、商用の金融データ MCP です。Hermes では次のようにします。

- **構造化された金融データの MCP を設定している場合**（Hermes は MCP に対応しています。`native-mcp` skill を参照）、時点を揃えた類似企業比較、過去の取引事例、開示資料にはそちらを優先します。
- **設定していない場合**は、次で代替します:
  - 米国の開示資料は `web_search` / `web_extract` で SEC EDGAR（`https://www.sec.gov/cgi-bin/browse-edgar`）を参照します
  - プレスリリースや決算資料は企業の IR ページを参照します
  - 対話型のデータポータルには `browser_navigate` を使います
  - ユーザーから提供されたデータ（文脈に見当たらないときは、はっきり尋ねます）
- **数字を作ってはいけません。** 倍率、取引事例、開示上の数値の出どころを確かめられない場合は、そのセルを `[UNSOURCED]` と印を付けてユーザーに伝えます。

## 出典 {#attribution}

この skill は Anthropic の Claude for Financial Services プラグイン群（Apache-2.0）をもとにしています。Office-JS / Cowork のライブ Excel 経路は取り除き、`excel-author` skill の作法に沿ってヘッドレスの openpyxl を対象にしています。原典: https://github.com/anthropics/financial-services
