【Excel】MATCH関数|ワイルドカードで部分一致検索や複数行・複数列から検索まで解説

MATCH関数

MATCH関数を使用すると、検索範囲内で検索値がどの位置にあるのかを表す数値を求めることができます。

構文

MATCH(検索値, 検索範囲, 検索方法)

引数

引数説明
検索値 検索対象のデータを入力するセルを指定します。
数値、文字列、論理式やセル参照で指定することができます。
検索範囲 検索するセル範囲を1行または1列で指定します。
検索方法「0」を選択すると完全に一致するものを検索します。

「1」を選択すると検索値に一致するものがない場合、検索値以下の最大値を検索します。正しい値を取得するために、検索範囲は昇順に並べておく必要があります
※「1」は省略することができます。これは何も指定しなかった場合、「1」が選択されてしまうことを意味しますので注意しましょう。筆者は実務では「0」(完全一致)を指定することが圧倒的に多いです。

「-1」を選択すると 検索値に一致するものがない場合、 検索値以上の最小値を検索します。正しい値を取得するために、 検索範囲は降順に並べておく必要があります

手順

上の各社の売上高を降順にした表からJ社の売上ランキングをセルのB12に返す場合、次のように入力します。

=MATCH(A12,A2:A9,0)

「J社」というセルA12に入力された文字列を赤色のセル範囲A2:A9の上端から4番目に見つけ出すことができますので、戻り値としては「4」が返されます。

各社の売上高を降順にした表からJ社は上から4番目に位置することがわかりますので売上ランキングは4位であることがわかりました。

MATCH関数にワイルドカードを使用して部分一致検索

MATCH関数にワイルドカードを使用すると部分一致検索ができます。

ワイルドカード(「*(アスタリスク)」や「?(疑問符)」)を使って条件を指定すると、部分的に等しい文字列を検索することができます。

ワイルドカード意味検索文字列検索結果
?任意の1字?田「田」の前に任意の1文字がつく
例)
柳田
山田
*任意の文字列
(0文字以上)
*原「原」で終わる文字列を検索
例)
清原
小笠原

上の英語の点数を降順にした表から田中さんや山本さんの順位をそれぞれセルのC12やC13に返す場合、次のように入力することができます。

=MATCH(“田?”,B3:B9,0)
=MATCH(“?本”,B3:B9,0)

または

=MATCH(“田*”,B3:B9,0)
=MATCH(“*本”,B3:B9,0)

先頭に「田」がつく人は田中さんだけですので、セル範囲B3:B9 の上端から4番目に見つけ出すことができますので、戻り値としては「4」が返されます。

後ろに「本」がつく人は山本さんだけですので、セル範囲B3:B9 の上端から2番目に見つけ出すことができますので、戻り値としては「2」が返されます。

英語の点数を降順にした表から田中さんと山本さんはそれぞれ上から4番目と2番目に位置することがわかりますので、田中さんの英語の点数は4位、山本さんは2位であることがわかりました。

MATCH関数で複数行または複数列にまたがる範囲から検索

結論から書きますと、MATCH関数では検索するセル範囲は1行または1列で指定しますので、複数行または複数列にまたがる範囲から検索することはできません。

ただし、行と列にそれぞれ項目名などがある表の中で、行と列が交差するセルの値を返したいときは、MATCH関数を使い、行数と列数を指定してINDEX関数にネストさせる方法があります。

詳細は以下の記事で解説していますので参考にしてください。

【Excel】INDEX関数|MATCH関数と組合わせるとセル範囲から検索する行と列の指定が便利に

Excelを一度体系的に学ぶと、目に見えて生産性が飛躍的に向上します。

MOS Excel※は資格の取得、及び資格取得までのプロセスを通じて体系的にExcelスキルを身につけることができますのでコスパが良くおすすめです。

※Microsoft Office Specialist(MOS)ExcelはExcelの利用能力を証明する世界的な資格です。

筆者は「スペシャリスト(一般)」と「エキスパート(上級)」両方を取得して体系的にスキルを身に着けました。

MOS試験対策でどのテキストを使うべきか悩まれる方も多いのではないかと思いますが、以下がおすすめです。

今回の内容が参考になれば幸いです。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA