VLOOKUP、INDEX、または MATCH を使って値を検索する

オフィス番号] の一覧があり、各 office の従業員を知る必要があります。しかし、スプレッドシート、大きな] では何をできるか? Lookup 関数を使用します。VLOOKUPHLOOKUP関数は、2 つの最も便利なようにINDEXMATCHします。

注:  以前のバージョンの Excel にあった "ルックアップ ウィザード" 機能は廃止されました。

ここでは、VLOOKUP の使い方を簡単に復習します。

=VLOOKUP(B2,C2:E7,3,TRUE)

最初の引数 (この関数の作業対象データ) は、見つけようとしている値です。これは、セル参照でも、"smith" や 21,000 のような値を直接指定するのでもかまいません。2 番目の引数は、見つけようとしている値が入力されていると思われるセル範囲です。この例では、C2 ~ E7 です。3 番目の引数は、セル範囲内の、表示したい値が入力されている列です。

4 番目の引数は省略できます。「True」または「False」を入力できます。「TRUE」を入力するか、この引数を空白のままにすると、最初の引数で指定した値に最も近いものが関数の結果として返されます。「FALSE」を入力すると、最初の引数で指定した値に一致するものが返されます。つまり、4 番目の引数を空白のままにするか「TRUE」を入力すると、柔軟性が高まります。

この例では、この関数のしくみを説明します。値をセル B2 (最初の引数) に入力すると、VLOOKUP によってセル C2 ~ E7 (2 番目の引数) が検索されて、この範囲内の 3 つ目の列、つまり列 E (3 番目の引数) の値のうち最も近いものが返されます。

VLOOKUP 関数の典型的な使い方

4 番目の引数は空白のため、この関数から返されるのは最も近い値です。そうでない場合は、列 C または D の値の 1 つを入力しなければ結果が何も返されません。

VLOOKUP の使い方を覚えたら、HLOOKUP 関数を使うのは難しくありません。同じ引数を入力しますが、この関数では列ではなく行の値が検索されます。

試してみましょう

検索関数をいろいろと試したい場合、ご自身のデータで試す前に、このページにあるサンプル データを使えます。VLOOKUP と HLOOKUP を好む人もいれば、INDEX と MATCH を組み合わせて使うことを好む人もいます。各方法を試してみて、最も使いやすいものを見つけてください。

VLOOKUP の使用例

次の表のすべてのセルをコピーし、Excel の空のワークシートのセル A1 に貼り付けます。

ヒント    データを Excel に貼り付ける前に、列 A ~ C の幅を 250 ピクセルに設定し、[文字列の折り返し] ([ホーム] タブの [配置]) をクリックします。

濃度

粘度

温度

0.457

3.55

500

0.525

3.25

400

0.606

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 を検索し、列 A で 1 以下の最大値である 0.946 を見つけて、同じ行の列 B の値を返します。

=VLOOKUP(1,A2:C10,2)

'=VLOOKUP(1,A2:C10,3,TRUE)

近似一致を使って、列 A で値 1 を検索し、列 A で 1 以下の最大値である 0.946 を見つけて、同じ行の列 C の値を返します。

=VLOOKUP(1,A2:C10,3,TRUE)

'=VLOOKUP(0.7,A2:C10,3,FALSE)

完全一致を使って、列 A で値 0.7 を検索します。列 A に完全一致がないため、エラーが返されます。

=VLOOKUP(0.7,A2:C10,3,FALSE)

'=VLOOKUP(0.1,A2:C10,2,TRUE)

近似一致を使って、列 A で値 0.1 を検索します。0.1 は列 A の最小値よりも小さいため、エラーが返されます。

=VLOOKUP(0.1,A2:C10,2,TRUE)

'=VLOOKUP(2,A2:C10,2,TRUE)

近似一致を使って、列 A で値 2 を検索し、列 A で 2 以下の最大値である 1.29 を見つけて、同じ行の列 B の値を返します。

=VLOOKUP(2,A2:C10,2,TRUE)

HLOOKUP の使用例

次の表のすべてのセルをコピーし、Excel の空のワークシートのセル A1 に貼り付けます。

ヒント    データを Excel に貼り付ける前に、列 A ~ C の幅を 250 ピクセルに設定し、[文字列の折り返し] ([ホーム] タブの [配置]) をクリックします。

ベアリング

ボルト

4

4

9

5

7

10

6

8

11

数式

説明

結果

'=HLOOKUP("軸", A1:C4, 2, TRUE)

行 1 の "軸" を検索し、同じ列 (列 A) の行 2 の値を返します。

=HLOOKUP("軸",A1:C4,2,TRUE)

'=HLOOKUP("ベアリング", A1:C4, 3, FALSE)

行 1 の "ベアリング" を検索し、同じ列 (列 B) の行 3 の値を返します。

=HLOOKUP("ベアリング",A1:C4,3,FALSE)

'=HLOOKUP("ベ", A1:C4, 3, TRUE)

