目的のデータが、表の先頭から何番目にあるかを調べる関数。基本的な使い方に加えて、INDEX関数と組み合わせて仕事に役立つ実例も紹介する。

目的のデータが上から何番目にあるかを調べるMATCH(マッチ)

 目的のデータ(数値やテキスト)が、表の先頭から何番目にあるかを知りたい。こんなときに利用するのが、「MATCH」関数だ。

 活用のポイントは、書式にある「照合の型」の指定。たいていは「完全一致」の「0」(省略も可)を指定することが多いはず。例えば、社員番号順に001から並んでいる社員名簿の中で「○○さんの社員番号」を調べたり、営業部の売り上げ成績が上位から順に並んでいる表で「○○さんの成績」を調べたりといったことができる。

書式

書式 MATCH(検査値,検査範囲,照合の型)
検査値(必須) 検索する値を指定する
検査範囲(必須) 検索するセル範囲を指定する
照合の型(省略可) 検索方法を1、0、-1で指定する(下表参照)
1または省略 検査値以下の最大の値が検索される
0 検査値に完全一致する値が検索される
-1 検査値以上の最小の値が検索される

基本的な使い方

 会員リストから「山口太郎」さんの会員番号をB3セルに表示するケースを考える。MATCH関数の「検査値」に名前のセル(B2)、「検査範囲」に会員名のセル範囲(E2:E9)、「照合の型」に完全一致の「0」を指定する。B2セルに「山口太郎」と入力すると、これは会員名の上から5番目にあるので、MATCH関数の計算結果は「5」と表示される。

入力した名前が、会員リストの先頭から何番目にあるか知りたい。これにはMATCH関数を利用する
入力した名前が、会員リストの先頭から何番目にあるか知りたい。これにはMATCH関数を利用する
MATCH関数は、「検査範囲」を変えることで横方向に何番目かを調べることもできる。上図の場合は、左から数えた位置が分かる。「新宿」支店は左から3番目なので、結果は「3」になる
MATCH関数は、「検査範囲」を変えることで横方向に何番目かを調べることもできる。上図の場合は、左から数えた位置が分かる。「新宿」支店は左から3番目なので、結果は「3」になる

【仕事での使い方】縦横の項目名を指定してデータを転記

価格の一覧表から、弁当の種類と等級を指定して、該当する価格を転記したい。これは、MATCH関数とINDEX関数の組み合わせ技を使うと、簡単にできる
価格の一覧表から、弁当の種類と等級を指定して、該当する価格を転記したい。これは、MATCH関数とINDEX関数の組み合わせ技を使うと、簡単にできる

 上図のような料金表で、行と列の項目名を入力すると、該当する価格が表示されるようにしたい。これは、MATCH関数と、「INDEX」関数を組み合わせれば、即座に実現できる。

 まずMATCH関数を使って、B2セルに入力した「種類」とB3セルに入力した「等級」がそれぞれ何番目にあるかをB6セルとB7セルに表示する。B4セルにはINDEX関数を使って価格を表示する。これには、B6セルとB7セルの数字を、INDEX関数の「行番号」と「列番号」に指定すればいい。もちろん、INDEX関数の「範囲」には価格の表部分(E3:G6)を指定する。

B6とB7のセルに、MATCH関数を使って「種類」と「等級」のセルに入力された文字が、それぞれ料金表の行と列の何番目にあるかを調べる。それをINDEX関数で指定すれば、料金を転記できる
B6とB7のセルに、MATCH関数を使って「種類」と「等級」のセルに入力された文字が、それぞれ料金表の行と列の何番目にあるかを調べる。それをINDEX関数で指定すれば、料金を転記できる