検索値の位置を調べる!MATCH関数の使い方とは?

スポンサーリンク
タイトル

この記事では指定したデータが何行目や何列目にあるかを調べることができるMATCH関数について解説します。

大量のデータを使用した表を使っている場合、目的のデータがどこにあるかを返すこの関数は様々なシーンで使い道があります。

また、INDEX関数とネストさせて(組み合わせて)使用する事で、VLOOKUP関数と同じような使い方をすることもできます。

MATCH関数は、=MATCH(検査値,検査範囲,[照合の種類])と3つの引数を指定することで使用する事ができます。3つ目の引数の照合の種類は省略できますが、省略した場合「1」と入力したのと同じ「以下」という判定になってしまうので、通常は「0」と入力をし「完全一致」にして使用します。

引数が3つとやや多いのと、「照合の種類」というところが分かりにくい関数ですので、1つの引数ずつ分かりやすく解説したいと思います。

この記事を読むと分かること
  • MATCH関数の使い方について
  • 照合の種類について
  • ワイルドカード(あいまい検索)のやり方について
  • エラーが出た時の対処法について

↓INDEX、MATCHの使い方についてはこちら↓
VLOOKUP関数の代わりに?INDEX関数とMATCH関数の使い方【代替関数】
↓VLOOKUP関数についての記事はこちら↓
最強の便利関数?VLOOKUP関数の使い方とは


スポンサーリンク

1.MATCH関数の指定方法とは?

それでは実際にMATCH関数の使い方を分かりやすく解説します。

MATCH関数は、

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

という3つの引数(ひきすう)を指定することで使用する事ができます。

3つ目の引数「照合の種類」は省略することができますが、省略することで自動的に「1」が指定されます。
詳しくは照合の種類のセクションで解説します。

1-1.検査値の指定方法

1つ目の引数は検査値」です。

検査値には、検索したい数値やセルを指定します。

検索値の3つの指定方法

①そのまま数値を打ち込む⇒「数値」
②”(ダブルクォーテーション)で囲んだ文字⇒「文字列」
③検索したい値が入ったセルを指定

また、記事の後半で詳しく解説しますが、検査値には*(アスタリスク)や?(クエスチョン)を使うことであいまい検索をすることができます。

1-2.検査範囲の指定方法

2つ目の引数は「検査範囲」です。

検査範囲には、検査値を検索したい範囲を指定します。

列でも行でも指定することができますが、複数の列と行にまたがって指定することはできません

1-3.照合の種類の指定方法

3つ目の引数は「照合の種類」です。

照合の種類には「1」「0」「-1」の3つを指定することができます。

照合の種類のそれぞれの入力方法

「1」⇒検査値以下の最大値を検索します。検査範囲を昇順に並べておかないと正しい結果が出ないことがあります。(省略時には「1」が指定されます)
「0」⇒検査値と完全一致する最初の値を検索します。(推奨)
「-1」⇒検査値以上の最小値を検索します。検査範囲を降順に並べておかないと正しい結果が出ないことがあります。

特に理由がない場合は、「0」の完全一致を使用する事をおすすめします。

2.MATCH関数の使い方とは?

ここまでMATCH関数の3つの引数の指定方法を解説してきました。

ここからは、実際にMATCH関数を使用しながら使い方を解説します。

Table_1
表1

今回は上記の表を用意しました。

右側の◯行目と◯列目の部分にMATCH関数を使って、「みかん」が何行目にあるかと「産地」が何列目にあるかを検索してみたいと思います。

2-1.MATCH関数の行方向での検索方法

最初にMATCH関数を使って「みかん」が何行目にあるかを行方向で検索します。

Table_2
表2

計算式は、

=MATCH(“みかん”,A2:A6,0)

となります。

1つずつ解説すると、

1つ目の引数の検査値は文字列の「みかん」を検索したいので、”(ダブルクォーテーション)で囲み「”みかん”」と入力します。

2つ目の引数の検査範囲は行番号を検索したいので、商品名が並んでいるA列のA2セルからA6セルまでを指定します。

3つ目の引数の照合の種類は、完全一致の「0」を入力します。

Table_3
表3

計算式を確定させると、「みかん」が入力されている3行目の「3」が結果として表示されました。

2-2.MATCH関数の列方向での検索方法

次にMATCH関数を使って「産地」が何列目にあるか列方向で検索します。

Table_4
表4

今度は、検査値にセルを指定してみます。

計算式は、

=MATCH(E3,A1:C1,0)

となります。

1つずつ解説すると、

1つ目の引数の検査値には「産地」と文字列が入力されたE3セルを指定します。(セルを指定する時は”(ダブルクォーテーション)は不要です)

2つ目の引数の検査範囲は列番号を検索したいので、表題が並んでいる1行目のA1セルからC1セルまでを指定します。

3つ目の引数の照合の種類は、完全一致の「0」を入力します。

Table_5
表5

計算式を確定させると、「産地」が入力されている2列目の「2」が結果として表示されました。

3.MATCH関数の応用方法とは?

MATCH関数の応用方法として、検査値にワイルドカードを使い「特定の文字を含む」や「特定の文字から始まる」などのあいまい検索をすること複数条件の指定INDEX関数と組み合わせることで、VLOOKUP関数のような使い方をすることができます。

