いまさら聞けないExcelの使い方講座
【Excel】データの活用は表の「テーブル」化から始まる! 見栄えも効率も大幅アップ
2025年9月17日 06:55
「名前の定義」から一歩進化! 「テーブル」で表の管理をもっと便利に
前回の記事では、セル範囲や定数に「名前」を付けて数式を読みやすくするテクニックを紹介しました。確かに「売上」や「商品マスタ」といった名前を付けておけば、数式も簡略化できて参照範囲を間違えるリスクも減ります。とても便利な機能ですが、「名前の定義」だけでは対応しきれない場面が出てきます。
例えば、新しい列を追加したら数式を修正してコピーし直す必要がある、背景色の“しましま”を塗り直さないといけないといった細かい作業が積み重なりがちです。こうしたストレスを解消してくれるのが、今回取り上げる「テーブル」機能です。
データの追加や削除に強く、数式も自動でコピーされるメリットがあります。さらに見た目も整う「名前の定義」の進化版といえる存在です。例えば、セルC2に入力されている数式は以下の通りです。
=XLOOKUP([@商品コード],商品マスタ[商品コード],商品マスタ[商品名])
これは「構造化参照」と呼ばれる参照方式です。テーブルを利用する場合、表は“テーブル”、含まれる列は“フィールド”として認識され、数式中でも利用できる仕組みになっています。「テーブル」にわかりやすい名前を付けておくだけで、表の管理が圧倒的に楽になります。
列名が「フィールド」の名前になる
以下は、XLOOKUP関数を使って、[商品マスタ]シートにあるマスタデータを参照している例です。現状は問題なく動作していますが、例えば、商品が増えた場合は数式を修正する必要がありますよね。このような問題も「テーブル」で解決できます。
さっそく表をテーブル化してみましょう。[挿入]タブにある[テーブル]をクリックしても構いませんが、[Ctrl]+[T]が簡単です。表の見出しを「テーブルの見出し」、つまりフィールド名にするかどうかを確認されるので、[OK]をクリックするだけです。
表をテーブルに変換した場合は、わかりやすい名前を付けておきます。これだけで表と列名に“名前”が登録されます。
上記の手順で表示された「#スピル!」エラーは、元の数式の問題です。「商品マスタ!$B$2:$C$5」と横方向にスピルさせていた数式は使えないという意味です。
=XLOOKUP(B2,商品マスタ!$A$2:$A$5,商品マスタ!$B$2:$C$5)
テーブルでは、列(フィールド)方向に対して処理されるため、横方向のスピルは成り立ちません。数式は入力し直すので、いったん消去しておきます。同様に[商品マスタ]シートの表も同様にテーブル化しておきます。
数式は自動的に構造化参照に変換される
後は、XLOOKUP関数の数式を入力するだけです。特別な操作をする必要はなく、参照するセル範囲をドラッグして指定するだけで、構造化参照に変換されます。
横方向のスピルはNGなので、1列ずつ指定することになりますが、この構造化参照のおかげで一覧から選択できるようになっています。
数式をメンテナンスする必要なし
試しに「商品マスタ」テーブルに新しい商品を追加してみましょう。テーブルの範囲が自動的に拡張されます。先ほど入力したXLOOKUP関数の数式を修正する必要はなく、新しい商品コードが参照されて、商品名と単価が取得されます。
「商品マスタ」テーブルの拡張に伴って、数式中の構造化参照の範囲も広がった恩恵です。単にデザインが自動設定されるだけでなく、修正の手間も省ける「テーブル」は実務でも大きな効果を発揮するので、ぜひ活用してみてください。