別シートでもOK!テーブル参照の数式と特徴を解説【Excel構造化参照】

本記事では、
Excelのバージョン
本記事は、
環境によっては、
※ 本記事の見出しでは「エクセル」
目次
ポイント|構造化参照(テーブル参照) の基本と注意点
【よく使う形】
| 参照場所 | 数式 | 備考 |
|---|---|---|
| 列X の全体 | テーブル1[列X] | 同じテーブル内ならテーブル名省略可 |
| 列X の見出し | テーブル1[[#見出し],[列X]] | |
| 列X 内の同じ行 | テーブル1[@列X] | |
| 別ブックのテーブル の 列X | 'ブック名.xlsx'!テーブル1[列X] | 一時使用に限定する※ |
※ リンク切れや参照エラーの原因となるため、
【条件付き書式、
→ 「名前の定義」
【うまく動かないときの主な原因】
| 症状 | 対処 |
|---|---|
| セルの数式入力中に構造化参照が自動入力されない | Excelオプションで「テーブル名の使用」 |
| 条件付き書式、 | 名前の定義(またはINDIRECT関数) |
| うまく動かない(その他) | → よくあるエラー・Q&A を参照 |
前知識|構造化参照とは
構造化参照 は、
- セル参照: セル番地 を指定。
(例:A1:A5) - 構造化参照: テーブル名 と 列名 を指定。
(例:テーブル1[列X])
手順|構造化参照の使用方法
テーブルを準備
構造化参照を利用するには、
数式を記入
セルに構造化参照を用いた数式を入力することで、

数式の自動入力:セル選択とオートコンプリート
構造化参照の数式は、
- セル選択:数式入力中にカーソル移動やクリックでテーブルのセルを選択すると、
構造化参照の式が自動で入力されます。 - オートコンプリート:数式入力中にテーブル名や列名の一部を記入すると、
テーブル名や列名の候補がリスト表示されます
(リストの開閉: Alt + ↓ )。
リストから選択(Enter / Tab)することで、 テーブル名やリスト名が挿入可能です。

コピペ(コピー&ペースト)
詳細|構造化参照の数式
数式の構文規則
構造化参照の数式は、
-
テーブル名 :
参照するテーブルの名前を指定。 参照先と参照元が同じテーブルの場合、 省略可能。 -
テーブル指定子 :
テーブル内の特定の範囲を指定。 特殊項目指定子 と 列指定子 から構成され、 どちらか一方のみの指定も可能 (その場合、 角括弧とカンマを省ける) 。 「特殊項目指定子が#データ」 で「列指定子なし」 の場合、 テーブル指定子自体を省略可能。 - 特殊項目指定子 :
テーブル内の特定の行(#見出し、 #データ、 #集計など) を指定(詳細は後述) 。 - 列指定子 :
テーブル内の列名を指定。
- 特殊項目指定子 :
数式の特殊項目指定子
テーブル内で参照する 行 を指定するための指定子です。
| 指定子 | 参照範囲・意味 | 備考 |
|---|---|---|
| #すべて | テーブル全体 | |
| #データ | データ行 | 特殊項目指定子を省略した場合と同等で、 |
| #見出し | 見出し行 | |
| #集計 | 集計行 | 集計行が非表示の場合、 |
| @ | 自身と同じ行 | テーブル指定子内の角括弧とカンマは不要。 |
"@" を使った構造化参照式の例
- 「自身と同じ 行全体 」
を指定する例 :
テーブル名[ @ ] - 「自身と同じ 行の特定の列 (列名に特殊文字を 含まない含まない )
」 を指定する例 :
テーブル名[ @見出し名 ] - 「自身と同じ 行の特定の列 (列名に特殊文字を 含む含む )
」 を指定する例 :
テーブル名[ @[見出し 名] ](角括弧で見出し名を囲む)
別シート参照時の数式
別のシートにあるテーブルを参照する場合、
- 同一ブックの場合 :
数式は変化しない。
同じブック内であれば、テーブル名を指定するだけでどのシートからでも参照可能。 - 別ブックの場合 :
数式の先頭に'ブック名.xlsx'!を追加する
(例:='ブック名.xlsx'!テーブル名[見出し名])。

同一ブック内であれば、
外部参照での数式の使用は非推奨
外部参照(別のブックの参照)
セル参照 か 構造化参照 かに関わらず、
参照元のブックを開かずにデータを更新でき、
特徴|構造化参照のメリット・デメリット
構造化参照には、
✅ メリット:自動拡張と可読性の向上
-
参照範囲が自動で拡張される :
参照元のテーブルにデータを追加しても、 参照側の範囲が自動で広がるため、 数式を修正する手間が省けます。 セル位置に依存しない数式 を作成するときに役立ちます。 -
可読性が向上する :
「テーブル名」 と「見出し名」 を記述して参照場所を指定するため、 数式の可読性が向上します。 セル参照と比較して、 数式を見ただけで何を参照しているか判別しやすくなります。

外部参照(別ブックの参照)
構造化参照は外部参照のリンク切れに強い
外部参照(別ブックの参照)
外部参照の場合はしてくれません。
外部参照 の場合は、
ただし、
数式でなく Power Query を使うことで、
❌ デメリット:細かい参照位置の指定が苦手
-
マウス操作で参照場所を変更できない :
セル参照では数式編集中に 参照位置や範囲をマウスのドラッグで変更 できますが、 構造化参照ではできません。 -
参照場所の固定・移動の切り替えが苦手 :
数式を別のセルに複製する際、 参照位置を「( 絶対参照 のように) 固定するか」 「( 相対参照 のように) 移動するか」 を細かく設定するのが苦手です。

数式を複製するときの絶対参照 / 相対参照の挙動の切り替えは可能ですが、
使いどころ
構造化参照は、
例 :
=SUM(テーブル1[列X]) → 列Xにデータを追加しても、
「自動拡張」

基本的には、
小技1|行指定(特定の行を参照する)
構造化参照では「テーブルの何行目か」
| 参照場所 | 数式例 | 備考 |
|---|---|---|
| (見出し) | テーブル1[[#見出し],[列X]] | |
| 1行目(先頭行) | INDEX(テーブル1[列X], 1) | |
| n行目 | INDEX(テーブル1[列X], n) | n は任意の数値 |
| 最終行 | INDEX(テーブル1[列X], ROWS(テーブル1)) | データ追加に追従する |

テーブル1[列名][1] のような書き方はできません。
小技2|参照する行・列を固定(絶対参照と相対参照)
列の固定と行の固定では、
列の固定
列列 を固定する方法には以下の2つがあります。
- オートフィルでなくコピペを使う
- [列名]:[列名] 形式で記述する
1. オートフィルでなくコピペを使う
構造化参照の数式を横方向へ複製する場合、
- オートフィル(相対参照的な挙動)
: セルの右下を横方向にドラッグして複製すると、 参照する列が右へ一つずつずれます。 - コピー&ペースト(絶対参照的な挙動)
: セルを Ctrl + c でコピーし、 別のセルへ Ctrl + v で貼り付けると、 参照する列は固定されたまま保持されます。

マウスで手軽に複製したいときはオートフィルが便利ですが、
2. [列名]:[列名] 形式で記述する
オートフィルで列がずれるのを防ぎたい場合、
| 記法 | 挙動 |
|---|---|
| テーブル名[列名] | オートフィルで列がずれる(相対参照相当) |
| テーブル名[[列名]:[列名]] | オートフィルでも列が固定される(絶対参照相当) |
例)
=VLOOKUP(A2, テーブル1[[商品名]:[価格]], 2, FALSE)F4キーでは切り替わらない
セル参照では F4 キーで絶対参照・相対参照を切り替えられますが、
構造化参照では F4キーは機能しません。
[[列名]:[列名]] の記法を手動で入力する必要があります。
行の固定
行行 を固定する場合は、
- 絶対参照的な挙動(固定)
: INDEX関数で、 先頭行からの位置 を指定する(詳細は前述) 。 - 例) INDEX([列X],1) : 列Xの 1行目 のセル。
- 例) INDEX([列X],1) : 列Xの 1行目 のセル。
- 相対参照的な挙動(同じ行以外)
: OFFSET関数で、 自身の行を基準とした相対的な位置 を指定する。 - 例) OFFSET([@列X],-1,) : 列Xの 「自身の行」
から1つ上 のセル。
- 例) OFFSET([@列X],-1,) : 列Xの 「自身の行」
- 相対参照的な挙動(同じ行)
: @ 記法で、 自身と同じ行 を指定する。 - 例) [@列X] : 列Xの 自身と同じ行 のセル。
- 例) [@列X] : 列Xの 自身と同じ行 のセル。