それぞれの応用方法を解説していきます。

3-1.MATCH関数とワイルドカードを使ったあいまい検索

MATCH関数では、検査値に*(アスタリスク)や?(クエスチョンマーク)を使用することで、条件に「特定の文字を含む」や「特定の文字から始まる」などの指定をすることができます。

ワイルドカードを使用する場合は、3つ目の引数の照合の種類を「0」に指定してください。

3-1-1.特定の文字を含む条件設定の使い方

検査値の条件を「特定の文字を含む」に指定したい場合、*(アスタリスク)を使います。

例えば、「も」が含まれる文字列を検査値に指定してみましょう。

Table_6
表6

「特定の文字を含む」ことを条件に指定する場合、検査値は”(ダブルクォーテーション)と*(アスタリスク)で囲んで指定し、「“*特定の文字*”」と入力します。

今回は「も」を含むことを条件にしたいので、検査値に「“*も*”」と入力します。

商品名で「も」が含まれるものは6行目の「すもも」なので、「6」が結果として表示されます。

3-1-2.特定の文字から始まる条件設定の使い方

次に検査値の条件を「特定の文字から始まる」に指定してみます。

この場合も、*(アスタリスク)を使用します。

今回は「い」から始まる文字列を検査値に指定してみましょう。

Table_7
表7

「特定の文字から始まる」ことを条件に指定する場合、検査値は”(ダブルクォーテーション)で囲み、*(アスタリスク)を後ろに追加し、「“特定の文字*”」と入力します。

今回は「い」から始まることを条件にしたいので、「“い*”」と入力します。

商品名で「い」から始まるのは1行目の「いちご」なので、「1」が結果として表示されます。

3-1-3.特定の文字で終わる条件設定の使い方

次に検査値の条件を「特定の文字で終わる」に指定してみます。

今回は「かん」で終わる文字列を検査値に指定してみましょう。

Table_8
表8

「特定の文字で終わる」ことを条件に指定する場合、検査値は”(ダブルクォーテーション)で囲み、*(アスタリスク)を前に追加し、「“*特定の文字”」と入力します。

今回は「かん」で終わることを条件にしたいので、「“*かん”」と入力します。

商品名で「かん」で終わるのは3行目の「みかん」なので、「3」が結果として表示されます。

3-1-4.文字数も指定する方法

*(アスタリスク)は文字数に関係なくあいまい検索をすることができましたが、?(クエスチョンマーク)を使うことで文字数も指定することができます。

今回は、「か」で終わる3文字の文字列を検査値に指定してみましょう。

Table_9
表9

「特定の文字で終わる」ことと文字数を条件に指定する場合、検査値は”(ダブルクォーテーション)で囲み、?(クエスチョンマーク)を指定したい文字数分、前に追加し「“??特定の文字”」と入力します。

今回は、「か」で終わる3文字の文字列を条件にしたいので?を2つ手前に追加し、「“??か”」と入力します。

商品名で「か」で終わる3文字の文字列は4行目の「すいか」なので、「4」が結果として表示されます。

4文字を指定したい場合は、「”???か”」と3文字目が「か」の4文字の文字列を指定したい場合は、「”??か?”」と指定します。

3-2.INDEX関数と組み合わせてVLOOKUP関数のように使う方法

MATCH関数は、INDEX関数と組み合わせて使用することでVLOOKUP関数のような使い方をすることができます

使い方は、

=INDEX(参照範囲,MATCH(検索値,検索する列,0),列番号)

INDEX関数MATCH関数をネスト(組み合わせ)して使用します。

詳しい解説はこちらの記事でしていますので、ぜひこちらも合わせてお読みください。

INDEX関数と組み合わせることで、VLOOKUP関数ではできない列の左側からデータを参照することや複数条件を指定することができます。

3-3.MATCH関数で複数の条件を指定する方法

MATCH関数は、検査値に&(アンパサンド)を使うことで複数の条件を指定することができます。

今回は、条件1が「みかん」条件2が「静岡」で検査値を指定してみましょう。

表10

指定方法は、検査値と検索範囲それぞれを&(アンパサンド)でつないで指定をします。

検査値は、条件1と条件2がそれぞれE2セルとF2セルにあるので&でつなぎ、「E2&F2」と指定します。

検索範囲は、商品名と産地がそれぞれA列とB列にあるのでA2:B7と指定してしまいがちですが、こちらも&でつなぎ「A2:A7&B2:B7」と指定します。

計算式は、

=MATCH(E2&F2,A2:A7&B2:B7,0)

となり、結果はどちらの条件にも合致する「3」が表示されます。

この複数条件をさらに応用することで、INDEX、MATCHでも複数の条件を指定することができます。

↓INDEX、MATCH関数で複数条件を指定する方法↓
【応用】INDEX、MATCH関数で複数の条件を指定する方法とは?


今回の記事では、MATCH関数の使い方を詳しく解説しました。

MATCH関数は単体ではイマイチ使いどころが難しい関数ですが、INDEX関数をはじめ他の関数とネスト(組み合わせ)させることで便利に使うことができる関数です。

ぜひ使い方を覚えておいて、他の関数と組み合わせて更に便利な関数として使用いただければと思います。

最後までお読みいただきありがとうございました。

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