VLOOKUP関数は、検索対象の右側に抽出データが並ぶ表でなければ抽出できないため左側に抽出データがある場合は表の右側に抽出データを作成しなければならない。INDEX+MATCH関数を使えば、表をそのままにして抽出できる。
目的
指定の検索/抽出範囲から抽出

目次
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
例題1|抽出範囲から抽出する

- 「氏名」を求めるセル(B2セル)を選択し、「=INDEX(」と入力する。
- [参照]…抽出する「氏名」のセル範囲を選択する。
- [行番号]…MATCH関数で検索値のセルが表の「電話番号」の何番目にあるかを求める数式を入力する。
- [列番号]…省略して、「Enter」キーで数式を確定する。

数式の解説
「MATCH(A2,C5:C7,0)」の数式は、B1セルの「080-****-0003」が表の「電話番号」の何番目にあるかを求める。求めた番目をINDEX関数の引数の[行番号]に使い「=INDEX(B5:B7,MATCH(A2,C5:C7,0))」の数式を作成すると、その番目と同じ行にあるB5~B7セルの範囲の「堀川千里」が抽出される。
Excelデータダウンロード
練習用Excelファイル(無料ダウンロード)
「数式の解説」の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
応用1|

上記の手順ではINDEX+MATCH関数の数式を解説しているが、検索範囲と抽出範囲が別々に設定できるVLOOKUP関数でも可能。ただし、引数の[検査範囲]に指定する範囲のデータは、以下のように文字コードの昇順に並べ替えたデータでなければ正しく抽出できない。したがって、五十音順に並べられた名前などからは正しく抽出できないので注意が必要。
❶[担当者]を求めるセル(B2セル)を選択し、「=LOOKUP(」と入力する。
❷[検査値]…検索する「会員ID」のセルを選択する。
❸[検査範囲]…検索する「会員ID」のセル範囲を選択する。
❹[対応範囲]…抽出する「氏名」のセル範囲を選択して、「Enter」キーで数式を確定する。
Excelデータダウンロード
練習用Excelファイル(無料ダウンロード)
「応用1」の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