構造化参照は、
応用1|条件付き書式、 入力規則での使い方
条件付き書式 や 入力規則 では 仕様上、
対処法は以下の2つです。
- 対処法①:名前の定義を経由する
- 対処法②:INDIRECT関数を使う
直接入力するとエラーが発生
条件付き書式、
直接受け付けない仕様です。
直接入力すると、
この数式には問題があります。
...(中略)...有効な数式を入力してください。この名前の構文が正しくありません。
...(中略)...構造化参照を使うメリット
条件付き書式や入力規則に構造化参照を使うと、
通常のセルでの数式と同様に、
行追加に自動対応 するというメリットがあります。
参照するテーブルが 別別 シートにある場合に有効 です。
※ 参照するテーブルが 同一シートの場合は、
対処法①:名前の定義を使う
条件付き書式や入力規則で構造化参照を使う方法の1つが、
対処法②:INDIRECT関数を使う
条件付き書式や入力規則で構造化参照を使う2つ目の方法は、
| 形式 | 書き方 |
|---|---|
| 通常の構造化参照 | =テーブル名[列名] |
| INDIRECT関数を経由 | =INDIRECT("テーブル名[列名]") |
例)
=COUNTIF(INDIRECT("テーブル1[列X]"), B2)=0比較
名前の定義とINDIRECT関数のどちらを使っても、
| 方法 | 特徴 | 使いどころ |
|---|---|---|
| 名前の定義 | ✅ 数式が短くでき、 ✅ テーブル名・列名の変更に自動で追従 ❌ 事前登録が必要、 | 参照列が少なく、 |
| INDIRECT関数 | ✅ 事前準備不要で手軽 ❌ 揮発性関数のため再計算が増える | 手軽に試したい場合や、 |