行 1 の "ベ" を検索し、同じ列の行 3 の値を返します。"ベ" に完全に一致する値が見つからないので、行 1 の中の "ベ" よりも小さい最大値である、列 A の "軸" が使われます。

=HLOOKUP("ベ",A1:C4,3,TRUE)

'=HLOOKUP("ボルト", A1:C4, 4)

行 1 の "ボルト" を検索し、同じ列 (列 C) の行 4 の値を返します。

=HLOOKUP("ボルト",A1:C4,4)

'=HLOOKUP(3, {1,2,3;"a","b","c";"d","e","f"}, 2, TRUE)

3 行の配列定数の中で数値 3 を検索し、同じ列 (ここでは 3 番目) の行 2 から値が返されます。配列定数の中には、値の行が 3 つあり、各行はセミコロン (;) で区切られています。"c" は 2 行目および 3 と同じ列の中にあるので、"c" が返されます。

=HLOOKUP(3,{1,2,3;"a","b","c";"d","e","f"},2,TRUE)

INDEX と MATCH の使用例

この例では、INDEX 関数と MATCH 関数を組み合わせて使い、請求日が最も早い請求書番号とそれに対応する日付を 5 つの市区町村ごとに返します。日付は数値として返されるため、TEXT 関数を使って日付書式にします。INDEX 関数では、実際には MATCH 関数の結果が引数として使われます。INDEX 関数と MATCH 関数の組み合わせは各数式で 2 回使われます。最初に請求書番号を返すために使われ、次に日付を返すために使われます。

次の表のすべてのセルをコピーし、Excel の空のワークシートのセル A1 に貼り付けます。

ヒント    データを Excel に貼り付ける前に、列 A ~ D の幅を 250 ピクセルに設定し、[文字列の折り返し] ([ホーム] タブの [配置]) をクリックします。

請求書

市区町村

請求日

市区町村ごとの請求日が最も早い請求書とその日付

3115

荒川区

12/04/07

="荒川区 = "&INDEX($A$2:$C$33,MATCH("荒川区",$B$2:$B$33,0),1)& "、請求日: " & TEXT(INDEX($A$2:$C$33,MATCH("荒川区",$B$2:$B$33,0),3),"yy/mm/dd")

3137

荒川区

12/04/09

="横浜市 = "&INDEX($A$2:$C$33,MATCH("横浜市",$B$2:$B$33,0),1)& "、請求日: " & TEXT(INDEX($A$2:$C$33,MATCH("横浜市",$B$2:$B$33,0),3),"yy/mm/dd")

3154

荒川区

12/04/11

="船橋市 = "&INDEX($A$2:$C$33,MATCH("船橋市",$B$2:$B$33,0),1)& "、請求日: " & TEXT(INDEX($A$2:$C$33,MATCH("船橋市",$B$2:$B$33,0),3),"yy/mm/dd")

3191

荒川区

12/04/21

="前橋市 = "&INDEX($A$2:$C$33,MATCH("前橋市",$B$2:$B$33,0),1)& "、請求日: " & TEXT(INDEX($A$2:$C$33,MATCH("前橋市",$B$2:$B$33,0),3),"yy/mm/dd")

3293

荒川区

12/04/25

="沼津市 = "&INDEX($A$2:$C$33,MATCH("沼津市",$B$2:$B$33,0),1)& "、請求日: " & TEXT(INDEX($A$2:$C$33,MATCH("沼津市",$B$2:$B$33,0),3),"yy/mm/dd")

3331

荒川区

12/04/27

3350

荒川区

12/04/28

3390

荒川区

12/05/01

3441

荒川区

12/05/02

3517

荒川区

12/05/08

3124

横浜市

12/04/09

3155

横浜市

12/04/11

3177

横浜市

12/04/19

3357

横浜市

12/04/28

3492

横浜市

12/05/06

3316

船橋市

12/04/25

3346

船橋市

12/04/28

3372

船橋市

12/05/01

3414

船橋市

12/05/01

3451

船橋市

12/05/02

3467

船橋市

12/05/02

3474

船橋市

12/05/04

3490

船橋市

12/05/05

3503

船橋市

12/05/08

3151

前橋市

12/04/09

3438

前橋市

12/05/02

3471

前橋市

12/05/04

3160

沼津市

12/04/18

3328

沼津市

12/04/26

3368

沼津市

12/04/29

3420

沼津市

12/05/01

番号 3501

沼津市

12/05/06

検索関数に関するその他の情報

ページの先頭へ

注記: 

  • 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

  • この記事の英語版を参照するには、ここ をクリックしてください。Microsoft コミュニティの他のメンバーと一緒に、Community Translation Framework (CTF) を使ったこの記事の改善にご協力ください。記事内の文章にマウス ポインターを合わせて、CTF ウィジェットの [翻訳を改善します] をクリックしてください。CTF の詳細については、ここ をクリックしてください。CTF を使用すると弊社の サービス利用規約 に同意したことになります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×