vlookup関数で別シートを参照する【サンプルデータあり】

今回はvlookupの使い方とともに
他シート・他ファイルからデータを持ってくる方法
を解説していきます。

vlookupで他のシートを参照する方法

vlookupの基本的な使い方

まずはvlookup関数の基本の使い方を紹介します。
vlookup関数は

=vlookup(検索値 , 参照範囲 , 指定列 , 検索方法)

このように記述しますが、簡単に言うと
「指定した値を、指定した範囲から検索して、その横にある値をもってきて!」
という指示を出せる関数です。
例えば、商品リスト(=範囲)から商品番号001(=検索値)の商品の価格(=指定列)を完全一致(=検索方法)
でもってきて、という場合

=VLOOKUP( “001” , A2:D13 , 3 , FALSE )

のように記述すると価格を抽出することができます。

このように、vlookup関数では
・検索する範囲
・検索したいもの
の2つを用意することで、任意の値を抽出できる関数なのです。

vlookup関数の基本の使い方は別記事でまとめているので、もしわからなかったら見て下さい。

vlookupで別シートから参照する方法

では、本題の別シートから参照する方法を解説していきます。
今回はこのケースでよく使われる見積もり表を例題として解説をしていきます。

サンプルデータも作って公開をしているので、こちらを見てもらえるとわかりやすいと思います。

例題:見積もりを作る際に、商品番号を入れると別シートに用意されている商品リストから商品名・価格が自動で入力されるようにしたい

回答はこんな形です。

=VLOOKUP($A14,’商品リスト’!$A$2:$D$13,2,false)

別シートから参照をする場合は参照範囲となるシート名を「’」で囲い範囲の前に「!」をつけてあげればOKです。
関数を直接入力ではなく、マウスをクリックしながら選択すると勝手に入力されるので、別シートの場合は範囲をマウスでクリックするようにしましょう。

内容を少し詳しく解説をしていきます。

用意するものは2つですね
①検索する範囲
今回は商品リストを別シートに用意するので、商品リストを用意しましょう

②検索したいもの
商品番号から価格と商品名をだしたいので、商品リストにはこの3つを用意していきましょう

ではまず
商品リストの用意です。
今回は画像のように商品リストを用意しました。
検索値(=商品番号)になるものは最左にしましょう。
vlookup関数の性質上最左の値しか検索できないためです。
最左以外の検索を行いたい場合は別記事を参照下さい

次に、見積書を作っていきましょう。
見積書のフォーマットは簡易のものを用意しました。

商品番号を仮で入力して、それを検索値として関数を作っていきましょう。
別シートを参照する場合は参照範囲となるシート名を「’」で囲い範囲の前に「!」をつけてあげればOKです。
関数を直接入力ではなく、マウスをクリックしながら選択すると勝手に入力されるので、別シートの場合は範囲をマウスでクリックするようにしましょう。
範囲の中で商品名は2列目、価格は3列目になるので、列番号は2,3とそれぞれ記載しましょう。
検索方法については完全一致を想定しているため、falseになります。
下に関数をコピーしていくことを想定して、「$」で絶対参照相対参照を用いています。

=VLOOKUP ( $A14 , ‘商品リスト’!$A$2:$D$13 , 2 , false )
=VLOOKUP ( $A14 , ‘商品リスト’!$A$2:$D$13 , 2 , false )

これで完成ですね。

参照できない・エラーがでる場合

関数を下までコピーして延長すると、「#N/A」というエラーが出てきます。

このエラーは、「検索値が見つからない」というエラーになりますので、IFERROR関数を使って解消していきましょう。
サンプルデータでも作って公開をしています。

IFERROR(エラーか検証する値 , エラーの場合の出力)

を入力するとエラー表示を消すことができます。
今回の場合

=iferror(VLOOKUP($A14,’商品リスト’!$A$2:$D$13,2,false),””)

のようにvlookup関数をiferror関数で囲ってあげ、エラーの場合の出力を””と空白にしてあげればOKです。
詳しい解説はこちらの記事で行っています。

範囲選択を自由にしたい

商品リストが今後増えていくので、そのたびに範囲を変更するのが面倒くさい…
という場合は、範囲選択を可変にして対応できるようにしていきましょう。

範囲選択についてはこちらの記事で解説していますので参考にしてみてください。

別のスプレッドシートから参照をしたい

別のスプレッドシートに価格表がある場合、については、スプレッドシートの独自関数でもある
「importrange」という関数をつかっていきます。
とても簡単なので僕も好きな関数の一つです。

importrange(”スプレッドシートのURL” , “参照したい範囲”)

を指定することで、簡単に別スプレッドシートの値を持ってくることができます。

今回の場合は便宜上同じスプレッドシートから値を持ってきますが、

=IMPORTRANGE(“https://docs.google.com/spreadsheets/d/195nvHEZ1ya7zkfQVAbAa01gmeb1nXutanalfpehNFP0/edit#gid=1602350880″,”商品リスト!A1:j100”)

このように入力し、アクセスの許可をすると、商品リストを抽出することができます。


まとめ

今回はvlookup関数の別シート参照について解説をしていきました。
基本の部分なので、コツコツとしっかり理解をして使いこなせるようになっていきましょう!