【Excel関数】初心者向けVLOOKUP関数の使い方

VLOOKUP関数は、指定した範囲のセルを検索し、条件に一致する値の求める関数です。例えば、シート上に社員マスタのデータがあるとき、社員番号から氏名を検索する、というような使い方ができます。

  • VLOOKUP関数の使い方
    検索するセル、検索したいセル範囲を指定します。
    =VLOOKUP(検索する値,セル範囲,列の位置,検索の型)
    「セル範囲」の左端から「検索する値」に一致するものを探します。一致した行の左から数えて「列の位置」に存在するセルの値を返します。一致しなければ、「#N/A」を返します。

    列数が多いリストで、「列の位置」がわかりにくい場合、こちらの記事(Vlookup関数で列位置を簡単に知る小技)もご覧ください。

    「検索の型」には、「TRUE」か「FALSE」を指定します。「TRUE」の場合、「検索する値」が見つからない場合は、検索値未満で最も大きい値が返されます。「FALSE」の場合、「検索する値」と完全に一致する値だけが検索され、一致しなければ「#N/A」が返されます。

    「TRUE」を指定すると意図しない結果が得られることがあるので、通常は「FALSE」にしておいた方が無難です。

  • 使い方の例
    下記のようなデータがあった場合、「=VLOOKUP(A2,E2:F12,2,FALSE)」と入力すると、「松田」と返します。これは、A2セルの値「102」でセル範囲「E2:F12」の左端を検索した結果、4行目が一致し、2列目(この場合F4セル)の値が返されたということになります。
    VLOOKUPの例

    VLOOKUPの例

    上記のA2セルをA3セルにコピーした場合、セル指定が相対的に移動してしまいます。
    =VLOOKUP(A3,E3:F13,2,FALSE)
    「検索する値」は良いのですが、「セル範囲」が1行下にずれています。このようなときは「セル範囲」を「$E$2:$F$12」のようにします(絶対指定)。
    =VLOOKUP(A3,$E$2:$F$12,2,FALSE)
    すると、コピーして使っても「セル範囲」がずれることはありません。もしくは、「E:F」のように、列の範囲を指定するようにしましょう。

    また、「セル範囲」は別シートでも構いません。「sheet2」シートに検索対象がある場合、下記のように指定します。
    =VLOOKUP(A2,Sheet2!$A$1:$B$12,2,FALSE)

  • 応用例
    これまで見てきたように、VLOOKUP関数を使うと、マスタとなるセル範囲から任意のセルを取得することができます。これを応用すると、入力用のシートを作ることもできます。

    例えば、B2セルに
    =VLOOKUP(A2,Sheet2!$A$1:$B$12,2,FALSE)
    と入力しておきます。A2セルに任意のデータを入力すると、入力した内容でセル範囲を検索し、結果を表示してくれます。社員番号を入力すると、氏名が表示される、というような動きをさせることができます。

    A2セルが未入力の場合、上記の関数は「#N/A」を返します。「#N/A」を表示しないようにするには、
    =IF(ISERROR(VLOOKUP(A2,A1:B12,2,FALSE)),"",VLOOKUP(A2,A1:B12,2,FALSE))
    のように、ISERROR関数と組み合わせます。