この記事では指定したデータが何行目や何列目にあるかを調べることができるMATCH関数について解説します。
大量のデータを使用した表を使っている場合、目的のデータがどこにあるかを返すこの関数は様々なシーンで使い道があります。
また、INDEX関数とネストさせて(組み合わせて)使用する事で、VLOOKUP関数と同じような使い方をすることもできます。
MATCH関数は、=MATCH(検査値,検査範囲,[照合の種類])と3つの引数を指定することで使用する事ができます。3つ目の引数の照合の種類は省略できますが、省略した場合「1」と入力したのと同じ「以下」という判定になってしまうので、通常は「0」と入力をし「完全一致」にして使用します。
引数が3つとやや多いのと、「照合の種類」というところが分かりにくい関数ですので、1つの引数ずつ分かりやすく解説したいと思います。
↓INDEX、MATCHの使い方についてはこちら↓
VLOOKUP関数の代わりに?INDEX関数とMATCH関数の使い方【代替関数】
↓VLOOKUP関数についての記事はこちら↓
最強の便利関数?VLOOKUP関数の使い方とは
1.MATCH関数の指定方法とは?
それでは実際にMATCH関数の使い方を分かりやすく解説します。
MATCH関数は、
=MATCH(検査値,検査範囲,[照合の種類])
という3つの引数(ひきすう)を指定することで使用する事ができます。
1-1.検査値の指定方法
1つ目の引数は「検査値」です。
検査値には、検索したい数値やセルを指定します。
また、記事の後半で詳しく解説しますが、検査値には*(アスタリスク)や?(クエスチョン)を使うことであいまい検索をすることができます。
↓数値や文字列の違いについての記事はこちら↓
【数値と文字列】VLOOKUP関数で同じ数字なのにエラーが出るときの対処法とは?
↓あいまい検索の詳しい記事はこちら↓
<>ノットイコールや*アスタリスクの意味とは?比較演算子、ワイルドカードの使い方
1-2.検査範囲の指定方法
2つ目の引数は「検査範囲」です。
検査範囲には、検査値を検索したい範囲を指定します。
列でも行でも指定することができますが、複数の列と行にまたがって指定することはできません。
1-3.照合の種類の指定方法
3つ目の引数は「照合の種類」です。
照合の種類には「1」「0」「-1」の3つを指定することができます。
特に理由がない場合は、「0」の完全一致を使用する事をおすすめします。
2.MATCH関数の使い方とは?
ここまでMATCH関数の3つの引数の指定方法を解説してきました。
ここからは、実際にMATCH関数を使用しながら使い方を解説します。
今回は上記の表を用意しました。
右側の◯行目と◯列目の部分にMATCH関数を使って、「みかん」が何行目にあるかと「産地」が何列目にあるかを検索してみたいと思います。
2-1.MATCH関数の行方向での検索方法
最初にMATCH関数を使って「みかん」が何行目にあるかを行方向で検索します。
計算式は、
=MATCH(“みかん”,A2:A6,0)
となります。
1つずつ解説すると、
1つ目の引数の検査値は文字列の「みかん」を検索したいので、”(ダブルクォーテーション)で囲み「”みかん”」と入力します。
2つ目の引数の検査範囲は行番号を検索したいので、商品名が並んでいるA列のA2セルからA6セルまでを指定します。
3つ目の引数の照合の種類は、完全一致の「0」を入力します。
計算式を確定させると、「みかん」が入力されている3行目の「3」が結果として表示されました。
2-2.MATCH関数の列方向での検索方法
次にMATCH関数を使って「産地」が何列目にあるか列方向で検索します。
今度は、検査値にセルを指定してみます。
計算式は、
=MATCH(E3,A1:C1,0)
となります。
1つずつ解説すると、
1つ目の引数の検査値には「産地」と文字列が入力されたE3セルを指定します。(セルを指定する時は”(ダブルクォーテーション)は不要です)
2つ目の引数の検査範囲は列番号を検索したいので、表題が並んでいる1行目のA1セルからC1セルまでを指定します。
3つ目の引数の照合の種類は、完全一致の「0」を入力します。
計算式を確定させると、「産地」が入力されている2列目の「2」が結果として表示されました。
3.MATCH関数の応用方法とは?
MATCH関数の応用方法として、検査値にワイルドカードを使い「特定の文字を含む」や「特定の文字から始まる」などのあいまい検索をすることや複数条件の指定やINDEX関数と組み合わせることで、VLOOKUP関数のような使い方をすることができます。
それぞれの応用方法を解説していきます。
3-1.MATCH関数とワイルドカードを使ったあいまい検索
MATCH関数では、検査値に*(アスタリスク)や?(クエスチョンマーク)を使用することで、条件に「特定の文字を含む」や「特定の文字から始まる」などの指定をすることができます。
↓ワイルドカードについて詳しい記事はこちら↓
<>ノットイコールや*アスタリスクの意味とは?比較演算子、ワイルドカードの使い方
3-1-1.特定の文字を含む条件設定の使い方
検査値の条件を「特定の文字を含む」に指定したい場合、*(アスタリスク)を使います。
例えば、「も」が含まれる文字列を検査値に指定してみましょう。
「特定の文字を含む」ことを条件に指定する場合、検査値は”(ダブルクォーテーション)と*(アスタリスク)で囲んで指定し、「“*特定の文字*”」と入力します。
今回は「も」を含むことを条件にしたいので、検査値に「“*も*”」と入力します。
商品名で「も」が含まれるものは6行目の「すもも」なので、「6」が結果として表示されます。
3-1-2.特定の文字から始まる条件設定の使い方
次に検査値の条件を「特定の文字から始まる」に指定してみます。
この場合も、*(アスタリスク)を使用します。
今回は「い」から始まる文字列を検査値に指定してみましょう。
「特定の文字から始まる」ことを条件に指定する場合、検査値は”(ダブルクォーテーション)で囲み、*(アスタリスク)を後ろに追加し、「“特定の文字*”」と入力します。
今回は「い」から始まることを条件にしたいので、「“い*”」と入力します。
商品名で「い」から始まるのは1行目の「いちご」なので、「1」が結果として表示されます。
3-1-3.特定の文字で終わる条件設定の使い方
次に検査値の条件を「特定の文字で終わる」に指定してみます。
今回は「かん」で終わる文字列を検査値に指定してみましょう。
「特定の文字で終わる」ことを条件に指定する場合、検査値は”(ダブルクォーテーション)で囲み、*(アスタリスク)を前に追加し、「“*特定の文字”」と入力します。
今回は「かん」で終わることを条件にしたいので、「“*かん”」と入力します。
商品名で「かん」で終わるのは3行目の「みかん」なので、「3」が結果として表示されます。
3-1-4.文字数も指定する方法
*(アスタリスク)は文字数に関係なくあいまい検索をすることができましたが、?(クエスチョンマーク)を使うことで文字数も指定することができます。
今回は、「か」で終わる3文字の文字列を検査値に指定してみましょう。
「特定の文字で終わる」ことと文字数を条件に指定する場合、検査値は”(ダブルクォーテーション)で囲み、?(クエスチョンマーク)を指定したい文字数分、前に追加し「“??特定の文字”」と入力します。
今回は、「か」で終わる3文字の文字列を条件にしたいので?を2つ手前に追加し、「“??か”」と入力します。
商品名で「か」で終わる3文字の文字列は4行目の「すいか」なので、「4」が結果として表示されます。
3-2.INDEX関数と組み合わせてVLOOKUP関数のように使う方法
MATCH関数は、INDEX関数と組み合わせて使用することでVLOOKUP関数のような使い方をすることができます。
使い方は、
=INDEX(参照範囲,MATCH(検索値,検索する列,0),列番号)
とINDEX関数とMATCH関数をネスト(組み合わせ)して使用します。
詳しい解説はこちらの記事でしていますので、ぜひこちらも合わせてお読みください。
↓INDEX、MATCH関数の詳しい記事はこちら↓
VLOOKUP関数の代わりに?INDEX関数とMATCH関数の使い方【代替関数】
INDEX関数と組み合わせることで、VLOOKUP関数ではできない列の左側からデータを参照することや複数条件を指定することができます。
3-3.MATCH関数で複数の条件を指定する方法
MATCH関数は、検査値に&(アンパサンド)を使うことで複数の条件を指定することができます。
今回は、条件1が「みかん」条件2が「静岡」で検査値を指定してみましょう。
指定方法は、検査値と検索範囲それぞれを&(アンパサンド)でつないで指定をします。
検査値は、条件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関数をはじめ他の関数とネスト(組み合わせ)させることで便利に使うことができる関数です。
ぜひ使い方を覚えておいて、他の関数と組み合わせて更に便利な関数として使用いただければと思います。
最後までお読みいただきありがとうございました。