参照するテーブルが1つでも、
応用2|関数内での使用例
関数の中で構造化参照を使用する例をいくつか紹介します。
- VLOOKUP : テーブル内を検索し、
該当するデータを取得。 - データ追加時に検索範囲が自動で拡張される。
- 例)
=VLOOKUP( 検索値, テーブル1, 2, FALSE ) - ただし、
以下のデメリットがある。 - テーブルの列を入れ替えると、
取得列がずれる - 検索列はテーブルの左端に限定される
- テーブルの列を入れ替えると、
- データ追加時に検索範囲が自動で拡張される。
列の入れ替えや検索列の制限に対応する方法
テーブルの列の入れ替えに対応し、
XLOOKUP または MATCH + INDEX 関数を使用します。
- 例)
=XLOOKUP( 検索値, テーブル1[A], テーブル1[B] ) - 例)
=INDEX( テーブル1[B], MATCH( 検索値, テーブル1[A], 0 ) )
XLOOKUPはExcel 2019以降で利用可能です。
- SUM, AVERAGE, MAX, MINなど : 集計値の算出を行う。
- データ追加時に計算範囲が自動で拡張される。
- 例)
=SUM( テーブル1[A] )
- データ追加時に計算範囲が自動で拡張される。
- INDEX : 指定範囲 内の内の n番目のセルを取得する。
- (詳細は前述の「行の固定 / 移動」
を参照) - 例) =INDEX( [列X], 1 ) → 列Xの1行目のセルを参照
- (詳細は前述の「行の固定 / 移動」
- OFFSET : 指定範囲 からのからの ±n番目のセルを取得する。
- (詳細は前述の「行の固定 / 移動」
を参照) - 例) =OFFSET( [@列X], -1, ) → 列Xの「自身の行」
から1つ上のセルを参照。
- (詳細は前述の「行の固定 / 移動」
- INDIRECT : ドロップダウンリストや条件付き書式などで、
構造化参照を使用可能にする。 - 構造化参照の数式を直接使用できない場面 で対応する方法(詳細は応用1を参照)
。 - 例) =INDIRECT( "テーブル1[列X]" ) → テーブル1の列Xのリストを参照。
- 構造化参照の数式を直接使用できない場面 で対応する方法(詳細は応用1を参照)

ドロップダウンリスト(入力規則)
特に、
よくあるエラー、 うまく設定できない場合のQ&A
構造化参照を使う際に、
| 症状(Q&A項目) | 原因 | 対処 |
|---|---|---|
| Q1. テーブル名が補完されない | Excelオプションの設定が無効 | オプションで「数式でのテーブル名の使用」 |
| Q2. テーブル名が認識されない | 対象が標準範囲(非テーブル) | Ctrl+tなどで範囲を「テーブル」 |
| Q3. 入力規則、 | 構造化参照の直接入力が不可(仕様) | 名前の定義またはINDIRECT関数を経由させて指定する |
| Q4. 列名のエラー | スペース・特殊文字・括弧の閉じ忘れ | [[列名]] と二重角括弧で囲むかエスケープを行う |
| Q5. オートフィルで列がずれる | 単一列指定は相対参照として扱われる | オートフィルでなくコピペを使用する、 |
Q1. 数式入力中に構造化参照式の自動補完が効かない
Excelの設定で「数式でテーブル名を使用する」
Q2. セルの数式中で構造化参照(テーブル名) が使えない
セル範囲が「テーブル」
対処法 :
セル範囲を選択し、
Q3. 入力規則や条件付き書式で構造化参照が設定できない
「データの入力規則」
対処法 :
名前の定義 や INDIRECT関数 を経由して使用 する。
Q4. 列名にカンマや大括弧が含まれるとエラーになる
列名にカンマや大括弧などの特殊文字が含まれる場合、
=[@重さ] ← 角括弧、シングルクォーテーションは不要
=[@[重さ '[kg']]] ← 角括弧、シングルクォーテーションが必要上記の例のように、
Q5. オートフィル(数式コピー) をすると列の参照先がずれる
構造化参照をマウスのオートフィルで横方向にコピーすると、
まとめ|構造化参照(テーブル参照) の活用ポイント
本記事では、
構造化参照のポイントは以下の通りです。
- 基本的な数式 :
テーブル名[ [特殊項目指定子], [列指定子] ] の形式で記述。
最もよく使う形は テーブル名[列指定子] で、指定した列のデータが一括で取得可能。 - 自動拡張の利便性 :
構造化参照は、テーブルにデータが追加されても参照範囲が自動的に拡張されるため、
手動で数式を修正する手間を省ける。データ更新が多い場面で特に有用。 - セル参照との使い分け :
既存のセル参照を 無理に構造化参照に置き換える必要はない。
自動拡張の機能が不要な場合や、細かな参照位置の調整が必要な場合は、 セル参照も有効な選択肢。
構造化参照が使えるようになると、








