Excel

MATCH関数 検索したいデータが何行目・何列目にあるかを調べる


このページでは、Microsoft Excel の MATCH(マッチ)関数の使い方について説明します。関数の中でも利用頻度が高い関数なので、覚えておくと便利です。


概要

膨大なデータが表にまとまっている場合、その中から検索したいデータがどこの位置(何行目、何列目)にあるのかが分かります。MATCH関数は、指定された照合の種類に従って検査範囲内を検索し、検索値と一致する要素の、配列内での相対的な位置を表す数値を返します。


書式

=MATCH(検索値, 検索範囲 [, 照合の種類])

引数 必須 説明
検索値 検索したい値やセル参照を指定します。文字列などの値を指定するときは、" "(ダブルクォーテーション)で囲います。検索値は、第2引数の「検索範囲」の中から検索します。
検索範囲 検索するセルの範囲を指定します。
照合の種類 ここの設定は任意ですが、「検索範囲」の中から「検索値」を見つける方法として、以下の通り1、0、-1を指定することができます。
1(または省略) 「検索値」以下の最大の値を検索します。この場合は 「検索範囲」 のデータを昇順に並べ替えておく必要があります。
0 「検索値」と完全に一致する値を検索します。「0」のときのみ「検索値」にアスタリスク(*)やはてな(?)などのワイルドカード文字列が指定できます。
-1 「検索値」以上の最小の値を検索します。この場合は「検索範囲」のデータを降順に並べ替えておく必要があります。


使用例

基本編
【例1】人事部が従業員リストから特定の従業員を探す方法

従業員リストの中から「山田」の位置を検索する場合を紹介します。
第3引数は「0」を指定することによって、完全一致する従業員名を検索しています。

スクリーンショット 2020-04-06 17.24.01 2020-04-06 08_33_40.png


結果は「5」です。これは、指定した検索範囲内の5行目にあるという意味です。エクセル全体の行数ではありませんのでご注意ください。

スクリーンショット 2020-04-06 17.38.07 2020-04-06 08_39_11.png




【例2】給与(月額)が60万円以上の中で一番低い給与をもらっている従業員を調べる

まずは、正しく検索するためには、給与(月額)を降順に並び替える必要があります。表の左上にカーソルを合わせ、メニューから「表」を選びます。

スクリーンショット 2020-04-06 17.40.11 2020-04-06 08_51_39.png


そうすると自動的に表が認識されます。「先頭行を見出しとして使用する」を有効にします。些細なことですが、「表のスタイル」から簡単に好みのデザインに変更することも可能です。

スクリーンショット 2020-04-06 17.41.08 2020-04-06 08_43_03.png


「給与(月額)」の右にある逆三角形を選択し、「大きい順」または「降順で並び替え」を選択すると、月収が多い従業員から順番に並び替えられます。

スクリーンショット 2020-04-06 18.16.23 2020-04-06 09_18_17.png


検索値をセル(H5)を参照し、60万円を代入します。第3引数には 「-1」 を使うことで、検索範囲の中で 検索値以上の最小値を検索 しています。「60万円以上の給与をもらっている従業員の中で、一番安い給与をもらっているのは何行目か」を表示させています。

スクリーンショット 2020-04-06 18.19.55 2020-04-06 09_23_21.png


結果は、「3」行目となります。

スクリーンショット 2020-04-06 18.23.26.png




【例3】給与(月額)が35万円以下の中で一番高い給与をもらっている従業員を調べる

例2と同様に 検索値をセル(H5)を参照し、35万円を代入します。
第3引数には 「1」 を使うことで、検索範囲の中で 検索値以下の最大値を検索 しています。「35万円以下の給与をもらっている従業員の中で、一番高い給与をもらっているのは何行目か」を表示させています。結果は、30万円のため、「5」行目となります。


【例4】対象の文字列がある列を調べる

今までの例は、対象の検索値が何行目にあるかを調べる方法でしたが、何列目かを調べるのも同様に可能です。セルI4にMATCH関数の式を入れます。第1引数に検索値セルH4を参照し「給与(月額)」を代入し、第2引数に検索範囲「B4:F4」を指定し、第3引数に「0」を入れます。

スクリーンショット 2020-04-07 16.31.44 2020-04-07 07_33_30.png


「給与(月額)」は、検索範囲の中で5列目にあるので、「5」が結果となります。

スクリーンショット 2020-04-07 16.39.34 2020-04-07 07_40_40.png


応用編(ワイルドカードを使った検索)

ワイルドカードを使うと更に色々な検索ができるようになります。ワイルドカードとは、検索をする際に使用する特殊文字の種類のことで、「?」(疑問符)は任意の一文字、「*」(アスタリスク)は長さ0文字以上の任意の文字列にマッチするパターンとして、主にコマンドラインと呼ばれるコンピューターに司令を出す際に使うものですが、エクセルのMATCH(マッチ)関数でも使用可能です。


【例5】ワイルドカードを使った部分一致検索

従業員の名前を部分的にしか覚えておらず、それでも検索をしたい場合に便利です。ここでは「鈴」という文字の前後に他の文字列が入るセルを検索します。結果は、「鈴木」が4行目にあるので、「4」が結果となります。ここで、鈴の前には文字がありませんが、その場合は無視されます。

スクリーンショット 2020-04-08 23.56.22 2020-04-08 15_00_28.png

スクリーンショット 2020-04-09 0.00.29 2020-04-08 15_01_04.png


【例6】ワイルドカードを使った前方一致検索

「木」から 始まる 文字列を検索します。

スクリーンショット 2020-04-09 0.01.59 2020-04-08 15_04_06.png


【例7】ワイルドカードを使った後方一致検索

「中」で 終わる 文字列を検索します。

スクリーンショット 2020-04-09 0.05.01 2020-04-08 15_06_12.png


【例8】ワイルドカードを使った任意の文字を検索

「佐」から 始まる2文字 を検索します。

Screenshot 2020-04-09 00.14.45.png


【例9】複数条件で検索する方法

MATCH関数は複数の検索値に当てはまる位置を求めるのにも使えます。例えば、名字と名前を一緒にフルネームで従業員名を検索することができます。そのためには、まず、検索値にはセルM5とN5を結合した値を入れます。結合するためには、「&」を使います。同様に、検索範囲にもC列とD列のデータを結合します。

PNGイメージ 2020-04-11 09_43_17.png


今回、検索したのは「鈴木啓太」さんなので、4行目にあるという結果が分かります。

スクリーンショット 2020-04-11 18.43.42 2020-04-11 09_44_35.png


このようにMATCH関数を使えば様々な方法で求めている値を検索することが可能です。

116

関連したノート
Excel
INDEX関数

行と列で指定した位置の値を求める

Andnote公式


一覧に戻る