Excelにおいて指定した値がセル範囲内のどの位置にあるかを検索するための強力なツールがMATCH関数です。

今回は、MATCH関数の基本的な使い方から実践的な活用例までを詳しく解説します。

この記事でデータ分析や管理に役立つテクニックを習得し、効率的にデータを操作する方法を学びましょう。

チャット一括管理アプリ「OneChat」が今なら初月無料!!

OneChatのダウンロードはこちらから

MATCH関数の基本

excel match

MATCH関数の基本的な情報について理解しましょう。

MATCH関数の構文

MATCH関数は、指定したセルの範囲内から同じく指定した項目の検索を行い、合致したものの相対的な位置を返してくれる関数です。

MATCH関数の基本的な書式・構文は以下の通りです。

=MATCH(検査値, 検査範囲, [照合の型])

引数の詳細解説

MATCH関数のそれぞれの引数の詳細についてみていきましょう。

項目内容
検査値第二引数(検査範囲)で指定した範囲の中で、照合しているか検索を行う値の指定をします。検査値では、数値や文字列、理論値などを入力する、またはそれらの値が入力されているセルを参照することで指定が行えます。
検査範囲検査値の検索を行うセルの範囲の指定を行います。
照合の型「-1」「0」「1」の三種類のいずれかの指定を行います。この引数は省略することが可能です。その場合は「1」が指定されます。
照合の型動作
1(または省略)検索値(第一引数)で指定した値以下の最大値の検索を行います。検索範囲(第二引数)で指定したセル範囲の値は、昇順で並び替えられている必要があります。
0検索値(第一引数)で指定した値に等しい最初の値の検索を行います。
-1検索値(第一引数)で指定した値以上の最小値の検索を行います。検索範囲(第二引数)で指定したセル範囲の値は、降順で並び替えられている必要があります。

参考:MATCH 関数 – Microsoft サポート

単純な例での使用方法

MATCH関数を単純な例で使った場合の使用方法について解説します。

行\列A
1トマト
2きゅうり
3なす
4キャベツ
5レタス
6ほうれん草
7ブロッコリー
8ピーマン
9大根
10にんじん

例えば、上記表から「ブロッコリー」という文字列が、リストを上から数えて何番目の位置にあるのかをMATCH関数を用いて取得してみましょう。

この場合に結果を表示したいセルに入力する数式は次の通りです。

=MATCH(“ブロッコリー”, A1:A10, 0)

  • 検索値(第一引数)は、今回検索したい文字列である「ブロッコリー」を指定します。
  • 検索範囲(第二引数)は、リストが入力されている範囲である「A1:A10」を指定します。この例では関係がありませんが、リストの入力データが増えると範囲指定をやり直す必要があるため、検索範囲を「A列」で指定する方法も便利です。
  • 照合の型(第三引数)は、一致した文字列を検索するので、0(完全一致)を指定します。
行\列AB
1トマト=MATCH(“ブロッコリー”, A1:A10, 0)
2きゅうり
3なす
4キャベツ
5レタス
6ほうれん草
7ブロッコリー
8ピーマン
9大根
10にんじん
行\列AB
1トマト7
2きゅうり
3なす
4キャベツ
5レタス
6ほうれん草
7ブロッコリー
8ピーマン
9大根
10にんじん

これにより、「ブロッコリー」がリストの上から7番目にあることを確認することができました。

関連記事:IFS関数活用術!複雑条件も簡単に攻略する方法

MATCH関数の応用例

単純な例を用いたMATCH関数の使用方法について理解できたところで、今度はMATCH関数の応用例についてみていきましょう。

複数条件を使った検索

MATCH関数それ自体で設定できる条件は単一のみであるため、直接複数条件を設定して検索を行うことはできません。

そのため、複数条件を設定して検索をMATCH関数で行いたい場合は、INDEX関数と組み合わせることがおすすめです。

詳しい使い方はこの次で解説します。

INDEX関数との組み合わせ

MATCH関数とINDEX関数を組み合わせて用いてデータ検索を行う例について紹介します。

まずは、INDEX関数とはどのような関数なのかについて理解しましょう。

まずは、INDEX関数とはどのような関数なのかについて理解しましょう。

INDEX関数とは、行と列をそれぞれ指定し、それらが交わる位置にあるセルの値を返してくれる関数です。

INDEX関数の基本的な書式は以下の通りです。

=INDEX(配列, 行番号, [列番号])

簡単な例を用いてINDEX関数の使用方法を解説します。

