検索列の左にあるデータを取り出す方法|INDEX+MATCHの使い方

検索列の左にあるデータを取り出す方法|INDEX+MATCHの使い方

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

目的

指定の検索/抽出範囲から抽出

使用する関数
目次

まず動かしてみよう|この記事のサンプルをその場で試せます

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

例題1|抽出範囲から抽出する

  1. 「氏名」を求めるセル(B2セル)を選択し、「=INDEX(」と入力する。
  2. [参照]…抽出する「氏名」のセル範囲を選択する。
  3. [行番号]…MATCH関数で検索値のセルが表の「電話番号」の何番目にあるかを求める数式を入力する。
  4. [列番号]…省略して、「Enter」キーで数式を確定する。
B2に入力:電話番号から、左の列の氏名を取り出す
数式=INDEX(B5:B7,MATCH(A2, C5:C7, 0))
ひとことで電話番号(A2)から、左にある氏名を返す
B5:B7
取り出したい列(氏名)です
MATCH(A2, C5:C7, 0)
電話番号が、電話番号の列の何番目かを返します(3)
補足結果は「堀川千里」です。電話番号の「*」は、ワイルドカードとして扱われます。
使用するExcel関数
検索列の左にあるデータを取り出す(INDEXとMATCH)式 =INDEX(B5:B7,MATCH(A2,C5:C7,0)) の解説図。B2に入力する
B2に =INDEX(B5:B7,MATCH(A2,C5:C7,0)) を入力。C5:C7 で 080-****-0003 は 3番目 B5:B7 の3番目 → 堀川千里

数式の解説

「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)/登録不要/数式・練習データ入り
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次