ラベルを使った参照


2020/11 追記
いまさらで恐縮ですが、この機能はExcel 2007以降は使えなくなりました。Excel 2003で、この機能を使ったブック(もちろん、拡張子xls)を作り、そのブックをExcel 2007以降で開くと、下図のようなアラートが表示されます。

このファイルの数式にはラベルが含まれています。ラベルは Excel ではサポートされておらず、セル参照に置き換えられます。置き換えられた後も、数式は正しく機能します。この変更は取り消すことができません。続行しますか?

以下、雑感です。この機能、けっこう古いExcelから使えたんですが、私としては「なんじゃこりゃ?あり得ないっしょ!」という違和感満載でした。見出しのセルに名前を定義するのなら分かります。その名前がどこのセル範囲を参照しているのか、Excelが判断するのも簡単でしょう。でも、名前すら定義しないということは、Excelが常にワークシート全体を精査して、どれが見出しで、その見出しがどのセル範囲を参照しているのかを、そのつど毎回調べているということです。下記で検証していますが、同じワークシート内に、複数の同じ見出しがあったとき、それをどうするかという問題も残ります。下記では「Excelは賢いですね~」と褒めていますが、これ毎回Excelが内部で演算しているわけです。当然、その演算の分だけ、画面の描画速度や計算のスピードがスポイルされます。「まぁ、確かにスゴイけどさぁ~そこまでして、こんな機能が必要っすかねぇ?」というのが、正直な感想でした。なんというか、"Excelの黒歴史"感があります。Excelには、そういった黒歴史の機能って多いです。歴史の長いアプリですから、それもしかたありません。新機能を実装するときは「やっべ!これ、すげぇw こんな機能、ほかじゃ真似できないっしょw やっべ!」みたく、意気揚々と実装するのですが、数年経って、Excelを取り巻く環境だとか、Excel自体の進化する方向性などが変わってきたとき「はぁ?なんでこんな機能あるんだよ!おかげでこっちの機能に影響出まくりじゃねーか、誰だよこんな仕組み実装したの」なんてね。"ブックの共有"機能なんて、その典型ですね。閑話休題。だからかどうか分かりませんが、このラベルを使った機能はExcel 2007から使用できなくなりました。Excelは2007で大きく方向転換しましたから、そのタイミングで黒歴史に封印する決断をしたのではないでしょうか。ちなみに、これも想像ですけど、バッティングしたのは"新しいテーブル"機能だと思います。従来の、広大で、どこにでも好きにデータを入れられるワークシートという考え方から、Excelが内部で独自のデータベースとして管理するテーブルという機能に進化させるとき、おそらく「自動的にラベルを使って計算する」というのが足を引っ張ったのではないかと。個人的には、そんな感じを持っています。まぁ、せっかく書いたので、本稿はこのまま残しておきます。90年代の後半くらいには、Excelにもこんな機能があったのですよという備忘録として。


下図のようなデータがあったとします。セル範囲C2:C5を合計するとき、一般的には「=SUM(C2:C5)」という式を使います。しかし、今回解説する「ラベルを使った参照」を使うと「=SUM(横浜)」という式で合計が求められます。もちろん事前に名前の定義などをする必要はありません。

「ラベルを使った参照」を有効にするにはExcelのオプションを変更しなければなりません。[ツール]メニューの[オプション]をクリックして[オプション]ダイアログボックスを表示します。[計算方法]タブを開き[数式でラベルを使用する]チェックボックスをオンにして[OK]ボタンをクリックしてください。

←これをオンにしないと使えない

これで準備は完了です。あとは数式の中で参照したいラベルを指定します。ラベルとは「リストのタイトル」のことです。上図で、セルC2:C5の数値は「横浜」に関するデータです。言い方を変えれば、セルC2:C5には"横浜"というタイトルが定義されていることになります。このように、行と列で構成されたリストの「行タイトル」「列タイトル」を、あたかも名前を定義したように数式内で使用できる機能が「ラベルを使った参照」です。まぁ、理屈は難しいですけど、何度かトライしているうちにイメージできるようになるでしょう。

それでは、いくつかの使用例をお見せします。上図のデータでは、次のような式が使えます。しつこいようですが、名前の定義は何もしていません。

ラベルを使った参照は、リストのタイトルをExcelが自動的に判定しすます。ということは、ひとつ疑問が生じます。ワークシート内に同じラベルが複数入力されていたらどうなるのでしょう?たとえば次のような場合です。

これは、実際にやってみればわかります。そして「Excelは賢いなぁ~」と再認識できます。

セルG3に「=SUM(横浜)」と入力してEnterキーを押すと、次のようなダイアログボックスが表示されます。「横浜」というラベルが複数あるけど、あなたが使いたいのはどっち?と聞いてくれるのです。もし「2月実績」の「横浜」を計算したいのでしたら、セルD9をクリックして[OK]ボタンをクリックします。

さらに素晴らしいのは、セルのタイトル文字列を変更すると、ラベルを使った参照式も自動的に変更されるというメリットもあります。

ラベルを使った参照は、[計算方法]タブの[数式でラベルを使用する]チェックボックスがオンになっていないと使えません。すでにラベルを使った参照式を使っていて、後からオフにした場合には、次のような確認メッセージが表示されてラベルがアドレスに変更されます。