行\列AB
1商品名価格
2トマト180
3きゅうり110
4なす300
5キャベツ240
6レタス75
7ほうれん草290
8ブロッコリー210
9ピーマン270
10大根135
11にんじん50

例えば、上記リストの「商品名」に入力されている上から5番目の文字列をINDEX関数を用いて取得してみましょう。

この場合に結果を表示したいセルに入力する数式は以下の通りです。

=INDEX(A2:A11, 5, 1)

  • 配列(第一引数)は、検索したい文字列が入力されている範囲である「A2:A11」を指定します。
  • 行番号(第二引数)は、配列で指定した範囲の上から5番目に入力されている文字列を取得したいため、「5」を指定します。
  • 列番号(第三引数)は、今回の場合においては配列で指定した範囲が一列のみであるため、「1」を指定します。複数列を指定した場合は取得したい値が左から何番目の列にあるのかを指定します。
行\列ABC
1商品名価格=INDEX(A2:A11, 5, 1)
2トマト180
3きゅうり110
4なす300
5キャベツ240
6レタス75
7ほうれん草290
8ブロッコリー210
9ピーマン270
10大根135
11にんじん50
行\列ABC
1商品名価格レタス
2トマト180
3きゅうり110
4なす300
5キャベツ240
6レタス75
7ほうれん草290
8ブロッコリー210
9ピーマン270
10大根135
11にんじん50

これにより、リストの「商品名」に入力されている上から5番目の文字列が「レタス」であることがわかりました。

参考:INDEX 関数 – Microsoft サポート

INDEX関数の基本的な使い方を理解したところで、具体的にMATCH関数とINDEX関数を組み合わせた使い方について解説します。MATCH関数とINDEX関数を組み合わせることで、複数条件を設定して検索を行うことが容易になります。

行\列ABC
1日付商品数量
22024/4/3トマト7
32024/4/3キャベツ14
42024/4/10キャベツ19
52024/4/14ブロッコリー6
62024/4/22なす12

例えば、上記のようなデータがあるとします。このデータから、「日付」が「2024/4/3」で「商品」が「キャベツ」に一致する行に入力されている「数量」をMATCH関数とINDEX関数を組み合わせることで取得してみましょう。

①設定したい複数の条件を結合する

設定したい複数の条件(今回は「日付」と「商品」)を結合したものを新しい列に入力します。入力の際は「&」記号を用いると簡単です。(例:=A2 & B2)

一つ入力できたら、オートフィルを用いて残りのセルにも数式をコピーしましょう。

②結合したセルを用いてMATCH関数の引数を入力する

①で作成したセルを用いてMATCH関数の数式を作成します。

=MATCH(“2024/4/3キャベツ”, D2:D6, 0)

この数式では、「D2:D6」の範囲で「2024/4/3キャベツ」の検索を行い、その位置を表示します。

③INDEX関数を用いて条件に合致する数量を取得する

②で作成したMATCH関数の数式とINDEX関数を組み合わせて、条件に合致する数量を取得する数式を作成します。

=INDEX(C2:C6, MATCH(“2024/4/3キャベツ”, D2:D6, 0))

行\列ABCD
1日付商品数量日付+商品
22024/4/3トマト7=A2 & B2
32024/4/3キャベツ14=A3 & B3
42024/4/10キャベツ19=A4 & B4
52024/4/14ブロッコリー6=A5 & B5
62024/4/22なす12=A6 & B6
行\列ABCD
1日付商品数量日付+商品
22024/4/3トマト72024/4/3トマト
32024/4/3キャベツ142024/4/3キャベツ
42024/4/10キャベツ192024/4/10キャベツ
52024/4/15ブロッコリー62024/4/14ブロッコリー
62024/4/22なす122024/4/22なす
行\列ABCDE
1日付商品数量日付+商品=INDEX(C2:C6, MATCH(“2024/4/3キャベツ”, D2:D6, 0))
22024/4/3トマト72024/4/3トマト
32024/4/3キャベツ142024/4/3キャベツ
42024/4/10キャベツ192024/4/10キャベツ
52024/4/15ブロッコリー62024/4/14ブロッコリー
62024/4/22なす122024/4/22なす
行\列ABCDE
1日付商品数量日付+商品14
22024/4/3トマト72024/4/3トマト
32024/4/3キャベツ142024/4/3キャベツ
42024/4/10キャベツ192024/4/10キャベツ
52024/4/15ブロッコリー62024/4/14ブロッコリー
62024/4/22なす122024/4/22なす

ケーススタディ:実際のビジネスシナリオでの使用例

