名前の定義と管理 ~ セルやエリア範囲に名称をつける ~

数を利用していると、そのセルの関数式だけを見て、どこのセルまたはどのエリアを参照しているのか判断しなければならない場合があります。

いつも利用しているシートならまだしも、たまにしか使わないものなど、「これはどんな数式だったっけ?」と思うことがよくあります。

そんなときでも、数式だけを見て判断するしかありませんが、複数のシートにまたがってセルやエリアを参照している場合では、なかなか解読が難しくなってきます。

そうならないように、また、関数式やブック全体を管理しやすいように、

セルやエリアに任意の名前をつけて管理する

ことができます。固有のセルやエリアにわかりやすい名前をつけておくことで、この式で参照しているエリアはどこなのか容易に判別できるようになります。

例えば、下図のような式があったとします。

VLOOKUP関数式のイメージ

これは「VLOOKUP関数」で、「Sheet10」の「A3:G13」のエリアを絶対参照していることを示していますが、引数の参照範囲は一見しただけではどこを参照しているのよくかわかりません。(VLOOKUP関数について詳しくは、基本操作編の LOOKUP関数 を参照してください)

そこで、「Sheet10!$A$3:$G$13」エリアにわかりやすい名前をつけると、下図のような式に置き換えることができます。

VLOOKUP関数式のイメージ

このように、「Sheet10!$A$3:$G$13」が「商品管理表」という名詞にかわるだけで、なんとなくどこを参照しているのか理解でき、またこうして名前で管理することで、Excel内にある表やエリアがその名前のとおりの意味を持つことになります。

つまり、Excel全体(ブック)としてもどこにどんな表があるのかといった整理されたシートを作成していくことができるようになります。

では、実際にやってみましょう。下図のような表に名前をつけてみます。

Excelの表のイメージ

操作は非常に簡単です。任意のセルやエリアを範囲指定した状態(上図の表では「A3:G13」の範囲)で、「数式」タブの「名前の定義」ボタンをクリックします。

「数式」タブの「名前の定義」ボタンのイメージ

すると、「新しい名前」画面が表示されます。

「新しい名前」画面のイメージ

すでに「名前」に文字列「製品コード」が入力されていますが、これは範囲指定したエリアの始点となったセルの値が自動的に記述されます。この例では、「A3」セルの値になります。

次の「範囲」には「ブック」が選択されています。リストメニューから、「ブック」と「シート名」を選択することができますが、ここは意外と重要な項目であり、

ブックでは他のシートからも参照できるが、シートでは指定したシート内でしか参照できない

という違いがあります。つまり、デフォルト(初期設定)の「ブック」を指定しておけば、どのシートからでも名前だけで参照できることになります。

また逆に、複数のシートで同じ名前を使いたい場合や、他のシートから参照されたくない場合などは、任意のシート名を選択するようにしましょう。

次の「コメント」は、文字通り当該エリアについてのコメントや補足ですが、この欄については後述します。

そして最後の「参照範囲」は、まさしく範囲指定したエリアが自動的に記述されています。ここは自分で範囲指定した範囲なので、特に気にする必要はないでしょう。

すべて入力すると、例えば下図のような名前「商品管理表」を定義して登録することができます。

「新しい名前」画面のイメージ

「OK」ボタンをクリックすると名前の定義が登録されますが、画面は消えてしまいます。登録された名前はどうなっているのかというと、同タブの「名前の管理」ボタンで確認することができます。

「数式」タブの「名前の管理」ボタンのイメージ

ここにブック全体で登録されている名前の定義がすべて表示されます。「範囲」にブックを選択している定義も、シートを選択している定義もすべて表示されます。

「名前の管理」画面のイメージ

この一覧に設定した値やコメントがすべて表示されます。つまり、主にコメントはこうして一覧になったときに区別しやすくするために利用されます。

では次に、もっと細かい名前の定義の登録方法です。

複数の項目(列)がある表で、表全体ではなく項目ごと(列ごと)に名前を定義したい場合に便利な方法です。同じ「商品管理表」を用いて名前を定義してみましょう。

Excelの表のイメージ

まず同様に表全体を範囲指定します。次に、同「数式」タブの「選択範囲から作成」ボタンをクリックします。

「数式」タブの「選択範囲から作成」ボタンのイメージ

すると、「選択範囲から名前を作成」画面が表示されます。

「選択範囲から名前を作成」画面のイメージ

この画面は、その表の「項目見出し(項目名)」がどこにあるのかを指定します。通常は「上端行」か「左端列」に項目名の行や列を作成していますので、この場合は「上端行」にチェックをいれた状態で「OK」ボタンをクリックします。

すると、何事もなかったかのように画面が閉じます。しかし、これで各列が項目名のタイトルで名前が定義されています。「名前の管理」ボタンから一覧で確認することができます。

「名前の管理」画面のイメージ

このように、列の上端行のタイトル(項目)ごとに6つのエリアの名前が定義され、登録されました。それぞれ範囲指定して登録する手間を大幅に省くことができます。

ただし、デフォルトでは「上端行」と「左端列」にチェックが入った状態になっています。この例の場合、「左端行」にチェックが入ったままだと「商品コード」の列すべての値(「000-01」など)が項目名として登録されてしまいますので、注意してください。

また、上表の項目名「メーカー住所」は、項目名の部分(上端行)のみ2つのセルを結合しており、値は2行分あります。このような場合は、下図のとおり、左側の列(この場合は「F列」のエリア)が登録されます。

「名前の管理」画面のイメージ

