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

2021/10/26

もりの

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

やまの

それなら、MATCH関数を使うといいんよ。

今回のポイント
  • MATCH関数の使い方は「=MATCH(この値は,この中のどこにある?,照合の種類)」
  • INDEX関数と組み合わせて使うことが多い
  • 照合の種類は「-1:以上で近い値」「0:完全一致」「1:以下で近い値」

スポンサーリンク

 MATCH関数の練習ファイルダウンロード

もりの
 
 

一緒にやってみませんか?

【Excel・エクセル】何行(列)目にあるか検索する、MATCH関数

次の表で、テヘペロキャンディーはA列の上から数えて何行目にあるか?

それを調べられるのが、MATCH関数です。

商品名が書かれた表
テヘペロキャンディーは、どーこだ
もりの

ふざけた名前しかねぇな。

ただMATCH関数を単体で使うことはあまりなく、INDEX関数なんかと組み合わせて使うことが多いです。

検索の関数と言えばVLOOKUP関数ですが、それよりも柔軟な検索ができるようになるんですよ。

やまの

そのためにも、MATCH関数の基本を知っておかなきゃね。

というわけで、MATCH関数の使い方を見てみましょう。

ちなみに読み方は、「マッチ関数」です。

【Excel・エクセル】MATCH関数の使い方

MATCH関数の書き方

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

MATCHこの値は、この中の何番目にあるか教えて
検査値この値は
検査範囲この中の
照合の種類0:完全一致、-1:以上、1:以下
もりの

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

やまのののんびりした顔
やまの

後で説明するから。ちなみに照合の種類を省略したら「1」になるよ。

MATCH関数の使用例

ではMATCH関数を使って、モグモググミがA列の何行目にあるか、確認してみましょう。

MATCH関数の練習問題
MATCH関数の練習問題
やまの

=MATCH(E2,A2:A6,0)で、求められるよ。説明するね。

ステップ1

まずは使いたい関数名を書きます。

セルG2に、「=MATCH(」と入力してください。

=MATCH(まで書いた画像
=MATCH(まで書く

ステップ2

最初の引数は「この値は」という、探したい値を指定するものでした。

今回は「モグモググミ」が何行目か調べたいので、「"モグモググミ"」と入力するか、モグモググミと書かれたセルE2をクリックしてください。

検索値を指定した画像
セルをクリックして指定するのが、早い
もりの

MATCH関数はまだ続くから、カンマで区切るのを忘れないでね!

ステップ3

次の引数は「この中の」という、範囲を指定するものでした。

商品名が書かれあるのはセルA2~A6までで、この中からモグモググミを探したいので、セルA2~A6までをドラッグして指定します。

探したい値が入った範囲を選択した画像
探したい値が入った範囲を選択
やまの

次の引数を書くから、カンマを忘れないでね。

ステップ4

最後に照合の種類ですが、文字列の場合は以上も以下もないので、「0」でOKです。

最後にカッコを閉じます。

照合の種類を0にした画像
文字列は0でいいかな

完成!

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

MATCH関数で行数を出した画像
2行目にあるので、MATCH関数は成功!

MATCH関数で何列目かを求める

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

やまの

検査範囲を横方向にするだけなんよ。

先ほどの表で、「販売数」がセルA1~C1の中の何列目かを知りたいときは、次の式で確認できます。

=MATCH(E3,A1:C1,0)

MATCH関数で何列目かを確認する画像 
何列目かもちゃんと分かる

MATCH関数の照合の種類とは?

ここまでMATCH関数の使い方を見てきましたが、最後の引数「照合の種類」ってよく分かりませんね……。

先にまとめると、こんな感じ 

照合の種類探す値
0検査値と全く同じ値
1検査値以下で、一番近い(大きい)値
範囲を昇順で並べ替えする必要あり
-1検査値以上で、一番近い(小さい)値
範囲を降順で並べ替えする必要あり

0は完全一致

今まで使ってきた「0」は、完全一致という意味です。

もりの

完全一致?

つまり検査値が「モグモググミ」なら、「モグモググミ」以外はアウト!
「15」なら、14も16もアウト!ってことですね。

1と-1は近似値

対して、「1」や「-1」は近似値といいます。
例えば照合の種類を「1」にした場合、検査値が「15」なら14も近いからOK~♪となるのです。

「1」は検査値以下で、検査値に一番近い値を探します。
「-1」は検査値以上で、検査値に一番近い値を探します。

もりの

-1が以上……なんだかややこしや~。

そして重要な注意点として、検査範囲を「1」なら昇順、「-1」なら降順に並べ替えないといけません。

やまのの困った顔
やまの

じゃないと、エラーになることがあるんよ。

例えば、次のような式を書いたとします。

価格の中から140以上の最小値を求める式
価格の中から140以上の最小値を求める式
もりの

140以上(セルE4)で一番近い値は、価格(セルB2~B6)の中の何行目?って式だね。

価格の中で、140以上で140に最も近い150なので、答えは5になりそうですが、実際は……

#N/Aエラーになった画像
#N/Aエラーになった
もりの

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

やまの

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

降順で並べ替えたら、答えが出てきた画像
降順で並べ替えたら、答えが出てきた

無事、答えが出てきましたね。

照合の種類が「1」の時は「昇順」「-1」の時は「降順」にすることを、お忘れなく!

チャレンジ!

MATCH関数を使ってセルG5に、80以下で近いのはセルC2~C6の中の何行目にあるか、出してみてください。

もりのの笑った顔
もりの

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

やまの

C列を昇順で並び替えるのを、忘れないでね。

【Excel・エクセル】MATCH関数とINDEX関数を組み合わせて検索する

MATCH関数はINDEX関数と組み合わせると、柔軟な検索ができるようになります。

やまの

書き方は、こんな感じ。

INDEX関数の書き方

=INDEX(配列,MATCH(検査値,検査範囲,照合の種類),列番号)

詳しくは、下記ページでご紹介しています!

MATCH関数でワイルドカードは使える?

「*」や「?」で他の文字に置き換えるワイルドカード。

これ、MATCH関数の検査値にも使えます

もりの

ワイルドカード?

やまの

詳しくは、こっちのページで解説するね。

【Excel・エクセル】MATCH関数ができない?エラーになるときは

もりの

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

やまの

MATCH関数ができないときのチェックポイントを、まとめてみたよ。

検査範囲を並べ替えしていない照合の種類が1なら「昇順」、-1なら「降順」に並べ替えてください
検査範囲に検査値がない選んだ範囲に探している値が入っていません
もりの

並べ替えは忘れそうだから、気を付けなきゃ。

これで、MATCH関数の使い方はバッチリですね!
それでは、お疲れさまでした!

今回のおさらい
  • MATCH関数の使い方は「=MATCH(この値は,この中のどこにある?,照合の種類)」
  • INDEX関数と組み合わせて使うことが多い
  • 照合の種類は「-1:以上で近い値」「0:完全一致」「1:以下で近い値」