Microsoft Office Online
Office Online にサインイン (サインインとは?) | サインイン

 
 
Microsoft Office Excel
検索
検索
 
以前のバージョン: (c) Microsoft
以前のバージョンの製品情報
更新プログラムの確認: (c) Microsoft
Office のダウンロード
 
 
 
注意: このページはサポートされていない Web ブラウザで表示されています。この Web サイトは、Microsoft Internet Explorer 6.0 以降、Firefox 1.5、または Netscape Navigator 8.0 以降を使用すると、正しく表示されます。 サポートされているブラウザの詳細情報

印刷用ページの表示印刷用ページの表示 ブックマークを設定して共有共有
VLOOKUP
 

指定された範囲の 1 列目で特定の値を検索し、その範囲内の別の列の同じ行にある値を返します。

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

書式

VLOOKUP(検索値,範囲,列番号,検索の型)

検索値  配列 (配列 : 複数の結果を返す数式や、行および列範囲に入力された引数をまとめて処理する数式に使用される。配列範囲では、共通の数式が使用されます。配列定数は、引数として使用される定数の集まりです。)の左端の列で検索する値を指定します。検索値には、値またはセル参照を指定します。

範囲  2 列以上のデータ列です。セル範囲の参照、またはセル範囲名を指定します。範囲の左端の列の値が、検索値で検索される値です。これらの値は、文字列、数値、論理値のいずれかであることが必要です。英字の大文字と小文字は区別されません。

列番号  範囲内で目的のデータが入力されている列を、左端からの列数で指定します。列番号に 1 を指定すると、範囲の左端の列の値が返され、列番号に 2 を指定すると、範囲の左から 2 列目の値が返されます。列番号が次の場合は、エラーが返されます。

  • 1 より小さい場合、#VALUE! エラー値が返されます。
  • 範囲の列数より大きい場合、#REF! エラー値が返されます。

検索の型  VLOOKUP を使用して検索値と完全に一致する値だけを検索するか、その近似値を含めて検索するかを指定する論理値です。

  • TRUE を指定するか省略すると、検索値と完全に一致する値、またはその近似値が返されます。検索値が見つからない場合は、検索値未満の最大値が使用されます。

    範囲の左端の列にあるデータは、昇順に並べ替えておく必要があります。そうしないと、正しく計算が行われません。データを昇順に配列するには、[データ] メニューの [並べ替え] をクリックし、[昇順] をクリックします。詳細については、「既定の並べ替え順序」を参照してください。

  • FALSE を指定すると、検索値と完全に一致する値だけが検索されます。この場合、範囲の左端の列にある値を並べ替える必要はありません。検索値と一致する値が範囲の左端に複数ある場合は、最初に検索された値が使用されます。検索値と完全に一致する値が見つからない場合は、#N/A エラー値が返されます。

