MATCH関数の使い方としくみ|草野球成績管理表で選手名から行番号を特定する例で解説

関数の使い方

指定した値が範囲の中で「何番目にあるか」を調べるMATCH関数について、使い方と内部のしくみを解説します。草野球の成績管理表で、選手名から行番号を特定する場面を例に、初心者向けに丁寧に説明します。

MATCH関数とは

📝 MATCH関数の役割(一言でいうと)

検索範囲の中から指定した値を探し、その値が「範囲の先頭から数えて何番目にあるか」を数字で返す関数です。値そのものではなく「位置(順番)」を返す点が、VLOOKUPなどとの大きな違いです。

基本の書式はこうです。

=MATCH(検索値, 検索範囲, 照合の種類)

「照合の種類」には主に「0」を指定します。これは「検索値と完全に一致するものだけを探す」という意味で、選手名のような文字列を検索する場合はほぼ必ず0を使うと考えて問題ありません。

成績管理表での実例:選手名から行番号を特定する

大阪グーニーズでは、選手の背番号や守備位置をまとめた「選手マスタ」シートを用意しています。A列に選手名、B列に背番号、C列に守備位置が入っているとします。

選手名(A列) 背番号(B列) 守備位置(C列)
2 SUZUKI 7 中堅手
3 NAKATA 3 一塁手
4 YAMAMOTO 5 左翼手

「YAMAMOTO」という選手が、選手名の並び(A2:A20)の中で何番目に入力されているかを調べたいとき、式はこうなります。

✅ 選手名の位置を求める式
=MATCH("YAMAMOTO", A2:A20, 0)

この式は「3」という数字を返します。これは「A2:A20という範囲の中で、先頭(A2)から数えて3番目にYAMAMOTOがある」という意味です。シート上の実際の行番号(4行目)とは数字がズレる点に、後ほど触れます。

STEP 1
検索したい選手名を入力するセルを用意する

「YAMAMOTO」のように、探したい選手名を直接入力するか、別セルに入力しておいてそのセルを参照する形にします。

STEP 2
「=MATCH(」と入力し、検索値と検索範囲を指定する

検索値(探したい選手名)を指定したあと、カンマで区切って検索範囲(A2:A20など)をドラッグで選択します。

STEP 3
照合の種類として「0」を入力し、「)」で閉じてEnterキーで確定する

「0」を指定することで、完全に一致する選手名だけを探す設定になります。式を確定すると、範囲内での位置が数値で表示されます。

しくみを理解する:MATCHは何をしているのか

📝 MATCHの内部動作

MATCH関数は、指定した検索範囲を先頭から1セルずつ順番に見ていき、検索値と一致するセルが見つかった時点で、その「範囲内での順番」を数値として返しています。値そのものを取り出す関数ではなく、あくまで「位置を数える」関数だという点がポイントです。

  • 返り値は「範囲内の相対位置」であり、シート上の絶対的な行番号ではない(A2から始まる範囲なら、1番目の答えはシートの2行目を指す)
  • 照合の種類が「0」なら完全一致のみを探し、最初に見つかった位置で処理を終える
  • 照合の種類が「1」(既定値)の場合は昇順ソート済みの範囲から近似一致を探す動きになり、文字列の検索には不向き

よくあるミス:狙った選手が見つからない・違う結果が返る原因

⚠️ 原因1:3番目の引数(照合の種類)を省略している

「0」を書き忘れると、既定値の「1」(近似一致)として処理されます。選手名のような文字列の検索では意図しない結果や#N/Aエラーにつながりやすいため、完全一致で探したいときは必ず「0」を明記してください。

⚠️ 原因2:返ってきた数字を「シートの行番号」だと思い込んでいる

検索範囲がA2から始まっている場合、MATCHが返す「3」は範囲内での3番目という意味であり、実際のシートでは4行目を指します。この数字をそのまま別の処理に使うと1行分ズレてしまうことがあるため、範囲の開始行を意識しておく必要があります。

✅ この記事のまとめ
  • MATCH関数は「検索値が範囲内の何番目にあるか」を返す関数
  • 返ってくるのは値ではなく「範囲内の相対的な位置」であり、シートの行番号とは異なる場合がある
  • 選手名などの文字列を検索するときは、照合の種類に必ず「0」(完全一致)を指定する

次回予告

次回のテーマは「INDEX+MATCH」です。今回のMATCHと前回のINDEXを組み合わせることで、VLOOKUPが抱える「検索する列は必ず範囲の左端」という制約を回避する方法を解説していきます。

▶︎ 次回:INDEX+MATCHの使い方としくみ

コメント

タイトルとURLをコピーしました