本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[XL]VLOOKUP 関数の使用例

文書番号: 402177

最終更新日: 1997/10/20


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP402177

概要

本文書は、Excel5.0 をのワークシート関数「 VLOOKUP 関数」の使用例について
まとめています。

詳細

Excel 5.0 で用意されているワークシート関数についての詳細は、[?] - [キーワ
ード検索] コマンドを実行して「キーワード」に関数名を入力して検索するか、
または [挿入] - [関数] コマンドを実行して [関数ウィザード] の <ヘルプ> を参照することができます。
本文書ではいくつかのワークシート関数を紹介しています。各関数についての詳細
は、オンライン ヘルプを参照してください。

機能

指定した範囲の左端列で特定の値を検索し、それに対応するセルの値を返します。
たとえば、セル範囲の左端列に「コード」が入力されている場合、指定した「コード」 に対応する「製品名」や「金額」などを求めることができます。

構文

  =VLOOKUP(検索値,範囲,列番号,検索の型)
  <検索値>
  <範囲> の左端列で検索する値を指定します。<検索値> には値、セル参照、または文
  字列を指定します。
  <範囲>
  目的のデータが含まれるテーブルを指定します。セル範囲の参照、または [挿入] -
  [名前] - [定義] サブコマンドで定義した名前を指定します。
  <検索値> と完全に一致する値だけを検索する場合は、データの並び順は任意で構い
  ません。
  しかし、<検索値> の近似値を含めて検索する場合は「昇順」に並べ替えておく必要
  があります。
  <列番号>
  <範囲> 内で目的のデータが入力されている列を、左端からの列数で指定します。<列
  番号> に 1 を指定すると、<範囲> の左端列の値が返され、列番号に 2 を指定する
  と、<範囲> の左から 2 列目の値が返されます。
  <検索の型>
  <検索値> と完全に一致する値だけを検索するか、その近似値を含めて検索するか
  を、論理値 (TRUE または FALSE) で指定します。
  TRUE を指定すると <検索値> が見つからない場合に、<検索値> 未満で最も大きい値
  が使用されます。FALSE を指定すると <検索値> と完全に一致する値だけが検索され
  ます。
  <検索の型> を省略すると TRUE とみなされます。

使用例

ここでは、サンプルデータ <表> をもとに解説します。
  <表>
  __|___A___|_____B____|___C___|
   1|コード |製品名    |金額   |
   2|    101|Excel     | 58,000|
   3|    102|Word      | 58,000|
   4|    103|PowerPoint| 20,000|
   5|    105|Access    | 58,000|
   6|    110|Office    | 78,000|

例 1

  =VLOOKUP(103,$A$2:$C$6,2)
<範囲> の左端列から数値「 103 」を検索して、見つかったら <範囲> の左から 2 列 目の値を返します。計算結果は PowerPoint です。

例 2

  =VLOOKUP(103,Database,3)
あらかじめ、セル範囲 $A$2:$C$6 を選択後 [挿入] - [名前] - [定義] サブコマン
ドを実行して [名前] Databae、[参照範囲] =$A$2:$C$6 と定義します。<範囲> には名前を指定することができます。
<範囲> の左端列から数値「 103 」を検索して、見つかったら <範囲> の左から 3 列目の値を返します。計算結果は 20000 です。

例 3

  __|__D__|__________E_____________
   1|101  |=VLOOKUP(D1,$A$2:$C$6,2)
   2|102  |
   3|103  |
   4|104  |
