6/18/2019

Excel。今ふたたびのVLOOKUP関数。アイテムが増えたら数式直すのが面倒なんですが…【VLOOKUP】

Excel。今ふたたびのVLOOKUP関数。アイテムが増えたら数式直すのが面倒なんですが…

<名前の定義とテーブル>

VLOOKUP関数の数式の作り方は、それほど難しくないのですが、実際の現場レベルで運用するとなると、面倒なことが発生します。

次の表はVLOOKUP関数を設定してありますので、確認してみましょう。

C列には、
=IF(B2="","",VLOOKUP(B2,リスト!$A$2:$C$4,2,FALSE))
という数式が設定済みです。

B列には、入力規則のリストを使って、入力ミスの抑制と入力作業の緩和をしています。

そして、別のシートに商品リストがあります。


【商品が増えたら範囲を修正】

ExcelのVLOOKUP関数としては、IF+VLOOKUP関数にしているなど、エラーも発生しないので、問題はありませんが、現場レベルでは、大問題が潜んでいます。

それは単純なことで、商品アイテムが増えたらどうするの?ということです。

別にVLOOKUP関数の引数の範囲を拡張するのと、入力規則のリストの範囲も拡張する必要があります。別に大した処理ではありませんが、VLOOKUP関数を設定してる箇所が多いと修正箇所も増えるので、面倒です。

【名前の定義をつかってみる】

そこで、範囲に「名前」を設定してみましょう。今回は2か所設定します。

一つ目は、A2:A4を範囲選択して、名前ボックスをクリックして、「名前」=あだ名を入力することで設定できます。

今回は、『入力コード』としました。見出し名と被らないようにするといいですね。

この一つ目は、入力規則のリストの為です。
二つ目も設定してきましょう。

A2:C4を範囲選択して、『商品リスト』と名前を設定します。

【数式を「名前」を使って修正する】

数式を修正していきます。
VLOOKUP関数ダイアログボックスを表示しましょう。

範囲を一度削除して、数式タブの「数式で使用」にある、商品リストをクリックします。

ダイアログボックスはOKをクリックして、数式が次のように変わったことを確認してみましょう。

=IF(B2="","",VLOOKUP(B2,商品リスト,2,FALSE))
このように、範囲を設定した「名前」で置き換えても、結果は変わりません。

入力規則のリストも修正します。

B2:B4を範囲選択して、データの入力規則のダイアログボックスを表示します。

元の値に、先程と同様に、数式タブの「数式で使用」にある、入力コードを選択します。

そして、OKボタンをクリックします。

あと少し処理をすれば、完成します。
今やっているのは、範囲に名前を付けただけにすぎません。

結局商品アイテムが増えれば、設定した名前の範囲を修正しなければいけません。

それでは、中途半端な改善になってしまいます。

【テーブルにする】

商品アイテムの表をテーブルにします。これで、完成します。

では、シートを移動して、A1をクリックして、挿入タブから「テーブル」を選択します。

すると、テーブルの作成ダイアログボックスが表示されますので、OKボタンをクリックします。

表がテーブルになりました。

これで、商品アイテムが増えても、数式を修正する必要はありません。

このように、名前の定義とテーブルを組合すことで、作業効率を改善することができます。