奥が深いテーブル機能


Excel 2003には、ワークシート上のセル範囲を特別な領域として認識して、自動的にオートフィルタを設定したり、小計行を追加できる「リスト」機能がありました。決して認知度が高くなかったこの「リスト」機能は、Excel 2007で「テーブル」機能として一新されました。新しいテーブル機能は、使い勝手が向上し、魅力的な新機能も追加されています。今までは敬遠されがちだった「リスト」機能ですが、新しいテーブル機能は"これなら使ってみようかな"という気になります。

テーブルへの変換方法

セル範囲をテーブルに変換するには、2つの方法があります。1つは、[挿入]タブ[テーブル]グループの[テーブル]ボタンをクリックする方法です。

変換する範囲の確認ダイアログボックスが表示されたあとで、自動的に「テーブルスタイル中間(9)」のテーブルに変換されます。

任意のデザインに変換したいときは、データが入力されているセル範囲にアクティブセルを移動して、[ホーム]タブの[テーブルとして書式設定]ボタンをクリックします。

表示されるギャラリーから好みのデザインを選択すると、セル範囲を確認するダイアログボックスが表示されます。先頭行をテーブルの見出しに設定するかどうかを指定して[OK]ボタンをクリックすればテーブルの完成です。好みのデザインを選択できますから、こちらの操作が一般的なような気もします。

列見出しが列番号に表示される

テーブルで最も画期的な機能は、ワークシート画面を下にスクロールすれば体感できます。画面がスクロールされてテーブルの列見出しが隠れると、それまで[A][B][C]…と表示されていた列番号に、なんと!テーブルの列見出しが表示されるのです。

下の2つの画像を、よ~くご覧ください。

一画面に収まらない広大なデータを操作するとき、今まではタイトル行が隠れないようにウィンドウ枠を固定したり、ワークシートを分割するなどの工夫が必要でした。でも、データをテーブルに変換しておけば、そうした手間は必要ありません。そういえば、タイトル行が隠れないようにするには、どうしたらいいですか?という質問は、Excel 5.0の時代からFAQでした。これだけでも、テーブル機能に魅力を感じるユーザーは、多いのではないでしょうか。

集計列の自動作成

テーブルの右に新しい列を挿入してテーブルの範囲を広げたいときに、特別な操作は必要ありません。列見出しに項目名を入力するだけで、自動的にテーブルの範囲が拡張されます。

実行するとスマートタグが表示されます。クリックすると、テーブル範囲の自動拡張を行うかどうかを選択できます。

新しい列が数式を入力する集計列だった場合は、もっと簡単な方法があります。とりあえず、セルに数式を入力してしまえばいいんです。下図は、テーブルの範囲外であるセルE3を選択して[オートSUM]ボタンをクリックしたところです。そのままEnterキーを押すだけでテーブルの範囲が拡張され、すべての行に同じ数式が自動的にコピーされます。残る作業は列見出しの項目名を書き換えるくらいでしょう。

こうして作成された集計列では、列内に入力されたすべての数式でアドレスが自動的に調整されます。一般的に、このようなリストでは、すべての行で同じ計算をすることが多いので、逆にどれか一つの数式だけが間違っていては困ります。そこで、テーブル機能では、集計列で任意の数式を編集すると、同じ列内に入力されたすべての数式も同じように変更されます。

では、データの最下行で計算する集計行はどうでしょう。最下行に集計行を挿入するときは、リボンの[デザイン]タブ[テーブルスタイルのオプション]グループにある[集計行]チェックボックスをオンにします。

実行すると最下行に集計行が挿入されます。集計行の数式は「合計」や「平均」などをリストから選択することもできます。従来のリスト機能では、ここで選択できる数式が限られていましたが、新しいテーブル機能では「任意の関数」を選択して、リストにない数式も入力できるようになりました。

集計行のオン/オフはCtrl+Shift+Tというショートカットキーが割り当てられていますので、ワンタッチで表示を切り替えることも可能です。ちなみに、従来のリスト機能では、最下行に任意の数式を"手入力"したときに、エラーが発生するケースもありました。これは、数式の入力によってリスト範囲が拡張され、数式を入力したセル自身を計算範囲に含めてしまうことによる循環参照が招くエラーでした。もちろん新しいテーブル機能ではこうした無用なトラブルは発生しません。手入力した数式も正しく集計行として認識されます。

テーブル内の構造化参照

上記の操作で、アクティブセルをセルE3に移動して[オートSUM]ボタンをクリックすると、入力された数式には「=SUM(B3:D3)」といったセルのアドレスではなく「=SUM(テーブル1[[#この行],[国語]:[英語]])」という特別な範囲名が使われていました。このように、新しいテーブル機能では、列全体やテーブル全体、数式が入力されている行などを特別な範囲名で参照することができます。こうした参照のしかたを構造化参照と呼びます。

特別な範囲名を使った構造化参照は、テーブルの中だけでなく、テーブルの範囲外でも使用できます。テーブル内のデータを構造化参照による数式で計算すれば、テーブルの範囲が拡大/縮小しても常に正しいセル範囲を計算の対象にすることができます。

構造化参照では、列見出しを使った「列指定子」と、テーブル内で任意の範囲を表す「特殊項目指定子」を使用できます。なお、これら二つの指定子を合わせて「テーブル指定子」と呼びます。一般的な構造化参照の書式は次の通りです。

テーブル名[[特殊項目指定子],[列指定子]]

セルF3で「国語の平均」を求める構造化参照式を入力してみましょう。セルに「=AVERAGE(テーブル1[」まで入力すると、Excel 2007の入力支援機能によって、入力できる指定子がリストに表示されます。

上4つの、アイコンが付いている範囲名が「列指定子」です。「国語」はセル範囲B2:B17に該当します。下の#で始まる範囲名が「特殊項目指定子」で、それぞれテーブル内の範囲を表しています。矢印キーとTabキーで「国語」を選択して数式を完成させると、テーブル内の平均を求める構造化参照式が完成します。

上記の数式で用いたテーブル名「テーブル1」は、Excelが自動的につけた名前です。テーブルの名前は、[デザインタブ]の左端にある[テーブル名]ボックスで確認できます。もちろん任意の名前に変更することも可能です。

このように、列見出しを名前として使うような数式は、Excel 2003でも利用できました。[オプション]ダイアログボックスの[計算方法]タブにある[数式でラベルを使用する]チェックボックスをオンにすると、列見出しや行見出しを使った数式が使えました。

Excel 2007の構造化参照は、この「数式でラベルを使用する」を拡張した機能です。。なお、Excel 2007では[数式でラベルを使用する]オプションが廃止されて使えなくなりました。ラベルを使用した数式を含むブックをExcel 2007で開くと、セルのアドレスに自動変換されます。

Excel 2007の「テーブル」機能は、従来の「リスト」機能から名称が変わっただけではありません。列見出しが列番号に表示されるといった操作性の改善や、集計列内の数式がすべて連動して調整されるといった人為的ミスへの配慮、そして構造化参照という強力な参照式の提供など、実に奥の深い機能拡張がなされています。

Excel 2007を手にしたら、ぜひ試していただきたいイチオシの機能です。