エクセルの関数の中でよく使われる一つ、MATCH関数(読み:マッチ、意味:英語で「match」は「一致する」)をここでは取り上げて解説していきます。

MATCH関数とは何か?

MATCH関数とは「=MATCH(検査値,検査範囲,[型])」という形で使うのが一般的で、「検査範囲」として指定した範囲の中で「検査値」がどの位置にあるのかを「列」と「行」の番号で表示してくれます。

ただし、表示される結果は相対的、つまり「検査範囲」として指定した範囲の中でどの位置にあるのか?である点には注意してください。

MATCH関数の書式=MATCH(検査値,検査範囲,[型])
対応Version365、2019、2016、2013、2010

MATCH関数の「検査値」について

「検査値」には、検索したい値(“文字列”)を入力したりセルを参照したり(A2)することで指定します。

MATCH関数の「検索範囲」について

「検索範囲」には「検索値」を検索したい範囲を指定します。余計な範囲や不十分な範囲を指定してしまうと、意図しない結果が表示されてしまうので、注意してください。

MATCH関数の「型」について

「型」について、「検索値」が数値の場合にのみ使用する可能性があります。

では具体的にどのような状況で「型」を使うのかというと、検索したい値が「1,000以下(または以上)で、1,000に一番近い」値のように、値が完全に一致するわけではなく、最も近い値を検索したい状況です。

型として、

1を設定した場合→検査値以下の最大値かつ「最初の」値を検索します
 ※検索範囲を「昇順」に並べておかないと意図する結果を得られません

0を設定した場合→検査値と完全に一致する「最初の」値を検索します。

-1を設定した場合→検査値以上の最小値かつ「最初の」値を検索します。
 ※検索範囲を「降順」に並べておかないと意図する結果を得られません

MATCH関数の具体的な使い方

①検索範囲となる表を準備します。

②MATCH関数を使いたいセルに「=MATCH (」と入力します。

③「検査値」を入力します。

ここでは「F3」のセルを参照する形で「検査値」を入力しています。

④「検索範囲」を指定します。

ドラッグで「検索範囲」を指定できます。

※必要な場合は「型」を指定します。

ここでは例なので「0」と指定していますが。指定しなくても同じ結果が表示されます。

⑤「Enter」を押し、表示された結果を確かめます。

自分が意図していない結果が表示された場合には、まずは「検索範囲」を見直しましょう。
ここでは「田中夏子」に該当するセルは「B3」から数えると、4行目にあることがわかりました。

また、ここでの例では垂直方向へのMATCH関数を取り上げましたが、水平方向でもMATCH関数を使うこともできます。

MATCH関数の応用①:複雑な検索方法の指定


これまでの説明ではMATCH関数の「検査値」として“意味のわかる文字列”を指定してきました。しかし、状況によっては“特定の文字列(例えば”橋”を含む文字列)”を検索したいこともあると思います。


そんな時に役立つのが、「ワイルドカード」と呼ばれる検索のテクニックです。「*(アスタリスク)」「?(疑問符)」を使うことで、


・部分一致の検索
・前方一致の検索
・後方一致の検索
・任意の文字数を指定して検索

といった高度な検索を行うことができます。

部分一致の検索

検索したい文字列の前と後ろに「*アスタリスク)」を付けるだけです。(部分一致には「前方一致」と「後方一致」がふくまれています)

前方一致の検索

前方一致とは、「検索したい文字列が最初にある文字列を探すこと」です。なので、検索したい文字列を入力し、その後ろに「*アスタリスク)」を付けるだけです。

後方一致の検索

後方一致とは、「検索したい文字列が最後にある文字列を探すこと」です。なので、「*アスタリスク)」を入力し、その後ろに検索したい文字列を付けるだけです。

任意の文字数を指定して検索

例えば、“鈴”から始める3文字の言葉が入力されているセルを検索するには、「鈴??」と入力します。

ここでは該当する値がないため「#N/A」が表示されています。

MATCH関数の応用②:複数の検査値でも検索できる

検索する上で、検査値は1つとは限りません。MATCH関数では複数の検査値でも結果が表示されるようになっているので、その方法についても紹介しておきます。

①検索範囲となる表を準備します。

検査値が複数となるため、表では検索範囲となる部分は2列以上あることになります。

②MATCH関数を使いたいセルに「=MATCH (」と入力します。

③「検査値」を入力します。「&」がポイントです。

2つ以上の検査値を指定するには、各検査値を「&」でつなぎ合わせます。

④「検索範囲」を指定します。ここでも「&」がポイントです。

検索範囲を指定するのですが、単純にドラッグでは指定してもうまく結果は表示されません。検索範囲に含まれる各列を「&」でつなぎ合わせることがポイントです。

※必要な場合は「型」を指定します。

⑤「Ctr」+「Shift」+「Enter」を押し、表示された結果を確かめます。

単純に「Enter」だけを押すと、場合によっては、「#VALUE」と表示されるかもしれません。これは「検索範囲」の指定の際に「&」を使ったことが原因です。「&」を使うことで厳密には配列を定義したことになり、「Ctr」+「Shift」+「Enter」(または「comand」+「option」+「Enter」)を押すことで配列を使っていることを宣言する必要があるようです。

該当する結果が無い場合には「#N/A」が表示されます。