実際のビジネスシーンでMATCH関数がどのような場合に使われるのかを紹介します。

シーンシナリオ
在庫の管理商品名と保管場所(棚番号)が入力されている在庫のリストから、特定の商品がどこに保管されているかをチェックしたい際に用いることができます。
売上データ分析月別売上データが入力されているリストから、任意の月の売上額を取得したい場合に用いることができます。
顧客データ検索MATCH関数を使用した際に発生する可能性のあるエラーとその解決策・対処方法などについて紹介します。

MATCH関数のエラーとトラブルシューティング

excel match

MATCH関数を使用した際に発生する可能性のあるエラーとその解決策・対処方法などについて紹介します。

よく遇るエラーとその解決方法

エラー名原因
#N/A指定した検索値が指定した検索範囲内に存在しない場合に起きます。

解決方法

  1. 検索値が検索範囲内に存在するかチェックしましょう。余分なスペースやスペルミスが発生している場合や、誤った検索範囲を指定している場合もあります。
  2. 検索条件が正しいものであるかチェックしましょう。検索条件(照合の型)を完全一致(0)としている場合、検索値と完全に一致しているものが存在していなければエラーが起きてしまいます。
エラー名原因
#VALUE!正しいデータの型で検索値や検索範囲が入力されていない(例:検索値が文字列であるが、範囲に数値が含まれているセルを指定している)場合に起きます。

解決方法

  1. 検索値や検索範囲が適切なデータ型となっているかチェックしましょう。例えば、文字列の検索を行う際は、範囲内の値も文字列でなければなりません。
  2. 正しい数式が入力できているかチェックしましょう。例えば、検索値や検索範囲が正しく指定されていないことでエラーが起きてしまいます。
エラー名原因
#REF!MATCH関数で存在しない範囲を指定してしまっている場合に起きます。

解決方法

  • 正しい範囲を参照できているかチェックしましょう。参照先の範囲が別の場所へ移動されていたり、削除されていることがあります。
  • 参照先が誤っている場合は正しい範囲へと再指定しましょう。
エラー名原因
#NAME?正しい関数名が入力されていない、Excelが関数を認識できないなど、MATCH関数が認識されない場合に起きます。

解決方法

  1. 関数名のスペルが正しいかチェックしましょう。誤っている場合は正しいものへと修正します。
  2. 利用しているExcelでMATCH関数がサポートされているかチェックしましょう。サポートされていない場合は、代替手段を検討しましょう。

データが見つからない場合の対処法

MATCH関数で用いた際にデータが見つからなかった場合の対処法について解説します。

MATCH関数でデータが見つからなかった場合は、「#N/A」エラーが表示されます。これが発生した場合にただエラーを表示させるのではなく、代替の値を表示するよう設定すると良いでしょう。

代替の値を表示するように設定する際は、「IFERROR関数」を併用すると容易に設定を行うことができます。

例えば、以下の数式では、検索値「2024/4/3キャベツ」が存在せずエラーが表示される代わりに「見つかりません」と表示させることができます。

=IFERROR(MATCH(“2024/4/3キャベツ”, A2:A6, 0), “見つかりません”)

間違いやすい点とその回避方法

MATCH関数を使う際に間違いやすい点とその回避方法について説明します。MATCH関数を正しく使うためには、いくつかの注意点を押さえることが重要です。

①検索値と検索範囲のデータ型が一致していない

MATCH関数は検索値と検索範囲のデータ型が一致していないと正しく機能しません。例えば、検索値が文字列で検索範囲が数値の場合、正しい結果が得られません。

回避方法

検索値と検索範囲のデータ型を一致させます。特に、文字列の前後に余分なスペースがないか確認し、数値が文字列として扱われていないかチェックしましょう。

②正しく照合の型を指定する

「照合の型」の指定を間違えると、意図していた結果を得ることができません。特に、完全一致(0)を指定しないと近似値が返される場合があります。

回避方法

必要に応じて「照合の型」を正しく指定しましょう。完全一致を求める場合は、常に「照合の型」を「0」に設定します。

③検索範囲を正しく指定する

検索範囲が正しく指定されていないと、MATCH関数は意図した範囲外を検索することになってしまいます。

回避方法

検索範囲が正しいセル範囲をカバーしていることをチェックしましょう。範囲を絶対参照にして固定すると、オートフィルを用いた際に意図せず範囲外を指定する、といったことを避けられます。

④近似一致を誤って使用する

MATCH関数の「照合の型」を「1」または「-1」に設定すると、近似一致が適用されますが、範囲が昇順または降順にソートされていない場合は正しく機能しません。

