MATCH(マッチ)関数の使い方

エクセル関数基礎

機能

MATCH関数は、選択した範囲内で指定した値を検索し、見つかったセルの相対的な位置(行番号または列番号)を返す関数です。計算結果には、セルの位置を表す数値が表示されます。

セルの位置ではなくセルの値を返したい場合は、VLOOKUP関数やDGET関数を使いましょう。MATCH関数とINDEX関数を組み合わせれば、セルの値を返すこともできます。

記述ルール

MATCH関数は、次のように記述します。

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

検査値には、MATCH関数で検索する値を指定します。値の指定をする際には、ワイルドカードを使用することであいまい検索ができます。アルファベットについては、大文字と小文字の区別はできません。値を指定する代わりに、セル番地を指定(セル参照)することも可能です。

検査範囲には、検索するセル範囲を指定します。指定できるのは1列または1行のみです。

照合の型には、1、0、-1のいずれかで検索の方法を指定します。この記述は省略可能であり、省略した場合は1の方法で検索します。

  • 1:検査値以下の最大の値を検索します。検査範囲の値が昇順に並んでいる場合のみ正しく計算できます。
  • 0:検査値と等しい値を検索します。検査範囲内に等しい値が複数あった場合、一番最初のセルの位置のみを返します。
  • -1:検査値以上の最小の値を検索します。検査範囲の値が降順に並んでいる場合のみ正しく計算できます。

1または-1の照合の型は、データがランダムに並んでいるとエラーが出ることがあり、正しい結果を得られない場合があります。基本的には0を使うものだと思って問題ありません

=MATCH("技術部",A1:A10,0)
=MATCH("*部",A1:A10,0)
=MATCH(B1,A1:A10,0)

検査値には、2つ以上の値またはセル番地の指定が可能です。

複数の検査値を指定する場合は「&」をつけて追加します。検査値を複数指定したときは、同じだけ検査範囲も複数指定します。

=MATCH("エクセル"&"技術部",A1:A10&B1:B10,0)

注意点

MATCH関数が返すのは検査範囲における「相対的な位置」です。必ずしもエクセルの実際の行番号(列番号)と一致しない点には注意しましょう。計算結果を実際の行番号(列番号)と一致させるには、次の2通りの対応があります。

(1)列または行全体を検査範囲にする。

=MATCH("技術部",A:A,0)

全体を検査範囲にすることで、相対的な位置=絶対的な位置になります。このため、実際の行番号(列番号)と計算結果が一致します。

(2)計算結果に「検査範囲の1つ上の行番号」を足して調整する。列方向に範囲を取った場合は、「検査範囲の1つ左の列番号」を足す。

=MATCH("技術部",A3:A13)+2

この数式では検査範囲が3行目から始まっています。そのため、1つ上の行番号である「2」を足すことで計算結果を実際の行番号と合わせられます。

=MATCH("技術部",E5:J5)+4

この数式では検査範囲がE列から始まっています。Eは5番目のアルファベットなので、1つ左の列番号である「4」を足すことで計算結果を調整しています。

MATCH関数をうまく利用すれば、さまざまな操作ができます。ぜひ活用してみてください。

コメント