vlookupは大変簡単にテーブル間の照合ができますが、残念ながら比較対象の値は1つのみに限られています。
例を挙げると、顧客名簿にある、苗字が「鈴木」で名前が「太郎」の住所を出したいといった複数条件での情報出力ができません。
SQL文でいう "WHERE カラム1 = 条件1文字列 AND カラム2 = 条件2文字列" のような事ができないという感じです。
その為、MATCH関数とINDEX関数を使ってひょうひょい!とできる方法をご紹介。
[完成イメージ]
上で使用する関数は最後に書いていますが、簡単にINDEX関数と、MATCH関数の基本的な説明です。
MATCH関数
- 特定の値を検索し検査範囲内での相対的な位置を返す。
- 位置は検査範囲で指定した範囲内の最も左上に位置するセルが1となります。
- 照合の型で0を指定し検査範囲に、指定値が含まれない場合、エラー値#N/Aが返す。
=MATCH(検索値,検索範囲,0)
INDEX関数
- 範囲の中から、相対的な行位置と列位置を指定して値を取り出す
=INDEX(範囲,行番号,列番号)
vlookupの機能を実現(INDEX関数+MATCH関数)
=INDEX(データの範囲,MATCH(検索値,検索範囲,0),抽出対象の相対的な列番号)
複数キーワード指定で抽出する
範囲1内で検索文字1があり、範囲2で検索文字2がある相対的な行番号を返す
=INDEX(範囲全体,MATCH(1,(検索範囲1=検索範囲1で検索したい値)*(検索範囲2=検索範囲2で検索したい値),0),範囲全体で出力したい相対的な列番号)
#数式を入力後(編集状態で(F2)で CNTRL + SHIFT + ENTER を押す必要あり)
ご参考
- How to VLOOKUP with Multiple Criteria Using INDEX and MATCH in Excel
- VLOOKUP on Two or More Criteria Columns | Excel University(SUMIFSを使ったやり方)
- http://excel-2013.blogspot.jp/2015/05/vlookupdget.html?m=1(dget関数を使うやり方)

「あるある」で学ぶ 忙しい人のためのExcel仕事術 (できるビジネスシリーズ)
- 作者: 植山周志,できるシリーズ編集部
- 出版社/メーカー: インプレス
- 発売日: 2015/04/09
- メディア: Kindle版
- この商品を含むブログを見る