VLOOKUP関数の全てを解説。これを使えばミス知らず!

関数

VLOOKUP関数ってなに?

特定のデータを指定範囲の左端で検索し、その行の指定した列番号の値を抽出する関数です。

=VLOOKUP(検索値 , 範囲 , 列番号 , FALSE)

検索値:検索したいデータ・キーとなるデータ

範囲:検索値を探し出す範囲 ※範囲の左端にて検索値を探している

列番号:選択した範囲の左から何番目のデータを反映するか

FALSE:完全一致のデータしか抽出しない 0(ゼロ)を入力しても可能

例:商品の単価を、単価の表から抽出したい

=VLOOKUP( D3 , 単価!A:B , 2 ,0 )

意味:シート「単価」列A〜B全体を選択して、D3の「鮭」を列Aから探し、その行の2番目を抽出

起こりがちなエラーと解決方法

VLOOKUP関数を使用する際に、起こりがちなエラーは下記の通りです。

  • 検索値が範囲の左端にない
  • 範囲がズレている
  • VLOOKUPのスペルを間違えている

例:指定した範囲の列数よりも多い列番号を抽出しようとした場合

=VLOOKUP( D3 , 単価!A1:B76 , 30 )

意味:セルD3の値をシート「単価」セルA1からセルB76の範囲から探し、列Cの値を抽出

エラー「#REF!」の原因:指定した範囲外の列からデータ抽出しようとしているから

対策:指定した範囲と抽出したい列番号を確認

例:上記の数式を下へ延長した場合

エラー「#N/A」の原因:指定した範囲の左端に検索値が存在しないから

対策:数式延長に伴い指定範囲も同時に動いてしまっているため、範囲を固定すれば良い。具体的には、範囲指定に「$」を利用または列全体を指定する習慣を身につけましょう。

範囲「A1:B76」 → 範囲固定「$A$1:$B$76」または列全体「A:B」へ変更すれば解決

例:選択した範囲の左端に検索値がない

エラー「#N/A」の原因:指定した範囲の左端に検索値が存在しないから

一見するとデータがあるが、検索値と選択範囲のデータ型が異なる場合にも発生します。

例えば、100(文字列)と100(数値)はデータ型が異なるため、一致せずエラーとなります。

このようなデータ型が一致しない際には、変換する必要があります。その変換方法については下記記事でご確認ください!

例:VLOOKUPのスペルを間違えた場合

エラー「NAME?」の原因:関数名を間違えている

対策:関数のスペルミスを疑う

他の関数と組み合わせて使うと便利

VLOOKUP関数は単体でも非常に便利だが、他の関数と組み合わせることが可能です。

VLOOKUP関数を他の関数と組み合わせられれば、関数の理解は十分と言えるでしょう。

組み合わせ例をいくつか紹介します。

  • IFERROR関数
  • IF関数
  • MID関数

IFERROR関数との組み合わせ

IFERROR関数について、こちらの記事で詳しく解説しているのでチェックしてください!

VLOOKUP関数とIFERROR関数を組み合わせると

VLOOKUP関数で抽出できなかった表示する必要ないデータを空白として表示できます。

=IFERROR( VLOOKUP( 検索値 , 範囲 ,列番号 , FALSE) , “エラー時の表記” )

MID関数・IF関数との組み合わせ

MID関数・IF関数について、こちらの記事で詳しく解説しているのでチェックしてください!

関数の中に関数が組み込まれていると、非常に複雑になってしまい、理解が難しくなってしまいます。しかし、これを扱えるようになったら、関数への理解は完璧と言えるでしょう。

例えば、下記の例を見てみましょう。

  1. 注文番号を「都道府県コード + 注文月 + 連番」と設定
  2. 注文番号の頭3桁を都道府県コード表を利用して「都道府県名」を抽出
  3. ただし、抽出した3桁は文字列のため、数値へ変換
  4. シート「注文データ」の都道府県と2の抽出したものを比較
  5. 比較した結果、一致したら「0」・不一致なら「x」を表示

以上5点を数式にすると

=IF(VLOOKUP(VALUE(MID(注文番号,1,3),都道府県コード表!B:C,2,0)=都道府県名,”0″,”x”)

似た関数

VLOOKUP関数と似た関数として、HLOOKUP関数とXLOOKUP関数があります。

基本的にはVLOOKUP関数さえ利用できれば十分です。なので、ひとまずはVLOOKUP関数を解説なしでも利用できるレベルまで理解を深めましょう。

しかし、理解を深めるために、似た関数の学習は有効ですので、時間のある時に下記記事を参照してください。

作成中…

この関数を使わずに手作業で行うと大変

もしVLOOKUP関数を使わないとしたら、オートフィルターで1つずつ検索し、コピー&ペーストを繰り返すことになります。

オートフィルターに関する説明は下記の記事を参照してください。

多すぎる手作業はミスの元です。

だからこそ、こんな時にVLOOKUP関数を使えば、手作業が大幅に減り、ミスがなくなります!

VLOOKUP関数が実務でよく利用されているのは、ミスを大幅に減らしつつ、欲しいデータを抽出してくれるからです。手作業で行うことと関数を使うことの労力の差を考えれば、一目瞭然です。

VBAでVLOOKUP関数を利用する

「事務員のエクセルクエスト」において最高レベルのエクセル熟練度となるVBAでVLOOKUP関数を利用できます。

マクロ作成におけるVBAでのVLOOKUP関数の書き方については下記の記事を参考にしてください。

コメント

タイトルとURLをコピーしました