ExcelのINDEX関数とMATCH関数の使い方|VLOOKUPより便利な検索方法

Excelでデータ検索を行うとき、多くの人がまず思い浮かべるのが VLOOKUP関数です。
しかし、Excelをより深く使うようになると、多くの実務ユーザーが INDEX関数 + MATCH関数の組み合わせを使うようになります。

なぜなら、この方法はVLOOKUPよりも 柔軟で強力な検索ができるからです。

例えば次のような場面です。

  • 列の順序に依存しない検索をしたい

  • 左方向の検索をしたい

  • 検索範囲を柔軟に変更したい

  • 大量データでも高速に検索したい

  • 行と列の両方から検索したい

VLOOKUPだけでは対応できないケースでも、INDEXとMATCHを組み合わせることで解決できることが多いです。

この記事では、Excelの INDEX関数とMATCH関数の基本から実践までを丁寧に解説します。

具体的には次の内容を扱います。

  • INDEX関数の基本

  • MATCH関数の基本

  • INDEX + MATCHの組み合わせ

  • VLOOKUPとの違い

  • 左検索の方法

  • 行列の二次元検索

  • 実務でよく使う応用パターン

  • よくあるエラーの原因

Excel初心者でも理解できるよう、サンプル付きで詳しく説明していきます。


INDEX関数とは

INDEX関数は、指定した位置にある値を返す関数です。

つまり、行番号と列番号を指定して値を取得する関数です。

INDEX関数の基本構文

INDEX(範囲, 行番号, 列番号)

引数の意味

引数 説明
範囲 データ範囲
行番号 何行目か
列番号 何列目か

INDEX関数の簡単な例

例えば次の表があります。

ID 名前 部署
1 田中 営業
2 佐藤 総務
3 鈴木 開発

この表が A2:C4 にあるとします。

INDEXで値を取得

=INDEX(A2:C4,2,2)

結果

佐藤

理由

  • 範囲 → A2:C4

  • 行番号 → 2

  • 列番号 → 2

つまり

B3

の値になります。


MATCH関数とは

MATCH関数は、指定した値が範囲の何番目にあるかを返す関数です。

つまり、位置を探す関数です。


MATCH関数の基本構文

MATCH(検索値, 検索範囲, 照合方法)

引数

引数 説明
検索値 探したい値
検索範囲 探す範囲
照合方法 検索方法

照合方法の意味

意味
0 完全一致
1 以下最大
-1 以上最小

実務では 0(完全一致) を使うことがほとんどです。


MATCH関数の例

例えば次のデータがあります。

名前
田中
佐藤
鈴木

範囲は

B2:B4

MATCH

=MATCH("佐藤",B2:B4,0)

結果

2

理由

佐藤は 2番目 にあるからです。


INDEXとMATCHを組み合わせる理由

ここで重要なのが

MATCHは位置を探す
INDEXは値を取得する

という点です。

つまり

MATCH → 行番号を取得
INDEX → その行の値を取得

これを組み合わせると、柔軟な検索が可能になります。


INDEX + MATCHの基本

例えば次の表を使います。

ID 名前 部署
1 田中 営業
2 佐藤 総務
3 鈴木 開発

目的

名前から部署を取得

数式

=INDEX(C2:C4, MATCH("佐藤",B2:B4,0))

処理の流れ

① MATCH

MATCH("佐藤",B2:B4,0)

結果

2

② INDEX

INDEX(C2:C4,2)

結果

総務

VLOOKUPとの違い

INDEX + MATCHが優れている理由を整理します。


VLOOKUPの構文

VLOOKUP(検索値, 範囲, 列番号, FALSE)

VLOOKUPの問題点

1 左検索できない

例えば

部署 名前
営業 田中
総務 佐藤

部署から名前を探す場合

VLOOKUP → できない

2 列番号に依存

VLOOKUP(A1,A1:D100,3,FALSE)

列を追加すると壊れることがあります。


3 範囲が固定

柔軟な検索が難しいです。


INDEX + MATCHのメリット

特徴 INDEX + MATCH
左検索 可能
列追加 壊れない
柔軟性 高い
高速 大量データで有利

左方向検索(VLOOKUPではできない)

例えば

部署 名前
営業 田中
総務 佐藤
開発 鈴木

部署 → 名前


数式

=INDEX(B2:B4, MATCH("総務",A2:A4,0))

結果

佐藤

これは VLOOKUPではできない検索です。


行と列の二次元検索

INDEX + MATCHは 二次元検索もできます。

例えば

1月 2月 3月
東京 100 120 130
大阪 90 110 125
名古屋 80 100 120

目的

大阪の2月売上

数式

=INDEX(B2:D4,
MATCH("大阪",A2:A4,0),
MATCH("2月",B1:D1,0))

結果

110

INDEX + MATCH + MATCH(2軸検索)

この方法は

行 → MATCH
列 → MATCH

で検索できます。

非常に実務で使われます。

Si quieres conocer otros artículos parecidos a ExcelのINDEX関数とMATCH関数の使い方|VLOOKUPより便利な検索方法 puedes visitar la categoría Sisutemuunyo.

Go up