Excelでテーブルを使うメリットのひとつとして構造化参照があります。
今回はこの構造化参照について見ていきたいと思います。
構造化参照
そもそも構造化参照とはなんでしょうか。
図1をご覧ください。テーブルを使わない点数表(表1)とテーブルを使った点数表(表2)があります。
ここで、表1において、国語の平均点を求めてみましょう。(H4セル)
上記のようになりますね。
さて、表2でも同様に国語の平均点を求めてみましょう。
=AVERAGE(
ここまでは、入力しました。さて、この後は、C11からC13セルの範囲を選択すればいいですね。
数式バーを見てください。
となっています。あれ?
=AVERAGE(C11:C13)じゃないの?となると思います。
テーブルを利用しないときは、引数にC11:C13のようにセルの範囲が用いられています。
一方で、テーブルを利用したときは、表2[国語]のようにテーブルの名前と列の名前を用いて引数が入力されています。
実は、テーブルを使った場合、引数にはC11:C13というセルの番号だけでなく、表2[国語]といったようなテーブルの名前や列の名前を用いることができます。
表2という部分はテーブル名です。テーブルの範囲内を選択した状態で、ツールバーの「テーブルツール デザイン」をクリックすると、テーブル名という部分があります。そこに入力されている内容がテーブル名です。(図2の赤枠の部分)
図2:テーブル名
[国語]は、国語の列を表しています。つまり、
は、表2の国語の列の平均を出してくださいということになります。=AVERAGE(表2[国語])ような参照方法を構造化参照と呼びます。
構造化参照の入力方法
=AVERAGE(表2[国語])ように、構造化参照の独特の入力規則があります。
テーブル名
構造化参照を使うときは、最初にテーブル名を記述します。テーブル名がないとどのテーブルについて記述しているかわからなくなってしまうためです。
列指定子
見出し行と集計行を除く列を参照するもので、[国語]のように[列名]と記述します。列名を必ず鍵括弧[]で囲んでください。
特殊項目指定子
見出し行や集計行などを参照するものです。特殊項目指定子にはTable1のものがあります。なお、指定子は鍵括弧で囲んでください。
項目指定子 | 参照先 |
#すべて | テーブル全体(見出し、集計すべて含む) |
#データ | データ部分のみ(見出し、集計以外) |
#見出し | 見出し部分のみ |
#集計 | 集計部分のみ |
@ | 数式と同じ行のセルのみ |
使用例
図3は構造化参照の使用例です。
図3:構造化参照の使用例
図3の①=表2[#見出し]についてです。表2は、テーブル名で、その次は特殊項目指定子の#見出しとなっています。つまり、表2の見出しの部分のみを参照することになり、参照するセルの範囲はB10からF10ということになります。
②の=表2[[#集計],[国語]:[英語]]についてです。表2はテーブル名です。[#集計]は、特殊項目指定子の#集計ですので、集計のみを表しています。その次の部分[国語]:[英語]の部分ですが、これは国語から英語の範囲を表します。今回は、[[#集計],[国語]:[英語]]となっているため、集計のみの部分、かつ、国語から英語の範囲ということになるので、参照するセルの範囲は、C14:E14となります。
③、④についても同様の考え方になります。
補足
- 指定子は原則、鍵括弧で囲むようにしてください。
- 例:[[#集計],[国語]:[英語]]
- 見出しに特殊な記号を使うときは、鍵括弧を2重に囲ってください。下記の例では!マークを使用しているため、鍵括弧を2重に囲っています。
- 例:[[国語!]]