OfficeType

Excel~VLOOKUP関数で必要なデータを抽出しよう~エクセル

エクセルで行ごとに整理されたデータからキーワードを検索して必要なデータを抽出するVLOOKUP関数について説明します。

  • VLOOKUP関数の書式は=VLOOKUP(検索値, 範囲, 列番号, [検索方法])になります。
  • 検索値は指定したデータの範囲の一番左の列からデータを抽出したい項目の値や文字列を指定します。
  • 範囲はデータの範囲を指定します。
  • 列番号は抽出したいデータが範囲の中で何列目かを指定します。
  • [検索方法]は完全一致で検索したい場合はFALSEをしていします。近似一致の場合はTRUEになります。

完全一致

下の画像の例で、商品"みかん"の単価を抽出してセルG2に表示したい場合はセルG2に=VLOOKUP(F2,A2:D6,2,FALSE)と入力しEnterを押します。

検索値はセルF2に入力された"みかん"を参照するのでF2になります。

範囲はセルA2からセルD6の表のデータ部分を指定するのでA2:D6になります。

列番号は単価の項目は範囲の中の2列目なので2になります。

[検索方法]は完全一致の場合はFALSEを指定します。

つまりセルG2に=VLOOKUP(F2,A2:D6,2,FALSE)と入力しEnterを押すと、"みかん"の単価30が表示されます。

近似一致

[検索方法]はの完全一致と近似一致の違いは、例えば検索値を100としたときに完全一致の場合は100だけが検索の対象になりますが、近似一致の場合は100が存在しないばあいは100未満の最大値が検索の対象になります。

下の画像の例はセルA1からセルB7の表がポイント数に応じた獲得商品になります。0ポイントから99ポイントは獲得商品がティッシュ、100ポイントから199ポイントは獲得商品がタオルを意味します。この例でセルF2にAさんの獲得商品を表示したい場合はセルF2に=VLOOKUP(E2,$A$2:$B$7,2,TRUE)と入力しEnterを押します。オートフィルした時に範囲がズレないように範囲に絶対参照$を使用しています。

検索値はセルE2に入力されたAさんのポイント146を参照するのでE2になります。

範囲はセルA2からセルB7の表のデータ部分を指定するので$A$2:$B$7になります。

列番号は獲得商品の項目は範囲の中の2列目なので2になります。

[検索方法]は近似一致の場合はTRUEを指定します。

つまりセルF2に=VLOOKUP(E2,$A$2:$B$7,2,TRUE)と入力しEnterを押すと、Aさんのポイントは146なので獲得商品の表の中に146は存在しないため146未満の最大値である100の獲得商品である"タオル"が表示されます。

セルF2からセルF7までオートフィルすればAさん~Fさんの獲得商品も表示されます。

検索値にワイルドカードを使う

ワイルドカードは*(アスタリスク)か?(クエスチョンマーク)を使います。*は文字数無制限の文字列を意味します。例えば"あ*"は最初に"あ"を含む文字列を意味します。"あいうえお"でも"あい"でも条件に一致したとみなされます。"*お"は最後に"お"を含む文字列を意味します。"あいうえお"でも"えお"でも条件に一致するとみなされます。?は1文字を意味します。たとえば"あ?"は最初に"あ"を含む2文字を意味します。"あい"や"あう"は条件に一致しますが、"あいう"は条件に一致しません。最初に"あ"を含む3文字を条件にしたい場合は"あ??"とします。

下の画像の例で、セルE2にCさんのポイントを表示したい場合はセルE2に=VLOOKUP(D2&"*",A2:B7,2,FALSE)と入力しEnterを押します。

検索値はセルD2に入力されたCさんを参照してCさんの後ろに任意の文字列を含むことを表すのでワイルドカードと連結させて、D2&"*"とすればCさん*と表現できます。これでCさんの後ろに(2班)がついていても検索できます。

範囲はセルA2からセルB7の表のデータ部分を指定するのでA2:B7になります。

列番号は獲得商品の項目は範囲の中の2列目なので2になります。

[検索方法]は完全一致の場合はFALSEを指定します。

つまりセルE2に=VLOOKUP(D2&"*",A2:B7,2,FALSE)と入力しEnterを押すと、Cさんのポイント1000が表示されます。

ワイルドカードを使わなければCさんとCさん(2班)は一致しないので検索値が存在せずエラーになります。

#N/Aエラー

検索値が存在しない場合は#N/Aエラーになります。

下の画像の例で、セルG2に=VLOOKUP(F2,A2:D6,2,FALSE)と入力しEnterを押すと検索値はセルF2を参照していてF2には"ぶどう"が入力されていて、商品に"ぶどう"は存在しないため#N/Aエラーになります。

#REF!エラー

列番号が範囲の列数を超えている場合は#REF!エラーになります。

下の画像の例で、セルG2に=VLOOKUP(F2,A2:D6,5,FALSE)と入力しEnterを押すと列番号は5で範囲の列数は4列なので#REF!エラーになります。