【Excel】VLOOKUPを理解しよう

今回はExcelを使用するうえで覚えて損のない関数,「VLOOKUP」のご紹介です。

当方も本関数をよく使用して資料作成しています。

ぜひ理解して,資料作成に役立てていきましょう!

目次

前提知識

関数

Excelに備わっている数式や命令文のことです。

全部で約500種類あり,複数セルに記載してある数値の合計値算出や特定データの抽出等,様々な用途で使用することができます。

人手では何時間も掛かるであろう複雑な計算も,Excelの関数を使用することで瞬時に求めることが可能です。

イツキ

資料作成において,Excelの使い勝手は抜群です!

VLOOKUP

表や指定した範囲内にある,条件と合致するデータを抽出する関数です。

類似関数に以下があります。

類似関数
  • VLOOKUP ←今回の主題
  • HLOOKUP
  • XLOOKUP

検索方法にそれぞれ違いがあるものの,条件合致のデータを抽出する意味では同じ関数です。

VLOOKUPは,検索値に対して右方向へデータを検索して抽出します。

関数の使い方

構文

VLOOKUP関数の構文は以下の通りです。

構文

=VLOOKUP([検索値],[範囲],[列番号],[検索方法])

今回は野菜のデータを抽出する例を使用して説明します。

C12セル(「商品番号」)に商品番号を入力して,D12(「商品名」)~G12セル(「備考」)へ商品番号に応じたデータを抽出してみましょう。

入力前

入力後

検索値

検索の要となる値を設定します。

セルへ入力した値を検索条件に設定することで,使い勝手が良くなるでしょう。

今回は複合参照で「$C12」を入力します。

範囲

検索をする範囲を指定します。

今回はB2セル~G9セルにある表内から検索したいため,絶対参照にて「$B$2:$G$9」としたいところですが,「$C$2:$G$9」を指定しています。

理由は後述します。

列番号

先の「範囲」内において,先頭の列から数えた抽出したいデータの列番号を指定します。

関数を入力しているD12セルでは,「範囲」($C$2:$G$9)内の表にある「商品名」(D2~D9の範囲)を抽出します。

「商品名」は先頭の「商品番号」列(C列)から数えて2番目の列(D列)にあるため,「2」を指定します。

検索条件

検索するうえでの条件を指定します。

なお,本項目は省略しても問題ありません。

指定するうえでは以下のどちらかを指定します。

検索条件
  • TRUE:近似一致

    「検索値」と近い値のデータを抽出する。
    指定を省略した場合は「TRUE」として検索する。

    本検索条件を指定する場合,「範囲内」の先頭列は昇順で並び替える必要がある。
  • FALSE:完全一致

    「検索値」と完全に一致したデータを抽出する。
カオリ

どっちが良いんですか?

イツキ

特別な事情がない限り,「FALSE」がおすすめだよ!

「TRUE」の場合は範囲内にある表等を事前に加工(昇順並び替え等)しておく必要もあるため,特に何も考えなくて良い「FALSE」が適切でしょう。

実証

早速,「商品番号」(C12セル)へ値を入力して確認してみましょう。

入力前

入力後

「商品番号」(「N714」)に対する「商品名」(「トマト」)を抽出することができました!

では,他の類似関数との違いを把握する意味も兼ねて,VLOOKUPの挙動を確認していきましょう。

①「範囲」内における先頭列での「検索値」検索

まずはVLOOKUPで指定した「範囲」にある先頭列から,「検索値」と完全一致(「検索条件」に「FALSE」を指定)するセルを検索します。

先に入力した「N714」は,C6セルにあります。

②指定した列番号のデータ抽出

「検索値」のあったセル(C6)から右方向の列番号(2)内にあるデータを抽出して出力します。

今回は2列目を指定したため,2列目にある「トマト」が結果として返ってきます。

残りのセル(E12~G12)にも「列番号」を変えて同じように数式を入力することで,「検索値」に応じた適切なデータを抽出することができます。

最終状態

最終的に,B11~G12の範囲にある表には以下が入力してある状態となっています。

#商品番号商品名単価(円)在庫数(個)備考
=ROW()-ROW($B$11)(関数無し)=VLOOKUP
($C12,$C$2:$G$9,2,FALSE)
=VLOOKUP
($C12,$C$2:$G$9,3,FALSE)
=VLOOKUP
($C12,$C$2:$G$9,4,FALSE)
=VLOOKUP
($C12,$C$2:$G$9,5,FALSE)

注意点

VLOOKUPを使用するうえでは以下の注意点があります。

注意点
  1. 検索値として指定する列を必ず1列目にする。
  2. 範囲に指定した先頭の列から右方向にしか検索できない。
  3. 検索値が見つからなかった場合はエラー(#N/A1)になる。
  4. 抽出したデータが空欄だった場合は「0」と表示が出る。

①検索値の列

設定する「範囲」において,「検索値」を含む列は必ず1列目にする必要があります。

「検索値」を「範囲」の1列目から検索する仕様となっているためです。

また,仮に検索値が複数ある場合,最も上の行にあるデータを抽出します。

先頭の列に入力する値は一意(値の重複が無い)となるようにする。

②検索方向

データの抽出において,先頭の列から右方向への検索しかできません

もし左方向に抽出したいデータがある場合,抽出したいデータのある列を先頭の列より右側へ持っていきましょう。

もしくは,他の関数(「INDEX」&「MATCH」や「XLOOKUP」,別途紹介予定)を使用しても可能です。

③検索値の該当なし

「検索値」が見つからなかった場合はエラー(#N/A)となります。

「検索値」に何も設定していない(空欄)状態であっても同じです。

もし何も設定していない状態でのエラー表示を回避したい場合は,「IF」関数を使用して何も設定していない時の条件を設定するか,「IFERROR」関数を使用することで回避可能です。(別途紹介します。)

④抽出データが空欄

抽出したデータが空欄(入力値が何もない状態)だった場合,「0」と表示が出ます。


もし空欄として出力したい場合は,以下のように設定しておくと良いでしょう。

「0」を表示しない設定

=VLOOKUP([検索値],[範囲],[列番号],[検索方法])&””

「VLOOKUP」の結果に加えて空文字を設定することで,「0」の表示を回避しています。

まとめ

今回はExcelにある関数の一種,「VLOOKUP」について説明しました。

使用するうえでの注意事項はあるものの,非常に使い勝手の良い関数かと思います。

今回使用した例のように,データ数が少なければ目視で確認しても良いかもしれません。

しかし,データ数が膨大であったり,将来的にデータが変化する可能性も踏まえると,関数を使用して抽出する方が賢明と言えるでしょう。

関数を駆使して,様々な資料作成に役立ててください!


  1. 「not applicable」(該当なし)または「not available」(利用不可)の略称。 ↩︎
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

Author

               
イツキのアバター
イツキ
               

24年度からITフリーランスとして事業開始。インフラエンジニアとして,サーバ設計・構築やミドルウェアの設計・構築に従事。

本業の傍らで,仕事だけでなく日常生活でも役立つPCに関する様々な情報を発信中!                

目次