Excelでテーブルを使っていると、「このセルの列見出しを別の場所で自動的に表示したい」「数式で動的に参照したい」と思うことがある。
特にテーブルの列が増減したり、順番を入れ替えたりする場合には、相対的に見出しを取得する方法を知っておくと非常に便利だ。
この記事では、初心者でも理解できるように、Excelでテーブルの見出し(ヘッダー)を相対的に取得する方法を詳しく解説する。
テーブルの見出しを相対的に取得するメリット・デメリット
メリット
- 列の順番が変わっても、数式を修正する必要がない
- データ構造が変化しても、参照が崩れにくい
- テーブルを自動化処理(Power QueryやVBA)で扱う際に柔軟に対応できる
デメリット
- 一般的なセル参照に比べて数式がやや複雑
- INDEX関数やMATCH関数など、関数の理解が必要になる
テーブルの見出しを相対的に取得する具体的な方法
方法1:INDIRECT関数とROW関数を組み合わせる
この計算式をコピペすれば、いつでもどこでも同じように使える。
手順
- 以下のような数式を入力する
=INDIRECT("R" & ROW([#見出し]) & "C",0)
上記の計算式を入力すると、テーブル名が自動的に付けてくれる。
=INDIRECT("R" & ROW(テーブル1[#見出し]) & "C",0)
手順詳細
テーブルを用意して、対象の列の1つのセルに「=INDIRECT("R" & ROW([#見出し]) & "C",0)
」と入力する。
![Excel テーブルの見出し(列名)の値を相対的に取得する方法
テーブルを用意して、対象の列の1つのセルに「=INDIRECT("R" & ROW([#見出し]) & "C",0)」と入力する。](https://itmemo123.net/wp-content/uploads/2025/10/image-9.png)
テーブルの名称が「テーブル1」の場合、自動的にテーブル名が付加されて計算式が出来上がる。

解説
- ROW([#見出し]):テーブルの見出し(タイトル行)が何行目かを調べる。(たとえば見出しが3行目なら「3」になる)
- “R” & ROW([#見出し]) & “C”:「R3C」みたいな文字を作る。これは「3行目・同じ列」という意味。
- INDIRECT(…,0):その「R3C」を本物のセルとして読み取る。(0は「R1C1形式で読み取るよ」という指定)
方法2:INDEX関数とCOLUMNS関数を組み合わせる
列番号を指定して取得する方法は、INDEX関数を使う方法だ。
手順
- テーブルの開始列をA列とする
- 以下のような数式を入力する:
=INDEX([#見出し], COLUMNS($A:A))
- 必要な列までドラッグして計算式を設定
=INDEX([#見出し], COLUMNS($A:A))
手順詳細
テーブルを用意して、対象の列の1つのセルに「=INDEX([#見出し], COLUMNS($A:A))
」と入力する。
![Excel テーブルの見出し(列名)の値を相対的に取得する方法
テーブルを用意して、対象の列の1つのセルに「=INDEX([#見出し], COLUMNS($A:A))」と入力する。](https://itmemo123.net/wp-content/uploads/2025/10/image-11.png)
テーブルの名称が「テーブル1」の場合、自動的にテーブル名が付加されて計算式が出来上がる。

列を選択してドラッグすると

計算式がコピーされて、COLUMNS($A:A)
の部分が自動的に置き換えられる

解説
Table1[#見出し]
は、テーブルの見出し行全体を表すCOLUMNS($A:A)
は、数式をコピーしたときに「列数」を自動で増やす。右側のAは「$」を付けないことがポイント- つまり、右方向にコピーするたびに、見出し名を1列ずつ取得できる
例
列A | 列B | 列C |
---|---|---|
商品名 | 単価 | 数量 |
上記のテーブルで、=INDEX(テーブル1[#見出し],1)
→ 「商品名」=INDEX(テーブル1[#見出し],2)
→ 「単価」=INDEX(テーブル1[#見出し],3)
→ 「数量」
というように取得できる。
方法3:MATCH関数で動的に列番号を求める
見出しの文字列から列番号を取得したい場合は、MATCH関数が便利だ。
手順
=INDEX([#見出し], MATCH("姓", [#見出し], 0))
この場合、「単価」という見出し文字列が返る。
見出し名を別セルに指定すれば、柔軟な参照が可能になる。
解説
- =MATCH(“姓”, [#見出し], 0):「姓」という見出しが、テーブルの何列目にあるかを返す。結果をINDEX関数と組み合わせることで、任意の見出しを動的に取得できる。
注意点
- テーブル名(例:
Table1
)は実際のシート上で確認すること [#Headers]
は「#」を含む特殊な構文なので、手入力よりも数式バーから選ぶのが確実- テーブル外のセルを参照するときは絶対参照(
$A$1
など)を意識する
まとめ
Excelのテーブル見出しを相対的に取得する方法を覚えると、列の追加や順序変更に強い柔軟な表が作れる。INDEX
関数とCOLUMNS
関数、またはMATCH
関数を使い分けることで、見出しを自動的に取得・参照できるようになる。
特に、動的にテーブルを扱う作業や報告書の自動化には非常に効果的だ。
コメント