サイトについて      連絡先   検索

エクセル 2013 MATCH 関数:検索する値の位置を取得する

はじめに

エクセル 2013 の MATCH 関数の使い方を紹介します。

MATCH 関数は検索する値の位置を取得します。

1 行か 1 列の範囲に指定した文字列が含まれているか検索したいときに使用します。複数条件や複数列から取得、エラーを回避する方法も紹介します。

INDEX 関数と組み合わせて VLOOKUP 関数より高度に検索するには「VLOOKUP 関数より高度に検索する」をご覧ください。

構文

MATCH(検索値, 検索範囲)

MATCH(検索値, 検索範囲, 照合の型)

名前 説明
引数「検索値」検索する値を、数値、文字列、セル参照、関数などで指定します。
引数「検索範囲」検索されるセルの範囲を 1 行または 1 列だけ指定します。
引数「照合の型」省略できます。検索方法を指定します。
1 または省略:検査値以下の最大値の位置が取得されます。引数「検索範囲」が昇順に並べられている必要があります。
0:引数「検査値」と完全一致しているセルの位置が取得されます。
-1:検査値以上の最小値の位置が取得されます。引数「検索範囲」が降順に並べられている必要があります。

使用例

引数「照合の型」に「0」を指定して、セル「B6」の値と完全一致するセルの位置をセル「B2」~「B4」の中から取得する。

=MATCH(B7,$B$2:$B$4,0)
14

ワイルドカードを使用して一致するセルの位置を取得する

=MATCH(B7,$B$2:$B$4,0)
15

引数「照合の型」に「1」を指定して、検査値以下の最大値の位置を取得する。

=MATCH(B7,$B$2:$B$4,1)
16

引数「照合の型」に「-1」を指定して、検査値以上の最小値の位置を取得する。

=MATCH(B7,$B$2:$B$4,-1)
17

解説

引数「検索値」が見つかったときに、引数「検索範囲」の何番目の位置にあるかを取得します。セル「B2」~「B4」に10, 20, 30の値が入っているときに 20 を検索すると 2 が取得されます。

引数「照合の型」に通常は 0 を指定して、完全一致するセルを検索します。

引数「照合の型」に 0 を指定したときだけ、引数「検索値」にワイルドカードを使用できます。使用できるワイルドカードには次のものがあります。

パターン 説明 使用例 一致例
*任意の長さの文字"あ*"あ, あい, あいう
?任意の 1 文字"あ?"あい, あか, あき
~ワイルドカードの文字 * ? を検索する"あ~?~*"あ?*

引数「照合の型」に 1 を指定したとき、引数「検索範囲」が昇順に並べ替えられている必要があります。そうでないときは正しい結果を取得できません。

例えば、引数「検索値」に 2 を指定したとき、次の画像では1, 10, 2, 20の順で検索します。検索値より大きい値が見つかったときは、それ以降の値は検索しません。昇順のときにそれ以降に一致する値はないからです。10 と比較したとき 2 より大きいのでこれ以降の値は検索されません。結果を 10 の 1 つ前から取得します。

18

引数「照合の型」に -1 を指定したとき、引数「検索範囲」が降順に並べ替えられている必要があります。そうでないときは正しい結果を取得できません。理由は 1 を指定したときと同じです。

引数「検索値」が存在しないときはエラー#N/Aになります。

エラー処理

検索結果が見つかったかどうかを判定するには「ISERROR 関数」を使用します。結果が TRUE のときは存在しません。FALSE なら見つかりました。「IF 関数」を使ってそれぞれの処理ができます。

=ISERROR(MATCH(B7,$B$2:$B$4,0))
=IF(ISERROR(MATCH(B10,$B$2:$B$4,0)),"なし","一致")
19

エラーのときだけ別の処理をしたいときは「IFERROR 関数」を使用します。

=IFERROR(MATCH(B7,$B$2:$B$4,0),"エラー")
20

複数列、複数行から取得する

引数「検索範囲」に複数行または複数列の範囲を指定するには「IFERROR 関数」を使用します。「IFERROR 関数」の引数「エラーの処理」に 2 つ目の「MATCH 関数」を入力して 2 列、3 列と増やしていけます。

=IFERROR(MATCH(B7,$B$2:$B$4,0),MATCH(B7,$C$2:$C$4,0))
21
2 列:
=IFERROR(MATCH(1 列目),MATCH(2 列目))
3 列:
=IFERROR(MATCH(1 列目),IFERROR(MATCH(2 列目),MATCH(3 列目)))

複数条件を指定する

引数「照合の型」に 0 を指定したときに複数の条件で一致するか判定する方法を紹介します。

「エクセル2016」のように「名前」と「バージョン」を条件にして取得したいデータがあります。

22

まずは検索専用列を作成します。条件となる「名前」と「バージョン」を結合した値にします。

=C3&D3
23

引数「検索値」にも「名前」と「バージョン」を結合した値を指定します。これを検索専用列から検索すれば、複数条件に対応できます。

=MATCH(B9&C9,$B$3:$B$6,0)
24

関連ページ