【Excel・エクセル】MATCH関数の使い方!照合の種類とは?

この単語が、この列の何行目にあるか知りたいんだ。

それなら、MATCH関数を使うといいんよ。
- MATCH関数の使い方は「=MATCH(この値は,この中のどこにある?,照合の種類)」
- INDEX関数と組み合わせて使うことが多い
- 照合の種類は「-1:以上で近い値」「0:完全一致」「1:以下で近い値」
MATCH関数の練習ファイルダウンロード

一緒にやってみませんか?
【Excel・エクセル】何行(列)目にあるか検索する、MATCH関数
次の表で、テヘペロキャンディーはA列の上から数えて何行目にあるか?
それを調べられるのが、MATCH関数です。
もちろん、何行目にあるかも調べられますよ。


ふざけた名前しかねぇな。
ただMATCH関数を単体で使うことはあまりなく、INDEX関数なんかと組み合わせて使うことが多いです。
検索の関数と言えばVLOOKUP関数ですが、それよりも柔軟な検索ができるようになるんですよ。

そのためにも、MATCH関数の基本を知っておかなきゃね。
というわけで、MATCH関数の使い方を見てみましょう。
ちなみに読み方は、「マッチ関数」です。
パッと見難しそうな関数ですが、分かりやすく1ステップごと図解していくのでご安心を!
【Excel・エクセル】MATCH関数の使い方
=MATCH(検査値,検査範囲,照合の種類)
MATCH | この値は、この中の何番目にあるか教えて |
検査値 | この値は |
検査範囲 | この中の |
照合の種類 | 0:完全一致、-1:以上、1:以下 |

照合の種類の意味が、よく分かりません!

後で説明するから。ちなみに照合の種類を省略したら「1」になるよ。
MATCH関数の使用例
ではMATCH関数を使って、モグモググミがA列の何行目にあるか、確認してみましょう。


=MATCH(E2,A2:A6,0)で、求められるよ。説明するね。
ステップ1
まずは使いたい関数名を書きます。
セルG2に、「=MATCH(」と入力してください。

ステップ2
最初の引数は「この値は」という、探したい値を指定するものでした。
今回は「モグモググミ」が何行目か調べたいので、「"モグモググミ"」と入力するか、モグモググミと書かれたセルE2をクリックしてください。


文字列にするなら、「"(ダブルクォーテーション)」で囲むんよ。

MATCH関数はまだ続くから、カンマで区切るのを忘れないでね!
ステップ3
次の引数は「この中の」という、範囲を指定するものでした。
商品名が書いてあるのはセルA2~A6までで、この中からモグモググミを探したいので、セルA2~A6までをドラッグして指定します。


次の引数を書くから、カンマを忘れないでね。
ステップ4
最後に照合の種類ですが、文字列の場合は以上も以下もないので、「0」でOKです。
最後にカッコを閉じます。

完成!
エンターキーで確定すると、無事、範囲内で何行目かが分かりましたね!

MATCH関数で何列目かを求める
MATCH関数は何行目だけでなく、何列目かも分かります。

検査範囲を横方向にするだけなんよ。
先ほどの表で、「販売数」がセルA1~C1の中の何列目かを知りたいときは、次の式で確認できます。
=MATCH(E3,A1:C1,0)

MATCH関数の照合の種類とは?
ここまでMATCH関数の使い方を見てきましたが、最後の引数「照合の種類」ってよく分かりませんね……。
先にまとめると、こんな感じ
照合の種類 | 探す値 |
---|---|
0 | 検査値と全く同じ値 |
1 | 検査値以下で、一番近い(大きい)値 範囲を昇順で並べ替えする必要あり |
-1 | 検査値以上で、一番近い(小さい)値 範囲を降順で並べ替えする必要あり |
0は完全一致
今まで使ってきた「0」は、完全一致という意味です。

完全一致?
つまり検査値が「モグモググミ」なら、「モグモググミ」以外はアウト!
「15」なら、14も16もアウト!ってことですね。
1と-1は近似値
対して、「1」や「-1」は近似値といいます。
例えば照合の種類を「1」にした場合、検査値が「15」なら14も近いからOK~♪となるのです。
「1」は検査値以下で、検査値に一番近い値を探します。
「-1」は検査値以上で、検査値に一番近い値を探します。

-1が以上……なんだかややこしや~。
そして重要な注意点として、検査範囲を「1」なら昇順、「-1」なら降順に並べ替えないといけません。

じゃないと、エラーになることがあるんよ。
例えば、次のような式を書いたとします。


140以上(セルE4)で一番近い値は、価格(セルB2~B6)の中の何行目?って式だね。
価格の中で、140以上で140に最も近い150なので、答えは5になりそうですが、実際は……


むぅ……、エラーになったぞよ。

検査範囲のB列で、降順に並べ替えてみるよ。

無事、答えが出てきましたね。
照合の種類が「1」の時は「昇順」、「-1」の時は「降順」にすることを、お忘れなく!
MATCH関数を使ってセルG5に、80以下で近いのはセルC2~C6の中の何行目にあるか、出してみてください。

正解は、=MATCH(E5,C2:C6,1)だね!

C列を昇順で並び替えるのを、忘れないでね。
【Excel・エクセル】MATCH関数とINDEX関数を組み合わせて検索する
MATCH関数はINDEX関数と組み合わせると、柔軟な検索ができるようになります。

書き方は、こんな感じ。
=INDEX(配列,MATCH(検査値,検査範囲,照合の種類),列番号)
詳しくは、下記ページでご紹介しています!
MATCH関数でワイルドカードは使える?
「*」や「?」で他の文字に置き換えるワイルドカード。
これ、MATCH関数の検査値にも使えます。

ワイルドカード?
例えば「何とかグミ」のように、最後にグミが付くもの!という検索値もできるんです。


詳しくは、こっちのページで解説するね。
【Excel・エクセル】MATCH関数ができない?エラーになるときは

あれ、#N/Aってエラーになったよ?

MATCH関数ができないときのチェックポイントを、まとめてみたよ。
検査範囲を並べ替えしていない | 照合の種類が1なら「昇順」、-1なら「降順」に並べ替えてください |
検査範囲に検査値がない | 選んだ範囲に探している値が入っていません |

並べ替えは忘れそうだから、気を付けなきゃ。
これで、MATCH関数の使い方はバッチリですね!
それでは、お疲れさまでした!
- MATCH関数の使い方は「=MATCH(この値は,この中のどこにある?,照合の種類)」
- INDEX関数と組み合わせて使うことが多い
- 照合の種類は「-1:以上で近い値」「0:完全一致」「1:以下で近い値」
ディスカッション
コメント一覧
まだ、コメントがありません