lbo-model について
ユーザー提供または標準テンプレートを使って、Excel でレバレッジド・バイアウトモデルを作成するスキルです。数式、書式、セクションごとの検証を案内します。
主な機能
- 01既存テンプレートを優先
- 02数式による計算
- 03LBO各セクションの作成ガイド
- 04入力値と数式の色分け
- 05モデル検証チェックリスト
活用シーン
- 01添付されたLBOワークブックへの入力
- 02資金調達・使途表と債務スケジュールの作成
- 03投資リターンと感応度分析の計算
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ anthropics/ financial-services --skill lbo-modelインストール後、Claude Code で/lbo-modelを入力して読み込まれたか確認します。
詳細
テンプレートに関する要件
このスキルでは、LBO モデルのテンプレートを使用します。必ず最初に添付されているテンプレートファイルを確認してください。
LBO モデルの作成を開始する前に:
- テンプレートファイルが添付または提供されている場合:そのテンプレートの構成をそのまま使用し、コピーしてユーザーのデータを入力します。
- テンプレートが添付されていない場合:ユーザーに次のように尋ねます:「使用したい特定の LBO テンプレートはありますか?なければ、Sources & Uses、Operating Model、Debt Schedule、Returns Analysis を含む標準テンプレートを使用できます。」
- 標準テンプレートを使用する場合:
examples/LBO_Model.xlsxをコピーして作業を開始し、ユーザーの前提条件を入力します。
重要:LBO_Model.xlsx のようなファイルが添付されている場合は、必ずそのファイルをテンプレートとして使用してください。一から作成してはいけません。テンプレートが複雑に見えたり、必要以上に多くの機能が含まれていたりしても、コピーしてユーザーの要件に合わせて調整してください。テンプレートが提供されている場合に、「一から作成する」と判断してはいけません。
Claude への重要な指示 — 最初に読むこと
環境:Office JS と Python
Excel 内(Office アドイン/Office JS 環境)で実行する場合:
- Python/openpyxl は使用せず、Office JS(
Excel.run(async (context) => {...}))を直接使用します。 range.formulas = [["=B5*B6"]]を使って数式を入力します。Office JS の数式は、開いているブック内でネイティブに再計算されます。- 数式を使用し、値をハードコードしないというルールは同じです。計算が必要な項目では、
range.valuesではなく必ずrange.formulasを設定します。 - 青/黒/紫/緑の配色ルールには、
range.format.font.color/range.format.fill.colorを使用します。 - 個別の再計算手順は不要です。Excel がネイティブに計算します。
- 結合セルに関する注意点:
.merge()を呼び出した後、結合範囲に.valuesを設定してはいけません(InvalidArgumentが発生します。範囲は元のサイズのまま報告されます)。代わりに、左上のセルだけに値を書き込み(ws.getRange("A7").values = [["SOURCES & USES"]])、その後、範囲全体を結合して書式を設定します(ws.getRange("A7:F7").merge(); ws.getRange("A7:F7").format.fill.color = "#1F4E79";)。
スタンドアロンの .xlsx ファイルを生成する場合(Excel のライブセッションなし):
- 以下の説明に従って Python/openpyxl を使用します。
- 数式文字列(
ws["D20"] = "=B5*B6")を書き込み、納品前にrecalc.pyを実行します。
このスキルの残りの説明では openpyxl の例を使用していますが、基本原則は Office JS にも当てはまります。API の呼び出しだけを読み替えてください。
基本原則
- すべての計算は Excel の数式にすること — Python で値を計算し、結果をセルにハードコードしてはいけません。openpyxl を使用する場合は、
cell.value = 1250(計算結果)ではなく、cell.value = "=B5*B6"(数式文字列)と記述します。入力値が変更されるとモデルも更新される、動的な状態を保つ必要があります。 - テンプレートの構成を使用すること —
examples/LBO_Model.xlsxまたはユーザーから提供されたテンプレートの構成に従います。独自のレイアウトを考案してはいけません。 - 適切なセル参照を使用すること — すべての数式で適切なセルを参照します。他のセルから取得すべき数値を直接入力してはいけません。
- 符号規則の一貫性を保つこと — テンプレートで使用されている符号規則(キャッシュ流出を負数または正数で表す方式など)に従い、全体を通して統一します。
- 各セクションを順番に進め、各段階でユーザーに確認すること — 1 つのセクションを完成させたら、作成した内容をユーザーに示し、そのセクションの検証項目を実行して、次のセクションに進む前に承認を得ます。モデル全体を最初から最後まで作成してから提示してはいけません。後続のセクションは前のセクションに依存するため、Returns の作成後に Sources & Uses の誤りに気付くと、全体にわたって手戻りが生じます。
数式の色の規則
- 青(0000FF):ハードコードされた入力値。ほかのセルを参照しない、直接入力された数値です。
- 黒(000000):計算を含む数式。演算子や関数を使用する数式です(
=B4*B5、=SUM()、=-MAX(0,B4))。 - 紫(800080):同じタブ内のセルへのリンク。計算を含まない直接参照です(
=B9、=B45)。 - 緑(008000):異なるタブのセルへのリンク。シートをまたぐ参照です(
=Assumptions!B5、='Operating Model'!C10)。
塗りつぶし色のパレット — プロフェッショナルな青とグレー(ユーザーまたはテンプレートから指定がない場合のデフォルト)
- 最小限に抑えてください — セルの塗りつぶしには青とグレーだけを使用してください。緑、黄、赤、複数のアクセントカラーは使用しないでください。プロフェッショナルな LBO モデルでは、色を控えめに使います。
- デフォルトの塗りつぶしパレット:
- セクション見出し(Sources & Uses、Operating Model など):濃い青
#1F4E79、白の太字 - 列見出し(Year 1、Year 2 など):薄い青
#D9E1F2、黒の太字 - 入力セル:薄いグレー
#F2F2F2(または白)。青いフォントが入力値の目印であり、塗りつぶし色は補助的なものです。 - 数式/計算セル:白、塗りつぶしなし
- 主要な出力値(IRR、MOIC、Exit Equity):中程度の青
#BDD7EE、黒の太字
- セクション見出し(Sources & Uses、Operating Model など):濃い青
- パレットは以上です。 青3色、グレー1色、白です。テンプレートに独自の色が使われている場合は、代わりにその色に従ってください。
- 注:上記の青/黒/紫/緑のフォント色は、入力値、数式、リンクを区別するためのものです。ここで示す塗りつぶしのパレットとは別のものですが、両方を組み合わせて使用します。
数値の表示形式に関する基準
- 通貨:テンプレートに応じて
$#,##0;($#,##0);"-"または$#,##0.0 - パーセンテージ:
0.0%(小数点以下1桁) - 倍率:
0.0"x"(小数点以下1桁) - MOIC/詳細な比率:
0.00"x"(精度を高めるため小数点以下2桁) - すべての数値セル:右揃え
まず要件を確認する
数式を入力する前に、次のことを行ってください。
- テンプレートの構造を確認する — すべてのセクションを特定し、タイムライン(各期間がどの列に当たるか)を把握して、既存の数式があれば確認します。
- 不明点があればユーザーに質問する — テンプレートの構造、計算方法、要件が曖昧な場合は、作業に進む前に確認します。
- 主要な前提条件を確認する — 主要な入力値、計算方法に関する希望、個別の要件を確認します。
- テンプレートを理解した後でのみ、数式の入力に進みます。
テンプレート分析フェーズ — まずこれを行う
数式を入力する前に、テンプレートを十分に確認してください。
-
構造を把握する — 各セクションの位置と相互の関係を特定します。どのセクションがほかのセクションに値を渡すかを確認します。
-
タイムラインを理解する — 各期間を表す列を確認します。「Closing」または「Pro Forma」の列があるか、予測期間がどこから始まるかも確認します。
-
入力セルと数式セルを特定する — テンプレートでは、入力が必要なセルと数式が必要なセルを、色分け、罫線、網掛けなどで示していることがよくあります。こうした規則に従ってください。
-
既存のラベルを注意深く読む — 行ラベルには、期待される計算内容が正確に示されています。思い込みで判断せず、テンプレートの指示を読み取ってください。
-
既存の数式を確認する — 一部が入力済みのテンプレートもあります。特に依頼がない限り、正しく機能している数式を上書きしないでください。
-
テンプレート固有の規則を確認する — 符号の規則、小計の構成、セクションの整理方法、項目ごとに別のタブがあるかどうかなどを確認します。
数式の入力 — 基本的な進め方
数式が必要なセルごとに、次の順序で確認してください。
ステップ1:テンプレートを確認する
- セルにすでに数式がありますか?ある場合は、正しいことを確認して次に進みます。
- 想定される計算を示すコメントやメモがありますか?
- 行または列のラベルから、計算内容が明確に分かりますか?
- 隣接するセルに従うべきパターンがありますか?
ステップ2:ユーザーの指示を確認する
- ユーザーは特定の計算方法を指定しましたか?
- この数式に影響する前提条件が示されていますか?
- 特別な要件が記載されていますか?
ステップ 3:標準的な慣行を適用する
- テンプレートにもユーザーの指定にもない場合は、標準的なLBOモデリングの慣行を使用します
- 使用した前提条件をすべて記録します
- 本当に判断に迷う場合は、ユーザーに確認します
よくある問題箇所
以下の計算パターンは、LBOモデル全体で問題を引き起こすことがよくあります。該当する箇所では特に注意してください。
セクションのバランス調整
- 2つのセクションを一致させる必要がある場合(例:資金調達源=資金使途)、通常はいずれかの項目が「調整項目」(バランス調整額)になります
- どの項目が調整項目かを特定し、差額として計算します
税金の計算
- 税金の数式では、関連する損益項目と税率のみを参照します
- 無関係なセクション(例:債務スケジュール)を参照してはいけません
- 損失によって税効果が生じるのか、単に無視されるのかを検討します
利息と循環参照
- キャッシュフローの影響を受ける残高を参照すると、利息計算で循環参照が発生することがあります
- 循環参照を解消するには、期首残高(平均残高や期末残高ではなく)を使用します
- パターン:利息 → キャッシュフロー → 返済 → 期末残高(利息計算で期末残高を使うと循環します)
債務返済/余剰キャッシュによる返済
- 複数の債務トランシェがある場合、通常は返済の優先順位があります
- 余剰キャッシュによる返済は、その優先順位に従う必要があります
- 残高をマイナスにしてはいけません。必要に応じてMAX関数またはMIN関数を使用します
リターンの計算(IRR/MOIC)
- キャッシュフローの符号は正しく設定する必要があります:投資=マイナス、回収額=プラス
- XIRRを使用する場合は、対応する日付が必要です
- IRRを使用する場合、キャッシュフローは連続した期間である必要があります
- MOIC=回収額合計/投資額合計
感応度分析表
- 奇数の行列サイズを使用します(5×5または7×7)。4×4や6×6は使用しないでください。奇数のサイズであれば、真の中央セルを確保できます。
- 中央セル=ベースケースです。 行と列の軸の値は、モデルの実際の前提条件を中心に対称になるように設定します(例:ベースケースのエントリーマルチプルが10.0xの場合、軸は
[8.0x, 9.0x, 10.0x, 11.0x, 12.0x])。中央セルのIRR/MOICは、モデルの実際のIRR/MOIC出力と一致しなければなりません。これにより、表が正しく連動していることを確認できます。 - 中央セルを強調表示します。中程度の青色の塗りつぶし(
#BDD7EE)と太字を使用し、ベースケースが視覚的にわかるようにします。 - ExcelのDATA TABLE関数はopenpyxlでは動作しない場合があります。その場合は、行見出しと列見出しを参照する数式を明示的に記述します
- 各セルには異なる値が表示される必要があります。すべて同じ値になる場合は、数式が正しく変化していません
- 複合参照を使用します(例:行入力には
$A5、列入力にはB$4)
検証チェックリスト - 完了後に実行
数式の検証を実行
python /mnt/skills/public/xlsx/recalc.py model.xlsx
エラーがゼロで正常に完了する必要があります。
セクションのバランス調整
- バランスが必要なセクション(資金調達源/資金使途、資産/負債)が正確に一致している
- 調整項目がバランス調整額として正しく計算されている
- セクション間で一致すべき金額が整合している
損益/事業予測
- 売上高/トップラインがドライバーまたは成長率に基づいて正しく計算されている
- すべての原価および費用項目が適切に計算されている
- 小計と合計が正しく集計されている
- マージンと比率が妥当である
- 前提条件へのリンクが正しい
貸借対照表(該当する場合)
- 資産=負債+純資産(必ず一致する)
- すべての項目が適切なスケジュールまたはロールフォワードにリンクしている
- 期首残高=前期末残高
- チェック行が含まれ、ゼロを示している
キャッシュフロー(該当する場合)
- 正しい損益の数値から始まっている
- 非資金項目が適切に加算/減算されている
- 運転資本の変動の符号が正しい
- 期末現金=期首現金+純キャッシュフロー
- 現金残高が各財務諸表間で整合している
補助スケジュール
- ロールフォワードのスケジュールが一致している(期首残高+変動額=期末残高)
- スケジュールが主たる財務諸表に正しくリンクしている
- 計算項目に適切なドライバーが使用されている
- すべての期間が一貫して計算されている
負債/資金調達スケジュール(該当する場合)
- 期首残高が資金調達額または前期間の残高と一致している
- 適切な残高(通常は期首残高)に基づいて利息が計算されている
- 返済額が利用可能な現金と優先順位に従っている
- 期末残高がマイナスにならない
- 合計に各トランシェが正しく集計されている
リターン/出力分析
- エグジット価値/最終価値が正しく計算されている
- 関連する調整がすべて含まれている
- キャッシュフローの符号が正しい(投資はマイナス、回収額はプラス)
- IRR/MOIC の数式が全範囲を参照している
- シナリオに対して結果が妥当である
感応度分析表(該当する場合)
- グリッドのサイズが奇数(5×5 または 7×7)で、真ん中のセルがある
- 行と列の軸の値がベースケースを中心に対称になっている(
[base-2Δ, base-Δ, base, base+Δ, base+2Δ]) - 真ん中のセルの出力がモデルの実際の IRR/MOIC と一致し、表が正しく設定されていることを確認できる
- 真ん中のセルが強調表示されている(中程度の青の塗りつぶし
#BDD7EE、太字) - 行と列の見出しに適切な入力値が含まれている
- 各データセルに数式が含まれている(ハードコードされていない)
- 各データセルの値が異なっている
- 値が想定どおりの方向に変化する(エグジット倍率が高いほど IRR が上がるなど)
書式設定
- ハードコードされた入力値が青色(0000FF)
- 計算式が黒色(000000)
- 同一タブへのリンクが紫色(800080)
- 別タブへのリンクが緑色(008000)
- すべての数値が右揃えになっている
- 全体に適切な数値形式が設定されている
- エラー値が表示されているセルがない(#REF!、#DIV/0!、#VALUE!、#NAME?)
論理的な妥当性チェック
- 数値の桁数が妥当である
- 傾向が想定どおりである(成長、減少、安定化など)
- 明らかに誤った値がない(正であるべき箇所が負、実現不可能な割合など)
- 主要な出力が分析の種類に対して妥当な範囲内にある
避けるべきよくあるエラー
| エラー | 問題点 | 修正方法 |
|---|---|---|
| 計算値のハードコード | 入力値を変更してもモデルが更新されない | 常に元のセルを参照する数式を使用する |
| コピー後のセル参照の誤り | 数式が誤ったセルを参照する | すべてのリンクを確認し、適切に $ で固定する |
| 循環参照エラー | モデルを計算できない | 利息などの計算には期首残高を使用し、循環を解消する |
| セクションの不一致 | 一致すべき合計が一致しない | 差額として計算する調整項目を 1 つ設ける |
| あり得ないマイナス残高 | 利用可能な額を超えて返済/使用している | MAX(0, ...) または MIN 関数を適切に使用する |
| IRR/リターンのエラー | 符号が誤っている、または範囲が不完全 | キャッシュフローの符号を確認し、数式がすべての期間を含むようにする |
| 感応度分析表の値がすべて同じ | 数式が入力値に応じて変化しない | セル参照を確認する。複合参照($A5、B$4)が必要 |
| 期間繰越の数値が一致しない | 期首残高 ≠ 前期末残高 | 期間間のリンクを確認する |
| 符号の規則が一貫していない | 加算項目が減算になる、またはその逆になる | テンプレートの規則に全体を通じて一貫して従う |
ユーザーと連携する — セクションごとのチェックポイント
- テンプレートの構成が不明確な場合は、作業を進める前に確認してください
- ユーザーの要件がテンプレートと矛盾する場合は、どちらを優先するか確認してください
- 各主要セクションを完了したら、いったん停止し、続行する前にユーザーに確認してください:
- Sources & Uses の完了後 → バランスの取れた表を提示し、プラグが正しいことを確認してもらい、オペレーティングモデルの作成に進む前に承認を得てください
- オペレーティングモデル/予測の完了後 → 予測P&Lを提示し、成長率とマージンが適切に見えることを確認してもらい、債務スケジュールに進む前に承認を得てください
- 債務スケジュールの完了後 → 期首/期末残高と利息を提示し、ウォーターフォールのロジックを確認してもらい、リターンの算出に進む前に承認を得てください
- リターン(IRR/MOIC)の算出後 → キャッシュフロー系列と出力を提示し、符号と範囲を確認してもらい、感応度表に進む前に承認を得てください
- 感応度表の作成後 → 各セルの値が変化することを示し、ベースケースが想定どおりの値になっていることを確認してもらってください
- 確認時にエラーが見つかった場合は、次のセクションに進む前に修正してください
- 作業内容を示してください — 役立つ場合は、主要な数式や前提条件を説明してください
- 各セクションで確認を得ずに、完成したモデルを提示しないでください — 壊れたIRRから誤ったセル参照をさかのぼって特定するより、発生箇所ですぐに見つけるほうが効率的です
このスキルは、テンプレートに正確な数式を入力し、適切に書式を設定して計算結果を検証することで、投資銀行業務の品質に見合うLBOモデルを作成します。財務上の正確性とプロフェッショナルなプレゼンテーション基準を維持しながら、どのようなテンプレート構成にも対応します。