-
よねさんのExcelとWordの使い方 »
-
エクセル2013基本講座:目次 »
-
データ/入力に便利な機能などの共通メニュー »
-
テーブルの構造化参照を利用する
- テーブル機能を使うと、数式では構造化参照という形式を使うことができます。
このページでは、テーブル機能のメリットや構造化参照を使った数式の利用方法について書いています。
- テーブルはExcel2007から使えるようになった機能です。
Excel2003以前でのラベルを数式で利用することがこのテーブル機能に含まれています。 - データ範囲をテーブルに変換するすることでのメリットを考えてみました。
- テーブルにすることでテーブルの範囲が自動で拡張されることです。
いちいち数式でデータ範囲を求める必要がなくなります。
- 数式に名前(列見出し名)を利用できます。
セル範囲に名前を定義して使うことができましたが、セル範囲が変動するケースでは関数を使ってちょっと複雑な定義をする必要があります。
テーブルでは範囲は可変でも内部で処理してくれますので便利で、容易に使えそうです。
- テーブルへの構造化参照ではMTC(マルチスレッド計算)が使用されているようで、計算(処理?)が高速化されいるようです。
下記の資料には「現時点で配列数式を使用している場合は、できる限り構造化参照を使用して、配列数式で計算されるセルの数を減らすようにしてください。」との記述があります。
- テーブルからグラフを作成することで可変するグラフを作成することができます。
ピボットグラフと似た感じでグラフを変化させることができます。(スライサーやフィルターを連動できる)
- テーブルへの変換は エクセル2013基本講座:テーブルを作成する/解除する をご覧ください。
- この設定を行っているのを前提として、このページの説明を書いています。
[ファイル]タブをクリックして、バックステージビューで[オプション]を選択します。
Excelのオプションで、[数式]タブを選択し、「数式でテーブル名を使用する」にチェックを入れます。すると、構造化参照の数式が入力時にヒントとして表示されます。
チェックを入れない場合は、ヒントに表示されないだけですので、自分で構造化参照の数式を入力します。
- このページで使用しているテーブルは2つあります。Sheet1に作成したテーブルは table_1 、Sheet2に作成したテーブルは table_商品コード とそれぞれにテーブル名を付けています。
テーブル名は テーブルツールのデザインタブでプロパティグループのテーブル名のインプットボックスにテーブル名を入力して設定ができます。
- table_1
- table_商品コード
-
構造化参照の入力方法 Topへ
- テーブル内のセルやセル範囲を選択すると、構造化参照が適用されて数式に表示されます。(Excelのオプションで「数式でテーブル名を使用する」にチェックを入っている場合)
=table_1[@金額] という構造化参照の数式は、テーブル名 table_1 と同じ行の金額のセルという意味で [@金額] とで表現します。
- 列を選択すると、 =table_1[金額] と表示されました。
列を参照する場合は @が付いていません。[金額]と列名(フィールド名)だけになります。
- 列の選択は下図のように列見出しの上の枠線にマウスポインタを合わせて 下矢印の形になったらクリックします。
- テーブル名も関数のオートコンプリート機能で表示されます。
下図は「=ta」と入力しているときの状態です。
- 参照する列名などは =table_1[ と [ を入力すると、ヒントとして表示されます。
-
- テーブルの外でテーブル内のセルを参照してみます。
ここではテーブルの外から参照するのでテーブル名(設定をした「table_1」というテーブル名)を付ける必要があります。
テーブル内では同じテーブルであればテーブル名は省略できます。
- 下図の例では数式は =table_1[@[単価 ]] となっています。
- @は同じ行を意味していますので、「table_1のテーブルの「単価」列の同じ行の値」といった意味になります。
- 数式は =table_1[[#集計],[金額]] となっています。
- [#集計]で集計行を意味しており、集計行の「金額」の値 を参照するといった意味になります。
集計行はテーブルの機能で追加表示したものです。
-
テーブル内の数式で使用してみます。 Topへ
- 商品コードのテーブル「table_商品コード」を参照して、型番を呼び出します。
数式は =VLOOKUP([@商品コード],table_商品コード,2,FALSE) としました。
- Excelのオプションで「数式でテーブル名を使用する」にチェックを入っている場合はテーブルの名称が自動で入力できます。方法は上記を参照してください。
F3セルを選択して、数式バーで =VLOOKUP( と入力して、E3セルをマウスで選択します。
数式は =VLOOKUP([@商品コード] と入力されます。
- カンマを入力して、table_商品コード のデータ部分を選択する(B4:D9セルを選択する) と、=VLOOKUP([@商品コード],table_商品コード と数式が入力されます。
テーブル table_商品コード を指定する方法として 下図のようにテーブルの左上隅で右斜め矢印 にしてクリックする方法もあります。
- あとは、引数の列番号や検索方法を =VLOOKUP([@商品コード],table_商品コード,2,FALSE) と入力して完成です。
- テーブルの自動拡張でどのようなことができるかの例です。
- 商品コードを追加します。
9行目に新しい商品コードのデータを追加しました。自動でテーブルの範囲が拡張されました。
- table_1の最下行に新しいデータを入力しました。
商品コード「M1」と入力すると、右側の列には数式が自動で入力され、商品コードを参照した値が返されました。
数式を修正する必要がない・・・ということが分かるかと思います。
そして、この新しいデータまでを含んだ範囲にテーブルが自動拡張されています。
なお、ここでは集計行は非表示にして操作しています。
よねさんのExcelとWordの使い方|エクセル2013基本講座:目次|テーブル機能|データ/数式/関数の入力|テーブルの構造化参照を利用する