【Excel】テーブル機能は普通の表と何が違うのか — 構造化参照と自動拡張の仕組み

この記事は約9分で読めます。

Ctrl + T でテーブルにしても、縞模様が付くだけに見える方は多いと思います。テーブルの本体は見た目ではありません。範囲に名前が付くことと、範囲が勝手に伸びることの2つです。

この記事では、同じデータを普通の表とテーブルで並べて、数式と動きの違いを確かめます。

この記事で分かること

  • 普通の表とテーブルで、同じ集計の数式がどう変わるか
  • 構造化参照(売上テーブル[金額] のような書き方)の読み方
  • 行を足したとき、合計が追いつく範囲と追いつかない範囲
  • 集計行に入る関数と、フィルターをかけたときの動き
  • テーブルにする前に直しておく表の見分け方

どんな場面で使うか

  • 月次の売上・勤怠・問い合わせ履歴など、行が増え続ける一覧
  • =SUM(F2:F13) のように範囲を固定で書いていて、行を足すたびに数式を直している
  • ほかの人が触るファイルで、F2:F13 が何の列か読み取れない
  • ピボットテーブルの元データで、更新のたびに範囲を指定し直している

見出しが2段の帳票や、結合したセルがある表は、そのままではテーブルに向きません。見分け方は「よくあるエラー」の最初の節で扱います。

基本説明

使うデータ

サンプルファイル(記事末尾)には、中身が同じデータのシートが2枚あります。

  • 「売上データ」シート … 普通の表のまま。手順はこのシートで進めます
  • 「売上テーブル」シート … 同じ範囲をテーブルにしたもの。テーブル名は 売上テーブル

「売上データ」シートの元データ(A1:F13。1行目が見出し、2〜13行目に2026年4月の12件)

A列が日付、B列が担当者、C列が商品、D列が単価、E列が数量、F列が金額(単価 × 数量)です。2〜13行目に2026年4月の12件が入っています。集計の数式は、データに重ならない I列 に置きます。

テーブルにすると変わる3つのこと

  1. 範囲に名前が付く(構造化参照) … F2:F13 ではなく 売上テーブル[金額] と書ける。数式を読むだけで、何を集計しているか分かる
  2. 範囲が自動で伸びる … すぐ下の行に入力すると、その行がテーブルに入り、売上テーブル[金額] の範囲も伸びる。普通の表のままなら、F2:F13 は12件のまま
  3. フィルターが付き、集計行を出せる … 集計行に入るのは SUM ではなく SUBTOTAL。フィルターで絞ると、表示中の行だけを集計する

手順

ステップ1〜6は「売上データ」シートで操作します。

ステップ1 表をテーブルに変換する

  1. 表の中のセルを1つ選ぶ
  2. Ctrl + T を押す(リボンなら「挿入」タブ →「テーブル」)
  3. 「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確かめて、「OK」を押す

チェックが外れていると、「列1・列2…」という見出しが作られ、元の見出しがデータ扱いになります。

ステップ2 テーブル名を決める

  1. テーブル内のセルを選ぶ
  2. 「テーブル デザイン」(または「デザイン」)タブの左端、「テーブル名」欄に 売上データテーブル と入力する

変換直後は テーブル1 のような仮の名前です(番号はブックの状態で変わります)。売上テーブル は「売上テーブル」シートで使っているので、別の名前にします。

「テーブル名」欄では、いま選んでいるテーブルの名前をいつでも確かめられます。

ステップ3 構造化参照で合計を書く