<検索値> に入力されているのは「セル参照」です。セル D1 に入力されている値 (ここでは「 101 」を検索して、見つかったら <範囲> の左から 2 列目の値を返しま す。セル E1 の計算結果は Excel です。

例 4

セル E1 に入力した数式を、セル E2 や E3 へコピーすると、次のようになります。
  __|__D__|__________E_____________
   1|101  |=VLOOKUP(D1,$A$2:$C$6,2)
   2|102  |=VLOOKUP(D2,$A$2:$C$6,2)
   3|103  |=VLOOKUP(D3,$A$2:$C$6,2)
   4|104  |
「セル参照」には「相対参照」と「絶対参照」、「複合参照」があります。
D1 のような参照は「相対参照」といい、数式の入力されているセルを起点として
他のセルの位置を指定しています。
数式の入力されているセル E1 を起点としてセル D1 は「ひとつ左のセル」にあ
たりますので、セル E1 の数式をセル E2 へコピーした場合は、セル E2 を起点
として「ひとつ左のセル」、つまりセル D2 を参照するようになります。
$A$2:$C$6 のような参照は「絶対参照」といい、ワークシート上の絶対的な位置に
基づいてセルの位置を指定しています。「絶対参照」は列番号と行番号の前にドル
記号 ($) を付けて示します。
セル E1 の数式をセル E2 へコピーしても、「絶対参照」のセル範囲 $A$2:$C$6
は同じセルを参照し続けます。
「参照」についての詳細は「ユーザーズ ガイド」 139 ページ「参照について」を参照 してください。
セル E2 の計算結果は Word、セル E3 の計算結果は PowerPoint です。

例 5

セル E1 に入力した数式を、セル E4 へコピーすると、次のようになります。
  __|__D__|__________E_____________
   1|101  |=VLOOKUP(D1,$A$2:$C$6,2)
   2|102  |=VLOOKUP(D2,$A$2:$C$6,2)
   3|103  |=VLOOKUP(D3,$A$2:$C$6,2)
   4|104  |=VLOOKUP(D4,$A$2:$C$6,2)
<検索値> となる「 104 」は <範囲> の左端列には含まれていません。<検索の型> が 省略されているため、<検索値> 未満で最も大きい値 (この場合は「 103 」) が使用 されます。
セル E4 の計算結果は PowerPoint です。

例 6

<検索値> と完全に一致する値だけを <範囲> から検索したい場合は次のように します。
  __|__D__|_____________E________________
   4|104  |=VLOOKUP(D4,$A$2:$C$6,2,FALSE)
<検索の型> を FALSE に指定することによって、<検索値> と完全一致するデータ のみを検索することができます。
セル E4 の計算結果は #N/A です。これは <検索の型> が FALSE に指定されており、 <検索値> と完全に一致する値が <範囲> の左端列の中から見つからない場合のエラー 値です。

例 7

<検索値> と完全に一致する値だけを <範囲> から検索し、完全に一致するものが見 つからなかった時に、エラー値を表示させたくない場合は次のようにします。
  7-1
  __|__D__|________________________________E__________________________________
   4|104  |=IF(ISNA(VLOOKUP(D4,$A$2:$C$6,2,FALSE)),"見つかりません",VLOOKUP(D4
    |     |,$A$2:$C$6,2,FALSE))
VLOOKUP 関数の計算結果が #N/A かどうかを判別するワークシート関数 ISNA 関数を 使っています。IF 関数を使って条件分岐をし、VLOOKUP 関数の計算結果が #N/A であ る場合は、そのセルに「見つかりません」と文字列を表示します。
  7-2
  __|__D__|________________________________E__________________________________
   4|104  |=IF(ISERROR(VLOOKUP(D4,$A$2:$C$6,2,FALSE)),"エラーです",VLOOKUP(D4,
    |     |$A$2:$C$6,2,FALSE))
VLOOKUP 関数の計算結果がエラー値かどうかを判断するワークシート関数 ISERROR
関数を使っています。#N/A 以外のエラー値 (#REF! や #VALUE! など) にも対応するこ とができます。IF 関数を使って条件分岐をし、VLOOKUP 関数の計算結果がエラー値で ある場合は、そのセルに「エラーです」と文字列を表示します。
  7-3
  __|__D__|________________________________E_________________________________
   4|104  |=IF(VLOOKUP(D4,$A$2:$C$6,2,TRUE)=D4,VLOOKUP(D4,$A$2:$C$6,2,FALSE),
    |     |"")
あらかじめ <検索値> と同じ値が <範囲> の左端列に含まれているかどうかを等号記 号を使って判断しています。<検索の型> に TRUE を指定した VLOOKUP 関数で得られ た値が <検索値> と等しければ、その値は <範囲> の左端列に含まれていることに なります。等しくなければ <範囲> の左端列には含まれていないことになり、その セルに文字数 (文字の長さ) 0 の文字列を表示します (つまり何も表示されません)。 なお、<検索の型> に TRUE を指定する場合は <範囲> のデータが必ず「昇順」で並 べ替えられている必要があります。

エラー値

VLOOKUP 関数の計算結果がエラー値の場合は、それぞれ次のような原因が考えられ
ます。
  エラー値                         原因
  --------  -----------------------------------------------------------------
  #VALUE!   <列番号> の指定が 1 より小さい
  #REF!     <列番号> の指定が <範囲> の列数きょり多い
  #N/A      <検索の型> が FALSE に指定されており、<検索値> と完全に一致
            する値が <範囲> の 左端列の中から見つからない
            <検索の型> の指定が TRUE に指定されているか、または省略されており、
            <検索値> が <範囲> の左端列の最小値より小さい

Keywords: KBHOWTO KB402177
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch

inserted by FC2 system