解説

  • 範囲の左端の列にある文字列を検索する場合は、範囲の左端の列にあるデータの先頭または末尾にスペースがなく、左右とも同じ向きの引用符 (' または ") や左右で違う向きの引用符 (’ または ”)、印刷されない文字が矛盾なく使用されていることを確認してください。これらの文字の使用に矛盾があると、VLOOKUP によって誤った値や予期しない値が返されます。文字列を整理するための関数については、「文字列データ関数」を参照してください。
  • 数値や日付型の値を検索する場合は、範囲の左端の列にあるデータが文字列として保存されていないことを確認してください。これらのデータが文字列として保存されていると、VLOOKUP によって誤った値や予期しない値が返されます。詳細については、「文字列として保存されている数値を数値形式に変換する」を参照してください。
  • 検索の型に FALSE を指定し、検索値が文字列の場合は、検索値に半角の疑問符 (?) または半角のアスタリスク (*) をワイルドカード文字として使用することができます。ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは任意の文字列を表します。ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前に、"~*" のように半角のティルダ (~) を付けます。

使用例 1

使用例を新規のワークシートにコピーすると、計算結果を確認できます。

表示その方法は?

  1. 新しいブックまたはワークシートを作成します。
  2. ヘルプ トピックから使用例を選択します。

     メモ   行見出しまたは列見出しは選択しないでください。

    ヘルプから使用例を選択する

    ヘルプから使用例を選択する
  3. Ctrl キーを押しながら C キーを押します。
  4. ワークシートのセル A1 を選択し、Ctrl キーを押しながら V キーを押します。
  5. 計算結果と結果を返す数式の表示を切り替えるには、Ctrl キーと Shift キーを押しながら ` (アクサン グラーブ) キーを押すか、[数式] タブの [ワークシート分析] グループで [数式の表示] をクリックします。

次の例では、大気特性表の "密度" 列を検索し、"粘性率" 列と "温度" 列の対応する値を取得します (これらの値は、海抜 0 m、つまり 1 気圧で気温が摂氏 0 度の場合のものです)。

 
1
2
3
4
5
6
7
8
9
10
A B C
密度 粘性率 温度
0.457 3.55 500
0.525 3.25 400
0.616 2.93 300
0.675 2.75 250
0.746 2.57 200
0.835 2.38 150
0.946 2.17 100
1.09 1.95 50
1.29 1.71 0
数式 説明 (計算結果)
=VLOOKUP(1,A2:C10,2) 列 A で値 1 の近似値を検索すると、1 以下の最大値である 0.946 が検出され、同じ行の列 B にある値が返されます (2.17)。
=VLOOKUP(1,A2:C10,3,TRUE) 列 A で 1 の近似値を検索すると、1 以下の最大値である 0.946 が検出され、同じ行の列 C にある値が返されます (100)。
=VLOOKUP(0.7,A2:C10,3,FALSE) 列 A で 0.7 の完全一致を検索します。列 A には完全に一致する値がないため、エラー値が返されます (#N/A)。
=VLOOKUP(0.1,A2:C10,2,TRUE) 列 A で 0.1 の近似値を検索します。0.1 は列 A の最小値より小さいため、エラー値が返されます (#N/A)。
=VLOOKUP(2,A2:C10,2,TRUE) 列 A で 2 の近似値を検索すると、2 以下の最大値である 1.29 が検出され、同じ行の列 B にある値が返されます (1.71)。

使用例 2

使用例を新規のワークシートにコピーすると、計算結果を確認できます。

表示その方法は?

  1. 新しいブックまたはワークシートを作成します。
  2. ヘルプ トピックから使用例を選択します。

     メモ   行見出しまたは列見出しは選択しないでください。

    ヘルプから使用例を選択する

    ヘルプから使用例を選択する
  3. Ctrl キーを押しながら C キーを押します。
  4. ワークシートのセル A1 を選択し、Ctrl キーを押しながら V キーを押します。
  5. 計算結果と結果を返す数式の表示を切り替えるには、Ctrl キーと Shift キーを押しながら ` (アクサン グラーブ) キーを押すか、[数式] タブの [ワークシート分析] グループで [数式の表示] をクリックします。

次の例では、乳児向け商品テーブルの "商品 ID" 列を検索して、それに対応する "仕入れ額" 列と "値入れ率" 列の値を取得し、価格を計算して条件をテストします。

 
1
2
3
4
5
6
A B CD
商品 ID 商品 仕入れ額 値入れ率
ST-340 ベビーカー $145.67 30%
BI-567 よだれかけ $3.56 40%
DI-328 おむつ $21.45 35%
WI-989 ハンカチ $5.12 40%
AS-469 吸引器 $2.56 45%
数式 説明 (計算結果)
= VLOOKUP("DI-328", A2:D6, 3, FALSE) * (1 + VLOOKUP("DI-328", A2:D6, 4, FALSE)) 仕入れ額に値入れ率を加えて、小売り価格を計算します ($28.96)。
= (VLOOKUP("WI-989", A2:D6, 3, FALSE) * (1 + VLOOKUP("WI-989", A2:D6, 4, FALSE))) * (1 - 20%) 小売り価格から一定の割引率を引いて、ハンカチの販売価格を計算します ($5.73)。
= IF(VLOOKUP(A2, A2:D6, 3, FALSE) >= 20, "値入れ率 " & 100 * VLOOKUP(A2, A2:D6, 4, FALSE) &"%", "仕入れ額 $20.00 未満") 商品の仕入れ額が $20.00 以上の場合は "値入れ率 nn%"を表示し、$20.00 未満の場合は "仕入れ額 $20.00 未満" と表示します (値入れ率 30%)。
= IF(VLOOKUP(A3, A2:D6, 3, FALSE) >= 20, "値入れ率: " & 100 * VLOOKUP(A3, A2:D6, 4, FALSE) &"%", "仕入れ額 $" & VLOOKUP(A3, A2:D6, 3, FALSE)) 商品の仕入れ額が $20.00 以上の場合は "値入れ率 nn%" を表示し、$20.00 未満の場合は "仕入れ額 $n.nn" を表示します (仕入れ額 $3.56)。

使用例 3

使用例を新規のワークシートにコピーすると、計算結果を確認できます。

表示その方法は?

  1. 新しいブックまたはワークシートを作成します。
  2. ヘルプ トピックから使用例を選択します。

     メモ   行見出しまたは列見出しは選択しないでください。

    ヘルプから使用例を選択する

    ヘルプから使用例を選択する
  3. Ctrl キーを押しながら C キーを押します。
  4. ワークシートのセル A1 を選択し、Ctrl キーを押しながら V キーを押します。
  5. 計算結果と結果を返す数式の表示を切り替えるには、Ctrl キーと Shift キーを押しながら ` (アクサン グラーブ) キーを押すか、[数式] タブの [ワークシート分析] グループで [数式の表示] をクリックします。

次の例では、従業員テーブルの "ID" 列を検索して、それに対応する他の列の値を取得し、年齢を計算してエラー条件をテストします。

 
1
2
3
4
5
6
7
A B CDE
ID 役職生年月日
1 西脇 営業員 1968/12/8
2 鈴木 京子営業部長1952/2/19
3 山本 太郎営業員 1963/8/30
4 山田 ひろみ営業員 1958/9/19
5 吉田 洋介営業課長 1955/3/4
6 須山 大輔営業員 1963/7/2
数式 説明 (計算結果)
=INT(YEARFRAC(DATE(2004,6,30), VLOOKUP(5,A2:E7,5, FALSE), 1)) ID が 5 である従業員の、2004 年度の年齢を計算します。YEARFRAC 関数を使用して、年度の最終日から生年月日を引き、その結果を INT 関数で整数値にして表示します (49)。
=IF(ISNA(VLOOKUP(5,A2:E7,2,FALSE)) = TRUE, "該当する従業員が見つかりません。", VLOOKUP(5,A2:E7,2,FALSE)) ID が 5 である従業員が登録されている場合はその従業員の姓を表示し、それ以外の場合は "該当する従業員が見つかりません。" というメッセージを表示します (吉田)。

ISNA 関数は、VLOOKUP 関数が #N/A エラー値を返す場合に、TRUE を返します。

=IF(ISNA(VLOOKUP(15,A3:E8,2,FALSE)) = TRUE, "該当する従業員が見つかりません。", VLOOKUP(15,A3:E8,2,FALSE)) ID が 15 である従業員が登録されている場合はその従業員の姓を表示し、登録されていない場合は "該当する従業員が見つかりません。" というメッセージを表示します (該当する従業員が見つかりません)。

ISNA 関数は、VLOOKUP 関数がエラー値 #N/A を返す場合に、TRUE を返します。

=VLOOKUP(4,A2:E7,2,FALSE) & VLOOKUP(4,A2:E7,3,FALSE) & "は" & VLOOKUP(4,A2:E7,4,FALSE) & "です。" ID が 4 である従業員を検索し、3 つのセルの値を連結して 1 つの文を構成します (山田ひろみは営業員です)。

 メモ   上の例の最初の数式では、YEARFRAC 関数を使用しています。この関数が使用できず、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。

表示その方法は?

  1. [ツール] メニューの [アドイン] をクリックします。
  2. [アドイン] の一覧の [分析ツール] チェック ボックスをオンにし、[OK] をクリックします。
  3. 必要に応じて、セットアップ プログラムで表示される手順に従って操作します。
広告