9/03/2015

Excel。VLOOKUP関数を実務で使っていく上での拡張性の問題を解決する方法


Excel。VLOOKUP関数を実務で使っていく上での拡張性の問題を解決する方法

VLOOKUP関数と入力規則と名前の定義とテーブル


様々な所でVLOOKUP関数に関しての作り方やテクニックなどをご紹介しておりますが、
実務において必ず出てくる、【拡張性】という問題。

その問題の解決方法をご紹介すると、多くの方から、喜んでもらいますので、
今回改めて、この拡張性の問題に関して書いてみようと思います。

まずは、下記の表があります。

そして、別の商品マスターというシートにVLOOKUP関数でいうこところの、
範囲になる、リストがあります。

すでに、C4には、商品コードが入力されていて、
商品名のD列にはIF+VLOOKUP関数の数式が作成できております。

ちなみに、D4には、

=IF(C4="","",VLOOKUP(C4,商品マスター!$A$2:$C$6,2,FALSE))

という数式が設定されています。
今回は、IF+VLOOKUP関数の作り方ではなくて、【拡張性】についてご説明していきます。

通常のテキストなどでは、このIF+VLOOKUP関数でおおむね説明が終わります。

が、しかし、現場では、これを使っていくわけですね。
要するに、商品が増えたらどうするの?という訳です。

今回の納品書は、D列とE列にあるIF+VLOOKUP関数の範囲を修正すればいいわけですが、

まず、
商品コードも増えて入力するのが大変になる。

範囲がアイテムが増えるたびに修正しないといけないし、
VLOOKUP関数をすべて修正する必要があるので、今回は2か所。

しかし仮に10か所あったら、1アイテムでも増えたら、数式を直す必要が発生するわけです。

そこで、まずは、名前の定義を使って、使用しやすくするところからやってみましょう。

C列の商品コードは、自分で入力するには、大変ですし、ミスもしやすいので、
入力規則のリストを使ってみたいと思いますが、

ここで、【名前の定義】を設定しておきます。

A2:A6に商品コードという名前を定義します。
名前ボックスをクリックして、名前を入力してあげます。これで設定完了。

では、入力規則を設定していきます。

納品書のC4:C9までを範囲選択をして、
データタブのデータの入力規則をクリックして、
データの入力規則ダイアログボックスを表示します。

入力値の種類をリストにして、元の値には、数式タブの数式で使用から、
先程名前を定義した、「商品コード」を選択します。

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

まずは、入力はよくなりましたが、アイテムを1件増やしてみましょう。

BR-600でスイカを追加してみましたが、リストは増えていません。

この名前の定義は準備でしかありません。

では、いよいよ、本番ですが、BR-600の行は削除しておいて、
商品マスターのリストをテーブルに設定していきます。

リストの中でアクティブにして、挿入タブのテーブルをクリックします。

範囲はそのままで大丈夫ですから、OKボタンをクリックします。

テーブルになりました。そして、テーブル名に商品リストと入力しておきます。
まずは、VLOOKUP関数から修正していきましょう。

VLOOKUPの範囲を改めて範囲選択してみると、商品リストと入力されました。
これは、テーブル名ですね。これでOKボタンをクリックしましょう。

では、BR-600でスイカを追加してみます。

では、納品書を確認してみましょう。

商品コード。なんと、先程と異なり、BR-600が追加されていますよね。
テーブルにすると名前の定義の範囲も自動的に拡張されます。

そして、BR-600を選択してみると、

ちゃんと、VLOOKUP関数も動いていますね。スイカと表示されました。
このように、テーブルを使うことで、拡張性が確保されましたね。