「月別シートを切り替えてダッシュボードを作りたい」
「セル番地を動かしてコピー作業をゼロにしたい」
そんな悩みを一発解決してくれるのが INDIRECT 関数。
本記事では 実際の表データ+数式+出力結果 をセットで示しながら、
ビジネスで役立つ使い方をわかりやすく解説します。
1. INDIRECT関数 ── 参照を「文字列」で自在に操る!
■ 基本構文
=INDIRECT(参照文字列, [is_A1])
| 引数 | 内容 | 既定値 |
|---|---|---|
| 参照文字列 | シート名・セル番地・範囲を文字列で指定 | 必須 |
| is_A1 | TRUE: A1形式 / FALSE: R1C1形式 | TRUE |
2. 基本ワザ:シート名をセルで切り替える
■ サンプルデータ(集計シート)
| A列 | B列 | |
|---|---|---|
| 1 | 月名 | 売上 (数式) |
| 2 | Jan | |
| 3 | Feb | |
| 4 | Mar |
各月シートには セル B2 に月間売上が入っている想定。
■ 数式(B2 に入力して下へコピー)
=INDIRECT("'"&A2&"'!B2")
■ 出力結果
| 月名 | 売上 |
|---|---|
| Jan | 120,000 |
| Feb | 98,000 |
| Mar | 135,000 |
ポイント
・シート追加は A 列に月名を入力するだけ
・ダッシュボードを毎月更新する手間が激減!
3. 行・列を動的に:コピーしてもズレない式
■ サンプルデータ(勤怠表)
| B列 | C列 | D列(数式) | |
|---|---|---|---|
| 1 | 社員名 | 月間勤務時間(h) | |
| 2 | 佐藤 | 160 | |
| 3 | 鈴木 | 168 | |
| 4 | 田中 | 152 |
■ 数式(D2 に入力して下へコピー)
=INDIRECT("C"&ROW())
■ 出力結果
| 社員名 | 月間勤務時間(h) | 参照コピー列 |
|---|---|---|
| 佐藤 | 160 | 160 |
| 鈴木 | 168 | 168 |
| 田中 | 152 | 152 |
ポイント
ROW() で「今いる行」を取得 → 列 C と連結
式をどこにコピーしても 同じ行の列 C を参照
4. 応用ワザ:INDIRECT × ほかの関数
| 目的 | サンプル式 | 効果 |
|---|---|---|
| 月別シートを一括取り込み | =ARRAYFORMULA({INDIRECT("'"&A2:A13&"'!A2:D")}) | 1 月〜12 月のデータを縦に連結 |
| 範囲名をセルで切替える SUM | =SUM(INDIRECT(B1))(B1 に 売上範囲_2025 など範囲名を記載) | 年度・商品カテゴリ別の集計を一発切替 |
| IMPORTRANGE を動的に | =INDIRECT("IMPORTRANGE("""&C1&""",""シート1!A2:B"")") | 外部スプレッドシートの URL をセルで管理 |
| R1C1形式で列固定 | =INDIRECT("R"&ROW()&"C2", FALSE) | コピーしても列ズレしない評価式が作れる |
5. ビジネス活用シーン
| シーン | 使い方イメージ | 効果 |
|---|---|---|
| 経営管理:月次ダッシュボード | 月名プルダウン → INDIRECT で KPI 範囲参照 | シート追加だけで自動反映 |
| 営業:担当別売上レポート | 担当者名セル → '担当者'!売上範囲 を INDIRECT | 担当変更や新規加盟も数式編集ゼロ |
| 人事:部門別人件費シミュレーション | 部門_年度 のシート名を文字列連結して参照 | パラメータを変えるだけで多軸比較 |
| マーケ:A/B テスト集計 | テスト名セル → 各シートの結果を INDIRECT で取得 | パターン追加時の作業を自動化 |
| 経理:予算 vs 実績管理 | 「予算_2025」「実績_2025」を動的参照 | 年度を切り替えるだけで比較更新 |
6. よくあるエラー & 回避策
| 症状 | 主な原因 | 対処 |
|---|---|---|
| #REF! | シート名・セル番地が存在しない | スペル要確認 / IFERROR( … , "" ) で空白表示 |
| #VALUE! | シート名にスペース・日本語 | 'シート名'!A1 とシングルクォートで囲む |
| 計算が遅い | INDIRECT は再計算が重い | 必要最小限に絞る/集計後に貼り付け値に |
7. まとめ & 早見表
| 目的 | 代表式 | キーワード(具体例) |
|---|---|---|
| シート跨ぎ参照 | =INDIRECT("'"&シート名&"'!セル") | 別シート値を瞬時取得 |
| 行・列を動的に | =INDIRECT("C"&ROW()) | コピーしてもズレ防止 |
| 範囲名を可変 | =SUM(INDIRECT(セル)) | 集計対象をセルで切替 |
| 多シート集約 | =ARRAYFORMULA({INDIRECT(...)}) | 月別データを一括集約 |
INDIRECT で「参照そのもの」を操ろう!
月次レポートも部門別分析も、シート追加や名前変更に強い柔軟な仕組みが完成します。
ぜひ明日からのスプレッドシート業務に取り入れて、効率アップを実感してください。