Excel 検索値に対応するセルの相対的な位置を取得(MATCH関数)

2020年5月12日

指定した範囲の中で検索し対応するセルがある場合、

検索対象セル範囲の最も左上からの相対的な位置を取得する関数です。

単独で使用することは稀でINDEX関数OFFSET関数などとの併用が多いです。

この記事では、その関数の仕様と使用例を紹介します。

仕様

=MACTH(検査値、検査範囲、照合の種類)
引数省略時の値説明
検査値省略不可検索する値を指定。
検査範囲省略不可検査値を検索するセル範囲。
照合の種類1検索の方法を指定。
・1:検索値以下で最大。検査範囲を昇順で並べる必要あり
・0:完全一致
・-1:検索値以上で最小。検査範囲を降順で並べる必要あり
各引数の詳細

使用例:照合の種類による結果の違い

それぞれの結果を例示します。

上の青い表が検査範囲で下の緑の表が検査値と関数の結果です。

照合の種類:1(検索値以下で最大)

まず検査範囲を昇順に並べておく必要があります。

この例では1~19までに該当すると検査表の1番上に対応するため1を取得します。

80を超えると全て5になります。

0より小さいと該当するものがないため#N/Aエラーとなります。

照合の種類:1(検索値以下で最大)の実施例
照合の種類:1(検索値以下で最大)の実施例

照合の種類:0(完全一致)

照合の種類:0(完全一致)の指定では検査範囲を並び替える必要はありません。

この例では完全に一致するものがあれば、その位置を取得します。

1でも相違すれば#N/Aエラーとなります。

照合の種類:0(完全一致)の実施例
照合の種類:0(完全一致)の実施例

照合の種類:-1(検索値以上で最小)

まず検査範囲を降順に並べておく必要があります。

この例では61~80までに該当すると検査表の1番上に対応するため1を取得します。

0より小さいと全て5になります。

80より大きいと該当するものがないため#N/Aエラーとなります。

照合の種類:-1(検索値以上で最小)の実施例
照合の種類:-1(検索値以上で最小)の実施例

横方向の範囲への使用

相対位置であるため横方向の検査範囲にも適用可能です。

横方向の範囲への使用例
横方向の範囲への使用例

スピルを利用する方法とメリット

Office365やExcel2019以降ではスピルという形式で記述可能です。

これは複数セルに数式をコピーする場合に便利な機能です。

スピルの利用には引数の検査値を複数セルの範囲で指定します。

スピルでMATCH関数を記述する例(C10セル)
スピルでMATCH関数を記述する例(C10セル)

数式を入力するのは最初の一つのセルですが、

引数で指定した高さ分、数式がセルのコピーなしで自動拡大されます。

C10に指定したMATCH関数がC20まで自動拡大
C10に指定したMATCH関数がC20まで自動拡大

スピルを利用することで今回の例では、

C10セルに入力するだけでよいため(C20以降にコピーペーストが不要)

以下のメリットがあります。

  • 入力の手間が少ない(数式のセルが多いほど効果が大きい)
  • 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
  • 絶対参照が不要
  • 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。

関連記事

INDEX関数とMATCH関数を組み合わせてVLOOKUP関数より高度な検索を行う方法

VLOOKUP関数で左側の値を取得する方法

複数のプルダウンを連動させる方法

検索結果を座標で取得する方法

VLOOKUP関数で画像を取得する方法

関数の仕様と使い方の記事一覧