機能
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関数をうまく利用すれば、さまざまな操作ができます。ぜひ活用してみてください。
コメント