データ分析

Google Sheetsの名前付き範囲完全ガイド【FP&A向け】

ModelMonkey2026年6月21日読了約 2 分

レバードFCF(LFCF)をリターン分析タブへ引っ張る数式を比べてみましょう。

// 名前付き範囲なし
='Cash Flow'!$F$47 * (1 - Assumptions!$C$12) / (Assumptions!$C$4 - Assumptions!$C$8)

// 名前付き範囲あり
=LFCF * (1-TaxRate) / (WACC - TerminalGrowthRate)

計算ロジックはまったく同じです。でも後者なら、その場にいる誰もがすぐ検証できます。

名前付き範囲の基本操作

データ → 名前付き範囲 を開き、「範囲を追加」をクリックして名前を入力し、対象のセルや範囲を指定するだけです。名前はアルファベットで始まる必要があり、A1形式のアドレス(例:C4)と紛らわしい名前は使えません。最大250文字まで設定でき、1スプレッドシートあたり最大500個まで登録できます。連結決算モデルでもない限り、この上限に達することはまずないでしょう。

定義した名前付き範囲は絶対参照のように機能します。どのタブのどのセルに =WACC と入力しても、指定した参照元の値が返ってきます。また、特定のシートにスコープを限定することもできます。同じ変数名を複数のシナリオタブで使い回したいときに便利な設定です。

名前ボックス(数式バー左のドロップダウン)は、レビュー中に特定の名前付き範囲へ素早く移動するための最短ルートです。WACC と入力するだけで、参照元セルに一発でジャンプできます。

複数タブの財務モデルでの活用

名前付き範囲が本当に力を発揮するのは、複数タブにまたがる財務モデルです。標準的な三表モデルには、Assumptions(前提条件)・P&L(損益計算書)・Balance Sheet(貸借対照表)・Cash Flow(キャッシュフロー)・Returns Analysis(リターン分析)の各タブが最低限必要です。名前付き範囲なしでは、タブをまたぐすべての数式が座標文字列になってしまい、誰かが行を追加するだけで気づかないうちに参照がずれる恐れがあります。

名前付き範囲を使ったクロスタブのSUMIFSはこのようになります。

// 名前付き範囲を使った四半期売上のSUMIFS
=SUMIFS(
  'P&L'!C:C,
  'P&L'!B:B, ">=" & PeriodStart,
  'P&L'!B:B, "<=" & PeriodEnd,
  'P&L'!A:A, SegmentFilter
)

PeriodStartPeriodEndSegmentFilter はすべてAssumptionsタブのセルを指す名前付き範囲です。数式は読みやすく、入力値は一元管理されており、期間を変更したければ1つのセルを編集するだけ。8タブにわたる40以上のSUMIFSを探し回る必要はありません。

DCFモデルのAssumptionsタブの標準的な構成例を示します。

名前参照先
WACCAssumptions!$C$49.8%
TerminalGrowthRateAssumptions!$C$52.5%
TaxRateAssumptions!$C$626.0%
RevenueBaseAssumptions!$C$74,200万円
EBITDAMultipleAssumptions!$C$814.2x
HoldPeriodAssumptions!$C$95

ターミナルバリューの数式はこうなります。

=((LFCF_Year5 * (1 + TerminalGrowthRate)) / (WACC - TerminalGrowthRate)) / (1 + WACC)^HoldPeriod

これなら誰でもレビューできます。座標だらけのバージョンは、まるで遺跡の発掘作業です。

名前付き範囲 vs. テーブルの構造化参照

Googleは2023年末にSheetsのテーブル機能を導入し、Excelユーザーがずっと使ってきた =Table1[Revenue] のような構造化参照をSheetsでも利用できるようになりました。2026年6月現在、この機能の登場によって使い分けの基準が明確になっています。

