Excelで特定のデータを探す際、多くの人はVLOOKUP
関数を思い浮かべるでしょう。しかし、「探したいデータが、リストの上から何番目にあるか?」という**位置情報(行番号)**だけを知りたい場合、VLOOKUP
は不向きです。
そんな時に活躍するのがMATCH
(マッチ)関数です。MATCH
関数は、指定した範囲内で検査値がどの位置にあるかを数値で返してくれます。この関数は、後述するINDEX
関数と組み合わせることで、VLOOKUP
を超える強力な検索ツールとなります。
今回は、その第一歩としてMATCH
関数の基本的な使い方をマスターしましょう。
今回のゴール:指定した物品名がリストの何行目にあるか調べる
以下の「物品リスト」の中から、B2セルで指定した「ぶどう」という物品名が、リスト(E3:E7の範囲)の中で何番目にあるかを検索し、B3セルにその位置を表示させることが目標です。
サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。
Excel-g726-1.xlsx (ダウンロード)
操作を試すために、以下のサンプルデータをExcelシートにコピーしてください。
A | B | C | D | E | F | |
1 | 位置検索 | 物品リスト | ||||
2 | 物品名 | ぶどう | 物品番号 | 物品名 | 価格 | |
3 | 位置 | (ここに数式を入力) | 行目 | B101 | 桃 | ¥700 |
4 | B102 | メロン | ¥1,050 | |||
5 | B103 | ぶどう | ¥800 | |||
6 | E101 | 人参 | ¥200 | |||
7 | E102 | かぼちゃ | ¥330 |
解決策:MATCH関数の使い方
セルB3に、以下の数式を入力します。
Excel
=MATCH(B2, E3:E7, 0)
これを入力すると、「3」という結果が返されます。これは、「ぶどう」が検査範囲
E3:E7
の中で3番目にあることを示しています 1。
数式の解説
MATCH
関数の構文は3つの引数で構成されています。
MATCH(検査値,検査範囲,照合の型)
- 検査値 (lookup_value):
B2
22- 探したい値が入っているセルを指定します 3。今回の例では、B2セルの「ぶどう」です。
- 検査範囲 (lookup_array):
E3:E7
44- 検査値を探す対象となるセル範囲(1行または1列)を指定します 5。今回は物品名が並んでいる
E3:E7
の範囲です。
- 検査値を探す対象となるセル範囲(1行または1列)を指定します 5。今回は物品名が並んでいる
- 照合の型 (match_type):
0
6- 検索の方法を指定します。以下の3種類がありますが、基本的には「0」の完全一致を使うと覚えておけば問題ありません。
1
または省略:検査値以下の最大値を探します(検査範囲は昇順に並んでいる必要あり)。0
:検査値と完全に一致する値を探します。-1
:検査値以上の最小値を探します(検査範囲は降順に並んでいる必要あり)。
- 検索の方法を指定します。以下の3種類がありますが、基本的には「0」の完全一致を使うと覚えておけば問題ありません。
この数式は、「B2
の値(ぶどう)と完全に一致するものが、E3:E7
の範囲の上から何番目にありますか?」という命令を実行しています。範囲の先頭であるE3セルを1番目として数え、E5セルにある「ぶどう」は3番目なので、結果として「3」が返されるのです。
まとめ(INDEX関数との組み合わせに向けて)
MATCH
関数単体では「位置がわかるだけ?」と思うかもしれません。しかし、この「位置を特定する能力」こそがMATCH
関数の最大の強みです。
次回解説するINDEX関数(指定した範囲の〇行目・〇列目の値を取り出す関数)と組み合わせることで、
「MATCHで”ぶどう”の行番号(3)を探し、INDEXでその3行目に対応する価格(¥800)や物品番号(B103)を取り出す」
といった、VLOOKUPでは難しい左右を問わない柔軟な検索が可能になります。
まずはこのMATCH
関数で、データの位置を正確に捉える感覚を掴んでおきましょう。
コメント