回避方法

近似一致(「1」または「-1」)を使用する場合は、検索範囲が昇順または降順にソートされていることをチェックしましょう。

⑤セル範囲の指定を誤る

MATCH関数の検索範囲を指定する際にセル範囲を間違えて指定すると、意図した結果を得ることができません。

回避方法

範囲の指定が正しいかどうかをチェックしましょう。大きな範囲を指定する際は特に注意が必要です。

⑥データが重複している

検索範囲に重複データがある場合、MATCH関数は最初に見つかった一致の位置を返します。重複データが存在すると正しい結果が得られないことがあります。

回避方法

検索範囲に重複データがないことをチェックしましょう。重複がある場合は他の方法でデータの一意性を確保しましょう。

関連記事:効率的なデータ検索が可能!ExcelのVLOOKUP・HLOOKUP・XLOOKUPマスター術

MATCH関数を使ったデータ分析のテクニック

MATCH関数を使ったデータ分析におけるテクニックについていくつか紹介します。

MATCHを活用したデータ整理法

MATCH関数を活用したデータ整理法について紹介します。MATCH関数は、特定の値が指定した範囲内のどの位置にあるかを検索できます。この機能をデータの整理に活用することが可能です。

以下では、MATCH関数を活用したデータ整理法の一例について紹介します。

例えば、以下のような月別の商品売上データがあるとして、どの月に特定の商品の売上が高いかを検索するとします。

行\列ABCDEF
1商品名1月2月3月4月5月
2商品A120250300470180
3商品B390410220340500
4商品C150430270490320

1.最大売上を抽出する

MAX関数を用いて最大売上を抽出します。

「G2」セルに次の数式を入力し、「G2」セル以下にコピーします。

=MAX(B2:F2)

行\列G
1最大売上
2=MAX(B2:F2)
3
4
行\列G
1最大売上
2470
3500
4490

2.最大売上月を抽出する

MATCH関数を用いて最大売上月の位置を抽出します。

「H2」セルに次の数式を入力し、「H2」セル以下にコピーします。

=MATCH(G2, B2:F2, 0)

行\列H
1最大売上の位置
2=MATCH(G2, B2:F2, 0)
3
4
行\列H
1最大売上の位置
24
35
44

3.「月」表示へ変換する

②で確認した最大売上月の位置を元に、CHOOSE関数を用いて月名へと変換します。

「I2」セルに次の数式を入力し、「I2」セル以下にコピーします。

=CHOOSE(H2, “1月”, “2月”, “3月”, “4月”, “5月”, “6月”)

行\列H
1最大売上月
2=CHOOSE(H2, “1月”, “2月”, “3月”, “4月”, “5月”, “6月”)
3
4
行\列H
1最大売上月
24月
35月
44月

この方法を用いることで簡単に特定商品の最大売上月を抽出することが可能です。MATCH関数をうまく活用することで、データの整理に役立てることができます。

データマッチングの高度なテクニック

データマッチングとは、異なるデータソース間で一致するデータを見つけるプロセスのことを指します。

以下ではMATCH関数を使ったデータマッチングの高度なテクニックについて紹介します。

配列を用いた部分一致検索

MATCH関数を用いて、部分一致するデータの検索を行うことができます。

部分一致検索を行う際のポイントはワイルドカードを検索値に活用することです。

行\列ABCD
1社員番号氏名年齢性別
212467佐藤 太郎25
313258鈴木 花子34
414567高橋 一郎29
515678田中 美咲42
617654藤田 健太37
719876渡辺 さくら31

上記リストを元に、様々な形での部分一致検索方法についてみていきましょう。

条件の形式入力方法入力例例題を元にした入力例
「藤」を含む文字列の前後に「*」“*藤*”=INDEX($A$2:$D$7, MATCH(“*藤*”,$B$4:$B$7,0),2)
「藤」で始まる文字列の後ろに「*」“藤*”=INDEX($A$2:$D$7,MATCH(“藤*”,$B$4:$B$7,0),2)
「藤」で終わる文字列の前に「*」“*藤”=INDEX($A$2:$D$7,MATCH(“*藤”,$B$4:$B$7,0),2)
「藤」の前後に1文字ずつ存在する文字列の前後に「?」“?藤?”=INDEX($A$2:$D$7,MATCH(“?藤?”,$B$4:$B$7,0),2)
「藤」の前に1文字ずつ存在する文字列の前に「?」“?藤”=INDEX($A$2:$D$7,MATCH(“?藤”,$B$4:$B$7,0),2)
「藤」の後ろに1文字ずつ存在する文字列の後ろに「?」“藤?”=INDEX($A$2:$D$7,MATCH(“藤?”,$B$4:$B$7,0),2)