名前付き範囲テーブル(構造化参照)
向いている用途単一セルの前提条件・定数・クロスタブ入力列方向のトランザクションデータ、行数が変動するデータ
行追加で自動拡張しないする
クロスタブの構文シンプル(=WACC冗長(='Sheet1'!Table1[Revenue]
行挿入後も維持維持される(範囲がロックされていれば)自動で維持
SUMIFSの条件に使える使える使える
数式バーでの表示名前で表示列ヘッダーで表示
1ファイルあたりの上限500個上限の記載なし

実務的な使い分けはシンプルです。Assumptionsタブには名前付き範囲(モデル全体を動かす30〜50個の前提値)、トランザクションデータにはテーブル(SKU別粗利、案件パイプライン、人員名簿)。テーブルでAssumptionsを管理しようとすると、前提条件ごとに列が増える悪夢のような構造になります。逆に3,000行の売上データを名前付き範囲で管理しようとすれば、四半期ごとに範囲の境界を手動更新する羽目になります。

見落としがちな注意点もあります。SUMIFSで 'P&L'!C:C のような列全体の参照を使うと、データが数万行規模になったときに計算が重くなります。Google公式ドキュメント「Google Sheetsのパフォーマンスを改善する」では、列全体の参照よりも範囲を絞った参照のほうが大規模データでは明らかに高速であると説明されています。また、Google Workspace Developers向けの「Apps Script best practices」でも、スプレッドシートAPIの呼び出し回数削減と合わせて範囲の限定を推奨しています。Revenue_FY2026'P&L'!C2:C1000 のように範囲を限定した名前付き範囲を使えば、可読性とパフォーマンスを両立できます。

名前付き範囲が壊れるケースと対処法

サイレントなずれ。 GrossMarginP&L!$C$12 に定義したあと、12行目より上に2行挿入すると、名前付き範囲は自動的に追従します。ところが、コピー&ペーストで上書きした場合は追従しません。名前付き範囲のアンカーがある箇所では、必ず「行を挿入」を使い、貼り付けによる上書きは避けてください。

スコープの衝突。 Sheet1にスコープを限定した Revenue と、Sheet2にスコープを限定した Revenue は別物です。Sheet3の数式で =Revenue を呼び出すと、意図しない方が解決される可能性があります。複数の案件や事業ユニットをまたぐシナリオモデルを構築するときは、スコープを明示するようにしましょう。

削除後のクリーンアップ忘れ。 名前付き範囲の参照元セルを削除すると、その名前はエラーを指したままになります。その名前を使った数式はすべて #REF! を返します。モデルを引き渡す前には必ず データ → 名前付き範囲 を開いて壊れた参照がないか確認してください。2分で完了し、CFOへの説明責任を守れます。

500個の上限。 多いように見えますが、複数事業会社の連結モデルにシナリオフラグ・為替レート・事業部ごとのドライバー前提を詰め込んでいくと意外と近づきます。そこまで複雑になる場合は、事業会社ごとのプレフィックスを付ける(CO1_WACCCO2_WACC)という運用が現実的です。名前ボックスのフィルタで検索しながら管理することになりますが、頭の中だけで全体像を把握しようとするよりは確実です。

Apps Scriptで名前付き範囲を自動化する

四半期ごとに複製して使うモデルテンプレートを構築しているなら、30個の名前付き範囲を毎回手動で定義するのは非効率です。短いApps Scriptで自動化できます。

function defineModelNamedRanges() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const assumptions = ss.getSheetByName('Assumptions');

  // 名前 → AssumptionsタブのA1記法のマッピング
  const ranges = {
    'WACC':               'C4',
    'TerminalGrowthRate': 'C5',
    'TaxRate':            'C6',
    'RevenueBase':        'C7',
    'EBITDAMultiple':     'C8',
    'HoldPeriod':         'C9',
    'PeriodStart':        'C12',
    'PeriodEnd':          'C13'
  };

  // 重複を避けるため、既存の名前付き範囲を先に削除
  ss.getNamedRanges().forEach(nr => {
    if (ranges[nr.getName()]) nr.remove();
  });

  // 名前付き範囲を新規作成
  Object.entries(ranges).forEach(([name, cell]) => {
    ss.setNamedRange(name, assumptions.getRange(cell));
  });
}

拡張機能 → Apps Script に貼り付けて一度実行すれば、8つの名前付き範囲がすべて設定完了です。

取締役会資料を名前付き範囲で構築する

具体的なシナリオで考えてみましょう。四半期の取締役会資料として、P&L・キャッシュフロー・KPI・エグゼクティブサマリーを一つのファイルにまとめています。サマリータブにはモデル全体から12個のセルを数式エラーなく引っ張ってくる必要があります。

名前付き範囲があれば、サマリータブは誰でも検証できる状態になります。

// エグゼクティブサマリータブ(取締役会資料)
B5:  =RevenueActual                        // 売上:4,200万円
B6:  =RevenueActual/RevenueBudget - 1      // 予算比差異
B7:  =GrossMarginPct                       // 粗利益率:38.5%
B8:  =EBITDAActual                         // EBITDA:1,100万円
B9:  =EBITDAActual/RevenuePlan             // EBITDAマージン:26.2%
B10: =RunwayCurrent                        // 資金残存期間:14ヶ月

レビュアーは5分以内にすべての数値を参照元と照合できます。座標の羅列では同じ作業に20分かかり、ヒューマンエラーも混入します。

資金残存期間のセンシティビティ分析(採用ペースとバーンレートの掛け合わせ)では、シナリオ入力セルを HiringScenario_LowHiringScenario_MidHiringScenario_High と名付け、出力は RunwayCurrent から参照します。シナリオの切り替えはセル1つを変えるだけ。3つのSUMIFSを全部つなぎ直す必要はありません。

よくある質問(FAQ)

Q. 名前付き範囲と通常のセル参照は何が違いますか?

通常のセル参照($C$4 など)は、行や列が追加・削除されると参照がずれることがあり、数式を見ただけでは何を意味するか判断できません。名前付き範囲は人が読める名前(WACC など)でセルを参照するため、数式の意図が明確になり、Assumptionsタブの一元管理と組み合わせることでモデル全体の保守性が大幅に向上します。

Q. 名前付き範囲は何個まで作れますか?

1スプレッドシートあたり最大500個です。標準的なDCFモデルや三表モデルであれば30〜50個程度で収まるため、通常は上限を意識する必要はありません。複数事業会社の連結モデルでは、CO1_WACCCO2_WACC のようにプレフィックスで整理することを推奨します。

Q. 名前付き範囲が #REF! エラーになった場合はどう対処すればよいですか?

参照元セルが削除されたか、シートが削除されたことが原因です。データ → 名前付き範囲 を開き、エラーが表示されている名前付き範囲を特定して参照先を修正するか、不要であれば削除してください。モデルの引き渡し前にこの確認を行うことを習慣化すると、レビュー時のトラブルを防げます。

Q. 名前付き範囲とテーブルの構造化参照はどちらを使うべきですか?

用途によって使い分けるのが正解です。WACCや税率など単一セルの前提条件・定数には名前付き範囲、SKU別粗利や案件パイプラインなど行数が変動する列方向のデータにはテーブルの構造化参照が適しています。両者を適切に組み合わせることで、可読性・保守性・パフォーマンスの三つを同時に確保できます。

Q. 名前付き範囲はExcelと互換性がありますか?

Google SheetsとExcelはいずれも名前付き範囲をサポートしていますが、仕様に若干の差異があります。SheetsファイルをExcel形式(.xlsx)でエクスポートすると名前付き範囲は引き継がれますが、スコープ設定やApps Scriptによる自動化はExcel側では機能しません。クロスツールでの共同作業が多い場合は、エクスポート後に名前付き範囲の動作確認を行うことを推奨します。

Q. 名前付き範囲の名前に使えない文字はありますか?

名前はアルファベットで始まる必要があり、スペースは使えません(アンダースコア _ で代替可能)。また、A1・B2など既存のセルアドレスと混同されるような名前も使用できません。最大250文字まで設定可能です。RevenueBase_FY2026 のように意味が明確で一意性のある命名規則を定めると、チームでの管理がしやすくなります。

まとめ

名前付き範囲は、本格的な複数タブ財務モデルの結合組織です。定数・前提条件・単一セルのドライバーには名前付き範囲を使ってください。行数が増減する列方向のトランザクションデータにはテーブルの構造化参照を使ってください。シナリオモデルではスコープを明示し、引き渡し前には壊れた参照を必ず確認してください。20〜30個の適切に命名された範囲があれば、モデルの論理構造はチームの誰もが、数式の説明なしで読み解けるようになります。

ModelMonkeyのプランを選ぶ - Google SheetsとExcelの両方に対応しています。