7/27/2014

Excel。VLOOKUP関数。その7 別のブックに範囲がある。ブック間VLOOKUP関数


Excel。VLOOKUP関数。その7 
別のブックに範囲がある。ブック間VLOOKUP関数

ブック間のVLOOKUP関数

VLOOKUP関数に関して色々書いておりますが、検索される範囲が別シートというのは、
テキストにしろ、色んな研修や、集中講座でも紹介しますが、
ファイル間というか、ブック間でVLOOKUP関数をすることは出来ますか?
という質問もよく聞きますので、

今回は、ブック間でのVLOOKUP関数を紹介します。

まず、準備ですが、VLOOKUPというフォルダに、納品書というファイルと、
商品マスターというブックが入っております。


そして、納品書ファイルには、

納品書があります。そして、商品マスターファイルには、

商品リストがあります。このリストが、VLOOKUP関数の範囲にあたります。
今回紹介するのは、この納品書ファイルと商品マスターファイルの間で
VLOOKUP関数が使えるのか?ということですので、早速挑戦してみましょう。

まずは、2つのExcelファイルは開いた状態にしておきます。
なお、エラー表示をさせないためにIF関数+VLOOKUP関数を以前にご紹介しておりますが、
今回は煩雑になるのを避けるため、VLOOKUP関数のみで、紹介していきますので、

IF関数+VLOOKUP関数でも、OKです。

では、納品書ファイルのB4にBR-200という商品コードを事前に入力しておきます。
C4をクリックして、VLOOKUP関数のダイアログボックスを表示しましょう。

検索値には、B4と入力して、範囲のボックスにカーソルを表示してある状態です。
この範囲が、商品マスターファイルにあるので、商品マスターファイルに移動して、
商品リストのデータのA2:C5を範囲選択していきます。

範囲には、
[商品マスター.xlsx]商品マスター!$A$2:$C$5
列番号は、2
検索方法は、完全一致で false
これで、OKボタンをクリックしましょう。
そうすると、納品書ファイルの納品書のC4には、リンゴと表示されております。

商品コードを別の商品コードに変えてみましょう。ちゃんと商品名が変わることが確認できますね。
ということで、ブック間でのVLOOKUP関数は出来るということがわかりましたが、
困ったこともいくつかあります。

それは、前回まで様々紹介してきたテクニックが使えないという事。
つまり、入力ミスや効率化に拡張性に関してが、このブック間では出来ないのです。

まず、商品コードのところに【入力規則のリスト】を設定したくても、出来ません。
では、名前の定義を使えばと思いますが、この名前の定義もブック間では出来ません。

なので、ブック間でのVOOKUP関数は出来ることは出来るけど、
基本的なVLOOKUP関数のみしか出来ない訳ですね。

そして、一度保存して、再度納品書ファイルのみを開いてみましょう。
すると、メッセージが表示されます。

これは、他のブックとリンクしているけど、リンクしますか?ということを聞いてきています。
ですので、使う場合は、最新の状態であるほうがいいので、更新するボタンをクリックする。

を選んだ方がいいでしょう。

さらに、商品マスターファイルを開いていない状態ですと、
C4に設定してあるVLOOKUP関数の数式が開いている状態と異なっていますので、
確認してみます。

商品マスターファイルを閉じてある場合。

=VLOOKUP(B4,'D:\VLOOKUP\[商品マスター.xlsx]商品マスター'!$A$2:$C$5,2,FALSE)

商品マスターファイルを開けてある場合。

=VLOOKUP(B4,商品マスター.xlsx!$A$2:$C$5,2,FALSE)
この差はなんなのかというと、閉じてあるときは、そのファイルのある場所。
つまりパスが表示されるわけです。

なので、数式の内容が違っているように見えるわけですが、一緒ですので、ご安心ください。

まぁ、ブック間でもVLOOKUP関数が出来るということ。がわかりましたが、
ちょっと実務的ではないかも。