関連記事:Excel COUNTIF関数活用術!効率的なデータ分析のコツを解説

効率的なデータ検索のコツ

MATCH関数を効率的に使ってデータを検索するためのコツをみていきましょう。

コツ詳細
適切な検索値を指定する適切な検索値を指定することにより不要な処理を避けることが可能です。例として、文字列を検索する場合に、検索値の前後に余分なスペースが含まれていると正しく検索ができない場合があります。
適切な検索範囲を指定する検索範囲を必要最低限とすることで検索速度の向上に繋げることができます。余分な行や列を検索範囲に含めることのないようにしましょう。
絶対参照を活用するMAYCH関数の数式内で検索範囲の指定を行う時に絶対参照を用いることで、数式のコピーを行った際に指定した範囲を固定することができます。
可能な限り完全一致検索を選ぶ照合の型を近似一致(1または-1)とした場合、範囲を昇順、または降順へとソートする必要があります。また、検索範囲が膨大になると処理に時間を要するため、可能な限り完全一致を選ぶと良いでしょう。

よくある質問

MATCH関数を用いる上で、よくある質問について紹介します。

MATCH関数に関するよくある質問と回答

MATCH関数に関するよくある質問とその回答についていくつか挙げてみましょう。

質問回答
MATCH関数とはなにができる関数ですか。MATCH関数は、指定したセルの範囲内から同じく指定した項目の検索を行い、合致したものの相対的な位置(行番号や列番号)を返してくれる関数です。
MATCH関数の書式を教えてください。MATCH関数の基本的な書式は以下の通りです。=MATCH(検査値, 検査範囲, [照合の型])
MATCH関数の「照合の型」はなにがありますか。MATCH関数の「照合の型」は次の3つの種類があります。
1(または省略)検索値(第一引数)で指定した値以下の最大値の検索を行います。検索範囲(第二引数)で指定したセル範囲の値は、昇順で並び替えられている必要があります。
0検索値(第一引数)で指定した値に等しい最初の値の検索を行います。
-1検索値(第一引数)で指定した値以上の最小値の検索を行います。検索範囲(第二引数)で指定したセル範囲の値は、降順で並び替えられている必要があります。

INDEXとMATCHの違いは何か?

INDEX関数もMATCH関数もどちらもExcelにおいてデータの検索や抽出を行う際に用いられる関数ですが、それぞれの関数は異なる役割を持ちます。

INDEX関数は、指定した範囲内から指定した行と列の交点に存在する値を返してくれる関数です。主に、表や配列から特定の値を取得したい場合に用いられます。

一方、MATCH関数は、指定したセルの範囲内から同じく指定した項目の検索を行い、合致したものの相対的な位置を返してくれる関数です。

つまり、INDEX関数は指定した位置に存在する値を検索する際に用いられ、MATCH関数は入力されている値が存在する位置を検索する際に用いられるのです。

MATCH関数を使った配列検索について

MATCH関数では、特定の値が配列内のどの位置にあるかを検索することができます。

簡単な例を用いて、MATCH関数を使った配列検索の方法について紹介します。

行\列A
1トマト
2きゅうり
3なす
4キャベツ
5レタス
6ほうれん草
7ブロッコリー
8ピーマン
9大根
10にんじん

例えば、上記表から「ブロッコリー」という文字列が、リストを上から数えて何番目の位置にあるのかをMATCH関数を用いて取得してみましょう。

この場合に結果を表示したいセルに入力する数式は次の通りです。

=MATCH(“ブロッコリー”, A1:A10, 0)

これにより、「ブロッコリー」がリストの上から7番目にあることを確認することができました。

まとめ

MATCH関数は、データ検索において非常に便利で強力なツールです。この記事では基本的な使い方から応用テクニックまで幅広く紹介しました。

MATCH関数をマスターすることで、データ管理や分析の効率が飛躍的に向上します。この記事が今後の、Excelでの作業を一層スムーズする助けになれば幸いです。

Excel Match関数に関する重要用語

用語説明
MATCH関数=MATCH(検査値, 検査範囲, [照合の型])指定したセルの範囲内から同じく指定した項目の検索を行い、合致したものの相対的な位置を返してくれる関数です。
INDEX関数=INDEX(配列, 行番号, [列番号])行と列をそれぞれ指定し、それらが交わる位置にあるセルの値を返してくれる関数です。