サイトについて      連絡先   検索

エクセル 2013 INDEX と MATCH 関数を組み合わせて VLOOKUP 関数より高度に検索する

はじめに

エクセル 2013 の INDEX と MATCH 関数を組み合わせて VLOOKUP 関数より高度に検索する方法を紹介します。

VLOOKUP 関数は左端の列からしか検索できません。それを好きな列から検索できるようになります。

表の行と列の見出しを検索して値を取得する方法も紹介します。

  • 目次
    • VLOOKUP 関数より高度に検索する
    • 表の見出しを検索する

VLOOKUP 関数より高度に検索する

INDEX 関数」の引数「行番号」に「MATCH 関数」を組み合わせて、好きな列から検索できます。

=INDEX(対象範囲, MATCH(検索値, 検索範囲, 0), 列番号)
1

それぞれの引数に何を指定するか 1 つずつ紹介します。

引数「対象範囲」

取得したいデータが入ったセルの範囲を指定します。「No.」から「個数」を切り替えて取得したいならB3:E5を入力します。「No.」だけならB3:B5を入力します。

引数「検索値」

「名前」から「No.」を取得したいなら、その検索したい「名前」が入っているセルを指定します。セル「B8」に入っているならB8を入力します。

引数「検索範囲」

検索する列を指定します。「名前」のデータが C 列に入っているならC3:C5を入力します。「バージョン」で検索するならD3:D5を入力します。

引数「列番号」

引数「対象範囲」の何列目のデータを取得するか指定します。B3:E5と入力したとき、「No.」は 1 列目なので1を入力します。個数なら 4 列目なので4を入力します。

使用例

「名前」から「No.」を取得します。

=INDEX($B$3:$E$5,MATCH(B8,$C$3:$C$5,0),1)
1

「バージョン」から「名前」を取得します。

=INDEX($B$3:$E$5,MATCH(B8,$D$3:$D$5,0),2)
2

表の見出しを検索する

次のような表の見出しを検索して値を取得する方法を 2 つ紹介します。

5

INDEX と MATCH 関数を組み合わせる

行見出しと列見出しを検索条件にして一致するデータを取得します。

=INDEX($C$3:$E$5,MATCH(B8,$B$3:$B$5,0),MATCH(C8,$C$2:$E$2,0))
3

INDEX 関数」の引数「行番号」と引数「列番号」を「MATCH 関数」で取得しています。

それぞれの「MATCH 関数」の引数「検索範囲」には、見出しの範囲を指定します。行見出しならB3:B5、列見出しならC2:E2を入力します。

VLOOKUP と MATCH 関数を組み合わせる

行見出しと列見出しを検索条件にして一致するデータを取得します。

=VLOOKUP(B8,$B$3:$E$5,MATCH(C8,$B$2:$E$2,0),FALSE)
4

VLOOKUP 関数」の引数「列番号」を「MATCH 関数」で取得しています。

MATCH 関数」の引数「検索範囲」には列見出しの範囲B2:E2を指定します。行見出しの B 列も範囲に含める必要があります。

  • 目次
    • VLOOKUP 関数より高度に検索する
    • 表の見出しを検索する