I2 に次の数式を入れます。売上データテーブル[ まで打つと列の候補が出るので、金額 を選びます。

=SUM(売上データテーブル[金額])

結果は 121500 です。比べるために、I3 に =SUM(F2:F13) を手で打って入れます。こちらも 121500 です。

マウスで F2:F13 をドラッグすると、Excelが 売上データテーブル[金額] に置き換えてしまいます。2つの書き方を比べるので、手で打ちます。

ステップ4 行を足して自動拡張を確かめる

14行目に、次の1件を入力します。

  • 日付 2026/05/01、担当者 佐藤、商品 商品B、単価 800、数量 10、金額 8000

テーブルの罫線と縞模様が14行目まで伸びます。

  • I2(構造化参照)… 129500 に変わる
  • I3(=SUM(F2:F13))… 数式が =SUM(F2:F14) に書き換わり、129500 に変わる

F2:F13 はテーブルの金額列の全体を指しているので、Excelが一緒に広げます。普通の表のまま14行目を足したときは、=SUM(F2:F13) のままで 121500 から変わりません。

14行目がテーブルに取り込まれ、I2とI3が129500に変わった状態(リボンのテーブル名欄に「売上データテーブル」)

ステップ5 集計行を出す

  1. テーブル内のセルを選ぶ
  2. 「テーブル デザイン」タブの「集計行」にチェックを入れる
  3. 担当者の見出しのフィルター矢印で、「佐藤」だけに絞る

集計行の金額が 49500 になります(14行目の佐藤・8000を含む)。集計行のセルを選ぶと、数式バーに =SUBTOTAL(109,[金額]) と出ます。

SUBTOTAL は、フィルターで隠れた行を数えません。詳しくはSUBTOTAL関数の記事で扱っています。

担当者を「佐藤」で絞り込み、集計行が49500になった状態(数式バーに SUBTOTAL の数式)

確かめたら、フィルターを解除して全件表示に戻します。

ステップ6 列を足すと数式が全行にコピーされる

  1. G1 に 税込金額 と入力する(G列がテーブルに入る)
  2. G2 に次の数式を入れて確定する
=[@金額]*1.1

残りの行にも、同じ数式が自動で入ります。G2 は 6600(6000 × 1.1)、G3 は 10560(9600 × 1.1)です。

[@金額] は「同じ行の金額」の意味で、普通の表の F2 にあたります。

G2に入れた税込金額の数式が、税込金額列の全行にコピーされた状態

書き方の比較

同じ集計を、固定範囲とテーブル(「売上テーブル」シート)で書き比べます。結果は12件(14行目を足す前)の値です。

やりたいこと 固定範囲 テーブル 結果
金額の合計 =SUM(F2:F13) =SUM(売上テーブル[金額]) 121500
数量の合計 =SUM(E2:E13) =SUM(売上テーブル[数量]) 101
佐藤さんの金額合計 =SUMIFS(F2:F13,B2:B13,"佐藤") =SUMIFS(売上テーブル[金額],売上テーブル[担当者],"佐藤") 41500
商品Aの金額合計 =SUMIFS(F2:F13,C2:C13,"商品A") =SUMIFS(売上テーブル[金額],売上テーブル[商品],"商品A") 45600
佐藤さんの件数 =COUNTIFS(B2:B13,"佐藤") =COUNTIFS(売上テーブル[担当者],"佐藤") 4
表示中の行だけ合計 =SUBTOTAL(109,F2:F13) 集計行を出す(金額列には合計が入る) 121500

テーブル側には、範囲を表す記号が出てきません。「売上テーブルの金額列を、担当者が佐藤の行だけ足す」と、そのまま読めます。

担当者別は 佐藤 41500・鈴木 39800・田中 40200、商品別は 商品A 45600・商品B 38400・商品C 37500 です。条件付きの集計はSUMIFS・COUNTIFSの使い分けの記事も参考にしてください。

構造化参照の書き方一覧

書き方 指すもの
売上テーブル[金額] 金額列のデータ部分(見出しと集計行を除く)
売上テーブル[[#見出し],[金額]] 金額列の見出しセルだけ
売上テーブル[#すべて] 見出し・データ・集計行を含む全体
売上テーブル[@金額] 数式と同じ行の金額セル
売上テーブル[[担当者]:[金額]] 担当者列から金額列までの5列

同じテーブルの中では、テーブル名を省いて [@金額] や [金額] と書けます。テーブル名はブックの中で重複できないので、別のシートから参照するときもシート名は要りません。

よくあるエラー

テーブルに変換すると、表が崩れる

原因: 結合したセルがあります。変換すると結合が解除されます。見出しが2段の帳票(1段目が「4月」、2段目が「数量・金額」など)も同じです。

直し方: 結合を外し、見出し1行・1行1件の形にしてから変換します。結合セルの扱いは結合したセルに値を入れる方法の記事にまとめています。

数式を確定すると「この数式には問題があります」と出る

原因: 構造化参照の列名の打ち間違いです。売上テーブル[金額合計] のように、無い列名だと確定できません。

直し方: 売上テーブル[ まで打ち、候補から選びます。列の見出しを後から変えたときは、数式のほうが自動で追いつきます。

集計行の値がフィルターで変わる

原因: 仕様です。集計行は SUBTOTAL なので、隠れた行を数えません。

直し方: いつも全件の合計が欲しいなら、テーブルの外に =SUM(売上テーブル[金額]) を置きます。

テーブルの中でスピルする数式が #SPILL! になる

原因: 結果が複数セルに広がる数式(Excel 365/2021以降)は、テーブルの内側では広がれません。

直し方: その数式は、テーブルの外のセルに置きます。

行を足したのに、テーブルが伸びない

原因: テーブルの下に空行を1行はさんで入力しています。

直し方: 最終データ行の真下に入力します。空行をはさんだ場合は、空行を行ごと削除してから、テーブル右下隅のハンドルを下にドラッグして広げます。

集計行を表示しているときは、真下が集計行です。そのまま入力すると集計行を上書きするので、ハンドルで1行広げてから入力します。

まとめ

  • テーブルの本体は、範囲に名前が付くことと範囲が自動で伸びること
  • 構造化参照は テーブル名[列見出し]。読むだけで対象が分かる
  • 普通の表で =SUM(F2:F13) のままだと、足した行は数えない
  • 列に数式を1つ入れると、残りの行へ自動でコピーされる
  • 集計行は SUBTOTAL。フィルターで値が変わるのは仕様
  • セル結合や2段の見出しは、先に1行1件へ直してからテーブルにする

まずは手元の「毎月行が増える表」を1つテーブルにして、集計を =SUM(テーブル名[列名]) に書き換えてみてください。翌月に行を足したとき、数式を直さずに済みます。

関連記事

対応バージョン: Excel 2010 以降(テーブル機能は 2007 から。[@金額] の書き方は 2010 から)

サンプルファイル

記事中で使用しているサンプルデータはこちらからダウンロードできます。

タイトルとURLをコピーしました