そのため、それぞれ別に名前を定義したい場合はセルの結合を解除し、それぞれ上端行に項目名を記述する必要があります。

また、登録された定義の一覧は、アルファベット順、カナ順、かな順で表示され、並び替えはできません。わかりやすく表示するには、名前の前に数字やアルファベットを付加して並び替えましょう。

名前の変更やエリアを変更したい場合は、「編集」ボタンをクリックすると、先述の「名前の編集」画面が表示されるので、同様に変更することができます。

定義を削除したい場合は、「削除」ボタンより削除することができます。じつは、名前の削除については、あまり意識することはないと思われるかもしれませんが、そうでもありません。

どのような場合に削除が必要かといえば、間違えた場合は当然として、登録数が増えて整理したい場合にはどうしても削除が必要になります。

例えば、名前の定義が登録されたシートをコピーした場合です。この例のように、6つの名前が定義されたシートをコピーすると、当然さらに6つ増えて、12個の名前が登録されることになります。

シートをコピーして一覧を表示すると、下図のようになります。

「名前の管理」画面のイメージ

同じ名前が2つ登録されていますが、この一覧には、

ブックの中で同じ名前の定義は登録できない

というルールがあります。ではどうして同じ名前が登録されているのかというと、もうおわかりのとおり、範囲が「ブック」ではなく「シート」で登録されているからです。

つまり、シートをコピーすると、名前の定義もコピーされますが、範囲がシートに変更されて登録されるということです。このような場合、たいていコピーしたシートの定義は必要ないので、削除して整理します。

また、名前の定義が登録されているシートを削除すると、ともなって名前の定義も削除になります。

特に注意が必要なのが、他人が作成したExcelファイルを利用する場合です。どのような名前が定義されて数式に利用されているかもしれないので、不要になったシートを削除したりする場合には注意が必要です。

では、もう1つの方法として、「名前ボックス」から登録する方法も学習しておきましょう。

名前ボックスは、下図のExcel画面左上の部分です。

「名前ボックス」のイメージ

同様に、名前を定義したいセルやエリアを範囲指定した状態で、この名前ボックスに直接入力するだけで名前を定義することができます。

「名前ボックス」のイメージ

これだけなので非常に簡単ですが、

名前ボックスから登録すると範囲が「ブック」になる

ので、ある意味で注意が必要です。ただ、通常はブックを選択するので範囲を気にする必要がなければこの方法が速くて便利です。

そして、どちらの方法であっても、登録した名前の定義は、この「名前ボックス」のリストメニューから選択できるようになります。

「名前ボックス」のリストメニューのイメージ

登録範囲を「ブック」にした場合は、どのシートからでも名前の定義を選択することができます。リストから任意の定義を選択すると、その定義のエリアが範囲指定され、画面が移動します。

定義した名前のエリアがどこなのかわからなくなった場合は、名前ボックスのリストから選択するだけで、簡単に確認することができるというわけです。

ただし、注意が必要なのは、先述したシートをコピーした場合や、範囲をブックではなく「シート」で登録している場合です。

例えば、先の例で、ブックで登録した「メーカー」という定義と、「Sheet10」で登録した「メーカー」という2つの同じ名前の定義がある場合です。

「名前の管理」画面のイメージ

名前ボックスのリストメニューを表示させると、2つあるはずの「メーカー」が1つしか表示されません。

「名前ボックス」のリストメニューのイメージ

これは、シートのほうがブックより優先されるため、「範囲」にシートで登録されているシート(この場合では「Sheet10」)を選択している状態では、シートで登録されているほうの定義が表示されます。

つまり、選択してるシートによって同じ「メーカー」でも異なる定義なのです。「Sheet10」以外のシートからリストを開くと範囲が「ブック」の「メーカー」が表示され、「Sheet10」でリストを開くと範囲が「シート」の「メーカー」が表示されるということです。

いずれにせよ、同じ名前で登録されているのは混乱とミスのもとになるので、名前を変更するか、不要なほうを削除するようにしましょう。

では、いよいよ定義した名前を数式に利用してみましょう。

数式に名前を直接入力しても問題ありませんが、例として先述の「VLOOKUP関数」の引数である参照範囲を「名前」に変更します。

VLOOKUP関数の「関数の引数」画面のイメージ

上図の「範囲」の欄で、通常であればマウスでエリアを範囲指定しますが、ここで(「範囲」にカーソルを合わせた状態で)「数式」タブの「数式で使用」ボタンをクリックします。

「数式」タブの「数式で使用」ボタンのイメージ

登録してある名前の定義がリスト表示されるので、対象となる参照範囲の定義を選択します。すると、下図のように数式に名前が使用できるようになります。

数式に名前の定義を使用しているイメージ

関数によって異なるので一律ではありませんが、数式に名前を使用する場合は同ボタンより簡単に挿入することができます。また、名前を直接記述しても差し支えありません。

さて、このようにセルやエリアに名前を定義して管理することの意味は、数式に名前を利用できるというだけに留まりません。さらに高度な使い方ができるようになります。

例えば、複数のエリアに名前を定義して、それらのリストメニュー(ドロップダウンリスト)を作成し、リストから名前でエリアを選択して参照範囲を切り替えるというような高度なテクニックも可能になります。(詳しくは、INDIRECT関数 で解説します)

本項では、これ以上の活用方法については割愛しますが、セルやエリアに名前を定義して管理することの意味を理解しておきましょう。

更新履歴

2018年4月9日
ページを公開。

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

文献
なし
サイト
なし