Google SheetsでDCFモデルを作る方法(2026年版)
仮定値シートから株式価値ブリッジ・感度分析まで、6タブ構成の投資家向けDCFモデルをGoogle Sheetsで完全構築。実務で使えるすべての数式を丁寧に解説します。
Google Sheetsを使い、仮定値(Assumptions)シートから始まり株式価値ブリッジと感度分析テーブルに至るまで、6つのリンクされたタブで構成された投資家向けDCFモデルを完全に構築します。すべての数式はタブ間で正しくクロスリファレンスされており、ターミナルバリューのチェック機能も備えているため、銀行シンジケートのレビューで恥をかく心配がありません。
本ガイドでは、LTM売上高35億円・EBITDAマージン18.7%のB2B SaaS(サブスクリプション型収益モデル)事業を例に、5年間の事業予測モデルを構築します。自社の前提値に差し替えても、このモデル構造は業種を問わず機能します。
必要なもの
- 実績値またはLTM財務データを含む既存データタブがあるGoogle Sheets
- 売上高、売上原価(COGS)、販管費(OpEx)、減価償却費(D&A)、支払利息を含むLTM損益計算書
- 純負債ポジション算出のためのバランスシート
- ベータ値の情報源(Bloomberg、Damodaran、または比較可能な上場企業セット)
- 名前付き範囲と絶対参照に関する基本的な実務知識
ステップバイステップ
DCFタブのアーキテクチャを設計する
数式を一つも書く前にタブの順序を正しく設計することで、後から循環参照の地獄に陥るリスクを防げます。Google SheetsのクリーンなDCFモデルは左から右へと流れ、データはAssumptionsから出力タブへ一方向に流れます。右側のタブを参照するタブが存在してはなりません。
- Assumptions** - すべての入力セルをここに集約します。他のすべてのタブはここを参照し、逆方向の参照は行いません
- Revenue & OpEx** - EBITDAまでのP&Lを構築するタブで、すべての値はAssumptionsから駆動されます
- FCF** - アンレバード・フリーキャッシュフローを計算するタブで、Revenue & OpExのデータを参照します
- WACC** - 資本コストを構築するタブで、Assumptionsの入力値のみを参照します
- DCF** - 割引エンジン、ターミナルバリューの計算、EV・株式価値ブリッジを含むタブ
- Sensitivity** - WACCと永続成長率をパラメータとして、EV出力に対する感度分析テーブルを構築するタブ
Pro Tip
Assumptionsの左上に「モデルバージョン」セルと日付を入れておきましょう。DCF_v7_FINAL_2.xlsxのようなファイルがメールで飛び交う状況になったとき、どれが最新版か一目でわかります。Assumptionsタブを構築する(唯一の真実の情報源)
変動する可能性のある全ドライバーをここに集約します。他の場所にはハードコードしません。売上成長率の前提がAssumptionsとRevenue & OpExの両方に存在していれば、そのモデルはいずれサイレントに壊れます。
Assumptionsを明確にラベル付けされたブロックで構成してください:売上ドライバー、マージン・ドライバー、設備投資・運転資本(Capex & NWC)、税率、WACC入力値。主要セルに名前付き範囲を設定することで、数式がドキュメントのように読みやすくなります。
名前付き範囲の設定例:
RevGrowth → Assumptions!$B$5 (売上CAGR:12.5%)
EBITDAMargin → Assumptions!$B$8 (18.7%)
TaxRate → Assumptions!$B$12 (26.0%)
TerminalGrowth→ Assumptions!$B$15 (3.0%)
NetDebt → Assumptions!$B$20 (900,000,000)
予測年度については、Assumptionsに単一の基準年度を設定し、すべての列ヘッダーを動的に導出します。Revenue & OpExタブのヘッダーは次のようになります:
='Assumptions'!$B$2 (基準年度、例:2025年)
='Assumptions'!$B$2+1 (2026年)
='Assumptions'!$B$2+2 (2027年)
これにより、年次更新で基準年度を前進させる際も1つのセルを変更するだけで済み、6タブにわたる検索・置換は不要になります。
Pro Tip
Assumptionsの末尾に「チェック」セクションを追加しましょう。バランスシートが整合しているか、FCFの符号規則が一貫しているかを判定し、「OK」または「ERROR」と表示するセルを1つ用意します。構築に10分かかるだけで、PDFに出力する前に入力ミスを検出できます。売上高とEBITDAを予測する
Revenue & OpExはモデルの信頼性が決まるタブです。P&L全体に単一の成長率を適用するのは簡易スクリーニングとしては十分ですが、実務モデルでは製品ラインやコホートごとに売上を分けて、マージン前提とボリューム前提を別々に流します。
Assumptionsから単一の成長率を参照する5年予測の場合:
売上高行(B5:F5、B5が1年目):
B5: ='Assumptions'!$B$3*(1+RevGrowth)
C5: =B5*(1+RevGrowth)
EBITDA行(B8:F8):
B8: =B5*EBITDAMargin
D&A行(B10:F10、売上高比率):
B10: =B5*'Assumptions'!$B$9
複数の収益ストリームをモデル化する場合は、コホートまたはSKUレベルのタブにSUMIFSを使うと監査しやすくなります:
=SUMIFS('Revenue Detail'!$D:$D,
'Revenue Detail'!$B:$B, ">="&'Assumptions'!$B$3,
'Revenue Detail'!$C:$C, "Recurring")
LTM売上高35億円を年率12.5%で複利成長させると、5年目の売上高は約64億円に達します。EBITDAマージンが18.7%で安定すれば、5年目のEBITDAは約12億円になります(マージン拡大前提を加算する前の数値です)。
Pro Tip
予測の左側に実績列を設け、差異行をハードコードしておきましょう。四半期ごとにLTM実績を更新した際、差異行がモデルと実態のズレをすぐに教えてくれます。DCF用のアンレバード・フリーキャッシュフローを計算する
アンレバードFCF(UFCF)はファイナンスを除外します。支払利息も借入返済も含みません。資本構成に依存しない、全額自己資本で調達したと仮定した事業価値を評価するためのものです。資本構成の影響はここではなく、WACCに反映されます。
計算式:UFCF = NOPAT + D&A − 設備投資(Capex)− 運転資本変化額(ΔNWC)
EBIT行(B5:F5)はRevenue & OpExを参照:
B5: ='Revenue & OpEx'!B12 - 'Revenue & OpEx'!B14
NOPAT行(B7:F7):
B7: =B5*(1-TaxRate)
UFCF行(B12:F12):
B12: =B7
+'Revenue & OpEx'!B10 (D&Aの加算)
-'Assumptions'!$B$11*'Revenue & OpEx'!B5 (売上高比率のCapex)
-(('Revenue & OpEx'!B5-'Revenue & OpEx'!A5)*'Assumptions'!$B$13) (ΔNWC)
UFCFモデルをサイレントに壊すポイントがいくつかあります:NWCの符号規則(NWCの増加は資金の流出なのでマイナスになります)、株式報酬(SBC)の取り扱いの不一致、EBITへの受取利息の混入などです。割引計算を行う前に、EBITラインを損益計算書と照合してください。
このモデルでは、UFCFは1年目の約3.2億円から5年目の約5.7億円へと増加します。
Pro Tip
「UFCFチェック」行を独立して構築しましょう。EBITDA − EBIT課税額 − Capex − ΔNWCからUFCFを計算し、数式で算出した行と比較します。1円でも一致しない場合は、割引を行う前に原因を特定してください。WACCタブを構築する
WACCはモデルが最も間違いやすい箇所です。多くの場合、入力値が古くなっているか、資本構成のウェイトが市場価値ではなく帳簿価値に基づいているのが原因です。
2026年半ば時点で、10年物米国債利回りは約4.3%です。Damodaranの2026年1月時点の米国株式リスクプレミアム推定値は5.5%(pages.stern.nyu.edu で毎年更新)です。ベータ値にはBloombergの生のベータ値をブルーム修正法で1.0方向に調整して使用します:修正済みβ = 0.67 × 生のβ + 0.33。2026年5月時点のBloombergにおける中堅B2B SaaS企業の比較対象セットでは、中央値のレバードベータは1.35でした。
WACCタブの数式(すべての入力値はAssumptionsから参照):
RiskFreeRate: ='Assumptions'!$B$25 (0.043)
ERP: ='Assumptions'!$B$26 (0.055)
BetaLevered: ='Assumptions'!$B$27 (1.35)
CostOfEquity: =RiskFreeRate + BetaLevered*ERP
→ 4.3% + 1.35 × 5.5% = 11.7%
PreTaxCostDebt: ='Assumptions'!$B$28 (0.082)
AfterTaxCostDebt: =PreTaxCostDebt*(1-TaxRate)
→ 8.2% × 0.74 = 6.1%
EquityWeight: ='Assumptions'!$B$30 (0.90)
DebtWeight: =1-EquityWeight (0.10)
WACC: =CostOfEquity*EquityWeight + AfterTaxCostDebt*DebtWeight
→ 11.7% × 0.90 + 6.1% × 0.10 = 11.2%
市場価値ウェイトを使用してください。帳簿価値は使いません。非上場企業で時価総額がわからない場合は、反復計算が標準的なアプローチです:資本構成を仮定してWACCを計算し、EVを算出してインプライドの時価総額を導出し、ウェイトを更新するというプロセスを収束するまで繰り返します(通常2〜3回)。
Pro Tip
WACCタブ自体に感度メモを追加しておきましょう。ERPの±50bpsとベータの±0.2に対するWACC出力を示した表です。レビュアーは必ずこの2つのインプットから質問してきます。キャッシュフローを割り引いてDCF評価を完成させる
ここでモデルが出力を生み出します。DCFタブはFCFタブからUFCFを取り込み、WACCで割り引き、ゴードン成長モデルを使ってターミナルバリューを計算し、企業価値から株式価値へのブリッジを行います。
割引ファクター(5行目、B5:F5):
B5: =1/(1+WACC)^1
C5: =1/(1+WACC)^2
...
F5: =1/(1+WACC)^5
FCFの現在価値(6行目、B6:F6):
B6: =FCF!B12*B5
FCF現在価値の合計:
=SUM(B6:F6) → 約17億円
ターミナルバリュー(永続成長法):
=FCF!F12*(1+TerminalGrowth)/(WACC-TerminalGrowth)
→ 5.7億円 × 1.03 / (0.112 - 0.030) = 約71億円
ターミナルバリューの現在価値:
=TerminalValue * F5 → 約42億円
企業価値(EV):
=SUM(B6:F6) + PVTerminalValue → 約59億円
株式価値ブリッジ:
=EnterpriseValue - NetDebt → 約50億円
ここではターミナルバリューが企業価値全体の約71%を占めています。このような成長プロファイルで5年の予測期間であれば標準的な比率ですが、TV比率が低い10年モデルに慣れた投資家には事前に説明しておく価値があります。TV比率が75%を超える場合は、通常、予測期間が短すぎるか、ターミナル前提値が過大な役割を果たしていることを意味します。
ブリッジの下に「チェック」セクションを追加してください:TV対EV比率、インプライドEV/EBITDA出口倍率(企業価値÷5年目EBITDA)、および出口倍率から逆算した永続成長率の整合性を確認します。これらの数値が内部的に整合していない場合、モデルのどこかに誤りがあります。
Pro Tip
キャッシュフローの発生タイミングが厳密な年度末ではない場合は、NPVの代わりにXNPVを使いましょう。XNPV('DCF'!$B$3, FCF!B12:F12, FCF!B4:F4)は期中タイミングを正確に処理します。クロージング日が1月1日でない取引では重要な違いになります。感度分析テーブルを構築する
感度分析テーブルのないDCFはモデルではなく、単なる点推定値です。最も重要な2軸は、一方にWACC、もう一方に永続成長率、セルに株式価値です。自動的に再計算される2変数データテーブルとして構築してください。
テーブルは、列ヘッダーにWACC値(9.2%、9.7%、10.2%、…、13.2%)、行ヘッダーに永続成長率(2.0%、2.5%、3.0%、3.5%、4.0%)を並べて設定します。データテーブルの左上セルはDCFタブの株式価値出力を参照します。
左上の参照セル(例:B20):
='DCF'!$B$22 (株式価値の出力)
テーブルの構築手順:
1. 行・列ヘッダーを含む全範囲をハイライト
2. データ → データの入力規則 → ...(Excelの場合:データ > What-If分析)
Google Sheetsでは、データテーブルにはApps Scriptが必要です。軽量な代替手段:
- WACCと成長率の入力値を明示的に列挙したヘルパータブを作成する
- INDEX/MATCHを使って各シナリオの組み合わせから株式価値を取得する
ヘルパー数式(感度グリッドのC22セル、B22=WACC上書き値、C21=成長率上書き値):
=IFERROR(
(NPV(B22, FCF!$B$12:$F$12) +
FCF!$F$12*(1+C21)/(B22-C21) / (1+B22)^5) -
Assumptions!$B$20,
"N/A")
WACC 9.2%〜13.2%、永続成長率2.0%〜4.0%で構成される25セルのグリッドにより、株式価値のベースケース約50億円を中心に、約28億円(高WACC・低成長)から約78億円(低WACC・高成長)までのレンジを可視化できます。このスプレッドがバリュエーション交渉の幅になります。
Pro Tip
売上成長率対EBITDAマージンの第2感度テーブルも追加してください。投資家はほぼ例外なく、割引率よりも先にトップラインにプレッシャーをかけてきます。まとめ
Google Sheetsで正しく構築されたDCFモデルは、6つのリンクされたタブと約200〜300のセル数式、そして精度があるかのような見せかけをせず可能な結果のレンジを示す感度グリッドで構成されます。最も多い失敗パターンは計算式の誤りではなく、タブ全体に散在したハードコードの前提値が陳腐化し、更新されないままになることです。
アーキテクチャは数式と同じくらい重要です。Assumptionsがすべてのタブにデータをフィードします。FCFはWACCを参照しません。DCFタブは読み取り専用の出力です。そのように構築すれば、クロージングから6ヶ月後にアソシエイトがジュニア・アナリストに引き継いでも、モデルは監査可能な状態を保ちます。
Google Sheetsがネイティブで苦手とする唯一の機能がデータテーブルの再計算です。上流の前提値が変更された際に感度グリッドを自動的に再構築し、手動の再計算やApps Scriptの回避策を必要としないのがModelMonkeyです。
ModelMonkeyのプランを選ぶ。Google SheetsとExcelの両方に対応しています。
よくある質問
DCFの予測期間は何年が適切ですか?
バイサイドおよびセルサイドのモデルでは、高成長企業には5年、成熟した安定キャッシュフロー企業には10年を使用するのが一般的です。正解は「事業が定常状態に達するまでの年数」ですが、実務では5年が標準です。10年を超えると偽の精度が加わります。8年目のEBITDAマージン前提は推測に過ぎませんが、モデルは事実として扱ってしまいます。
DCFの永続成長率はどの程度が妥当ですか?
永続成長率は長期の名目GDP成長率を超えるべきではありません。2026年時点で、米国企業であれば一般的に2.5〜3.5%が目安です。日本国内事業を主体とする企業であれば、長期的な名目GDP成長の観点から0.5〜1.5%程度を基準にしてください。4%以上を使うと、いずれその会社が経済全体よりも大きくなってしまうという数学的な問題が、思ったより早く顕在化します。保守的な案件では1.5%(日本企業なら0.5%)まで下げてストレステストを行いましょう。
ターミナルバリューがほとんどのDCFで企業価値の70%超を占めるのはなぜですか?
近い将来のキャッシュフローを大きく割り引く一方で、ターミナルバリューは予測期間を超えたすべてのキャッシュフロー(企業の存続期間のほとんど)を捉えているためです。WACC 11.2%で5年の予測期間を設定すると、5年目のキャッシュフローはすでに額面1円につき約0.59円の価値しかありません。TV比率が70%超であること自体は問題ではなく、算術の結果です。問題は、TV比率が85%超になる場合で、予測期間が短すぎるか、ターミナルマージンが楽観的すぎることを示しています。
株式価値ブリッジでの純負債の扱い方は?
純負債 = 有利子負債の合計 − 現金および現金同等物です。企業価値から純負債を差し引いて株式価値を算出します。よくある間違い:オペレーティング・リース(IFRS 16適用下では原則として資本化が必要であり、EBITDAへの算入方法との整合が重要です)の見落とし、アーンアウト債務の無視、市場価値ではなく帳簿価値ベースの負債使用(企業が財務的に健全であれば両者はほぼ一致しますが、財務困難な企業では乖離します)。
Apps ScriptなしでGoogle SheetsにDCFを構築できますか?
はい、割引計算、ターミナルバリュー、株式価値ブリッジはすべてGoogle Sheetsのネイティブ数式で実現できます。ネイティブのSheetsが対応していないのは、感度分析用の2変数データテーブルだけです。Excelではネイティブに対応していますが、Sheetsでは対応していません。回避策は、ステップ7で示した数式駆動のグリッドを使うか、WACCと成長率の組み合わせを反復してレンジに結果を書き出す短いApps Script関数を使う方法があります。