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関数が出来るということ。がわかりましたが、
ちょっと実務的ではないかも。