いまさら聞けないExcelの使い方講座

【Excel】範囲の名前付けに何の意味が……? 数式の可読性を上げてメンテしやすく

直感的に理解しやすい数式が作れます

「名前の定義」で数式を整理してみよう

 エクセルの長い数式を見ると、苦手に感じる人も多いですよね。特にVLOOKUP関数やXLOOKUP関数を使って、他のシートを参照するような数式は長くなりがちです。以下の例は、XLOOKUP関数を使って[商品マスタ]シートの商品コードを検索して、商品名と単価を取得している例です。

XLOOKUP関数を使って、[商品マスタ]シートの商品コードを検索して、商品名と単価を取得しています
=XLOOKUP(B2,商品マスタ!$A$2:$A$5,商品マスタ!$B$2:$C$5)

 この数式を見て「セルB2の商品コードを検索値として、[商品マスタ]シートのセルA2~A5を検索し、対応する値を同シートのセルB2~C5から取り出している」とすぐに理解できるのはエクセルに慣れている人。シートをまたいでおり、絶対参照で記述してあると少し悩むことも多いのではないでしょうか。

 今回は「名前の定義」の機能を使って、参照するセル範囲に“名前”を付けて、数式を整理する方法を紹介します。ひと手間かかりますが、引数の指定やメンテナンスが楽になります。

「名前の定義」とは

 「名前の定義」はセル範囲や定数に名前を付ける機能です。例えば、売上の入力されているF列(F:F)に「売上」と名前を付けると、「=SUM(売上)」のように入力して売上の合計を求めることができます。

例えば、F列(F:F)(①)に「売上」(②)と名前を付けると
「=SUM(売上)」(③)のように入力して売上の合計を求めることができます

 ただ、これだけではメリットを感じないと思いますので、XLOOKUP関数と組み合わせてみましょう。

引数に使うセル範囲に名前を付ける

 先ほどの数式に含まれるセル範囲は[商品マスタ]シートの「$A$2:$A$5」と「$B$2:$C$5」でした。この2つのセル範囲に名前を付けておけば、以下のように記述できるようになります。

=XLOOKUP(B2,商品コード,商品名_単価)

 何のセルを参照しているのかわかりやすくなりますよね。絶対参照で指定する必要がないので、数式のコピー時の参照ズレの心配もありません。実際に設定してみましょう。

名前を付けるセル範囲を選択します(④)。[数式]タブ(⑤)にある[名前の定義](⑥)をクリックします。なお、行見出しから選択して[選択範囲から作成]をクリックしても名前を付けられますが、ここでは、自分で名前を指定できるように[名前の定義]をクリックしています
名前を入力します(⑦)。ここでは「商品コード」としましたが、任意の名前で構いません。[参照範囲](⑧)が正しいことを確認して、[OK](⑨)をクリックします
同様に商品名と単価が入力されているセル範囲(⑩)を選択して、[名前の定義](⑪)をクリックします
名前を入力します(⑫)。ここでは[商品名_単価]としました。[参照範囲](⑬)が正しいことを確認して、[OK](⑭)をクリックします

 入力する名前は任意で構いません。数式の入力時に日本語への切り替えが面倒であれば「code」といった英単語で名前を付けておいてもいいでしょう。定義した名前は[名前の管理]から確認できます。

[数式]タブの[名前の管理](⑮)をクリックします
上記の手順で付けた名前の一覧が表示されます。名前や参照範囲を変更したい場合は[編集]をクリックします。名前そのものを削除する場合は[削除]をクリックします

 この操作によって[商品マスタ]シートのセルA2~A5には「商品コード」、セルB2~C5には「商品名_単価」という名前が付けられました。あえてセル範囲を広く設定しておけば、商品が追加された場合でも、数式を編集する必要がなくなります。

名前を利用した数式に修正する

 定義した名前を使って数式を修正してみましょう。セル範囲を示す「商品コード」と「商品名_単価」と記述するだけです。

セルC2の数式を「=XLOOKUP(B2,商品コード,商品名_単価)」と修正します(⑯)
商品名と単価を正しく取得できています
数式をコピーしても、参照はずれていません

 [名前の定義]の機能は、定数にも名前を付けられます。例えば、[名前の定義]ダイアログボックスの[参照範囲]に「=0.15」と指定して、名前を「割引率」のように付けておくと、数式で「=F2*割引率」といった計算もできるようになります。慣れないうちは手間に感じますが、一度使い始めれば手放せなくなる便利な機能ですよ。