トップページ >  Excel2010 >  データの活用
初版2012/01/19: 最終更新日2012/01/19
便利な関数(VLOOKUP)
目次
書式
解説

VLOOKUP 関数を使用すると、セル範囲の最初の列を検索し、その範囲の同じ行にある任意のセルから値を返すことができます。たとえば、セル範囲 A2:C10 に従業員リストが記載されているとします。このセル範囲の左端の列には、従業員の ID 番号が記載されているとします。

この場合、従業員のID番号がわかっていれば、VLOOKUP 関数を使って、その従業員の部署または名前を調べることができます。たとえば、特定ID の従業員の名前を取得するには、"=VLOOKUP(38, A2:C10, 3, FALSE)" という数式を使用します。この数式では、まずセル範囲 A2:C10 の左端の列で特定ID が検索され、さらにセル範囲の 3 番目の列から、検索値と同じ行にある値が返されます。

VLOOKUP 関数の "V" は、縦方向 (vertical) の検索を意味します。比較する値が検索データの左側の列にある場合は、HLOOKUP 関数ではなく VLOOKUP 関数を使用してください。

書式
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

VLOOKUP 関数の書式には、次の引数があります。

  • 検索値必ず指定します。表または範囲の左端の列で検索する値を指定します。検索値には、値または参照を指定します。検索値範囲の左端の列の最小値未満の値を指定すると、エラー値#N/A が返されます。
  • 範囲必ず指定します。データを含むセル範囲です。セル範囲への参照 (A2:D8など)、またはセル範囲名を指定します。範囲の左端の列の値から、検索値が検索されます。これらの値には、文字列、数値、論理値のいずれかを指定できます。英字の大文字と小文字は区別されません。
  • 列番号必ず指定します。目的のデータが入力されている列を、範囲内の左端から数えた列数で指定します。列番号に 1 を指定すると、範囲の左端の列の値が返され、列番号に 2 を指定すると、範囲の左から 2 列目の値が返されます (3 列目以降も同様に指定します)。

列番号に次の値を指定すると、対応するエラーが返されます。

  • 1 より小さい場合、#VALUE!エラー値が返されます。
  • 範囲の列数より大きい場合、#REF!エラー値が返されます。
  • 検索の型省略可能です。VLOOKUPを使用して検索値と完全に一致する値だけを検索するか、その近似値を含めて検索するかを指定する論理値です。
    • TRUE を指定するか省略すると、検索値と完全に一致する値、またはその近似値が返されます。完全に一致する値が見つからない場合は、検索値未満の最大値が使用されます。

重要検索の型に TRUEを指定するか省略する場合は、範囲の左端の列にある値を昇順に並べ替えておく必要があり、これを行わないと、正しい値が返されない場合があります。

検索の型に FALSE を指定する場合は、範囲の左端の列にある値を並べ替える必要はありません。

  • 検索の型に FALSEを指定すると、検索値と完全に一致する値だけが検索されます。完全に一致する値が範囲の左端の列に複数ある場合は最初に見つかった値が使用されます。完全に一致する値が見つからない場合は、エラー値 #N/A が返されます。
解説
  • 範囲の左端の列にある文字列を検索するときは、範囲の左端の列にあるデータの先頭または末尾にスペースがなく、左右とも同じ向きの引用符 (' または ") や左右で違う向きの引用符 (’ または ”) が矛盾なく使用されており、さらに印刷されない文字が含まれていないことを確認してください。これらの状況に当てはまる場合は、誤った値や予期しない値が返される場合があります。

数値や日付型の値を検索する場合は、範囲の左端の列にあるデータが文字列として保存されていないことを確認してください。この状況に当てはまる場合は、誤った値や予期しない値が返される場合があります。

  • 検索の型が FALSE で検索値が文字列の場合、検索値で疑問符 (?) またはアスタリスク (*) をワイルドカード文字として使用できます。ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは 1 文字以上の任意の文字列を表します。ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前に、"~*" のように半角のチルダ (~) を付けます。