g726|【Excel】VLOOKUPの弱点を克服!MATCH関数でデータの「位置」を正確に特定する方法

Excelで特定のデータを探す際、多くの人はVLOOKUP関数を思い浮かべるでしょう。しかし、「探したいデータが、リストの上から何番目にあるか?」という**位置情報(行番号)**だけを知りたい場合、VLOOKUPは不向きです。

そんな時に活躍するのがMATCH(マッチ)関数です。MATCH関数は、指定した範囲内で検査値がどの位置にあるかを数値で返してくれます。この関数は、後述するINDEX関数と組み合わせることで、VLOOKUPを超える強力な検索ツールとなります。

今回は、その第一歩としてMATCH関数の基本的な使い方をマスターしましょう。

目次

今回のゴール:指定した物品名がリストの何行目にあるか調べる

以下の「物品リスト」の中から、B2セルで指定した「ぶどう」という物品名が、リスト(E3:E7の範囲)の中で何番目にあるかを検索し、B3セルにその位置を表示させることが目標です。

サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。

Excel-g726-1.xlsx (ダウンロード)

操作を試すために、以下のサンプルデータをExcelシートにコピーしてください。

ABCDEF
1位置検索物品リスト
2物品名ぶどう物品番号物品名価格
3位置(ここに数式を入力)行目B101¥700
4B102メロン¥1,050
5B103ぶどう¥800
6E101人参¥200
7E102かぼちゃ¥330

解決策:MATCH関数の使い方

セルB3に、以下の数式を入力します。

Excel

=MATCH(B2, E3:E7, 0)

これを入力すると、「3」という結果が返されます。これは、「ぶどう」が検査範囲

E3:E7の中で3番目にあることを示しています 1

数式の解説

MATCH関数の構文は3つの引数で構成されています。

MATCH(検査値,検査範囲,照合の型)

  1. 検査値 (lookup_value): B222
    • 探したい値が入っているセルを指定します 3。今回の例では、B2セルの「ぶどう」です。
  2. 検査範囲 (lookup_array): E3:E744
    • 検査値を探す対象となるセル範囲(1行または1列)を指定します 5。今回は物品名が並んでいるE3:E7の範囲です。
  3. 照合の型 (match_type): 06
    • 検索の方法を指定します。以下の3種類がありますが、基本的には「0」の完全一致を使うと覚えておけば問題ありません。
      • 1 または省略:検査値以下の最大値を探します(検査範囲は昇順に並んでいる必要あり)。
      • 0:検査値と完全に一致する値を探します。
      • -1:検査値以上の最小値を探します(検査範囲は降順に並んでいる必要あり)。

この数式は、「B2の値(ぶどう)と完全に一致するものが、E3:E7の範囲の上から何番目にありますか?」という命令を実行しています。範囲の先頭であるE3セルを1番目として数え、E5セルにある「ぶどう」は3番目なので、結果として「3」が返されるのです。

まとめ(INDEX関数との組み合わせに向けて)

MATCH関数単体では「位置がわかるだけ?」と思うかもしれません。しかし、この「位置を特定する能力」こそがMATCH関数の最大の強みです。

次回解説するINDEX関数(指定した範囲の〇行目・〇列目の値を取り出す関数)と組み合わせることで、

「MATCHで”ぶどう”の行番号(3)を探し、INDEXでその3行目に対応する価格(¥800)や物品番号(B103)を取り出す」

といった、VLOOKUPでは難しい左右を問わない柔軟な検索が可能になります。

まずはこのMATCH関数で、データの位置を正確に捉える感覚を掴んでおきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次