【Excel】MATCH関数-配列に含まれる値を検索し一致する要素の相対的な位置を数値で返す関数-


(約文字)

2020-08-26

  • Keyword
  • Excel
  • MATCH関数
  • 配列
  • 検索
  • 位置
  • 数値

MATCH関数とは

エクセルの「MATCH関数」は照合の型に従って参照又は配列に含まれる値を検索し、検査値と一致する要素の相対的な位置を数値で返す関数です。

検索項目自体(値)ではなく、検索項目の相対的な位置を調べる場合は、LOOKUP関数の代わりにMATCH関数を使用します。例えば、MATCH関数を使用すると、INDEX関数の行番号の引数となる値を指定することができます。

簡単に言えば、探したい数値や文字が表の何行目(何列目)にあるか、調べらることができるのがMATCH関数です。

構文と引数

  • 365
  • 2019
  • 2016
  • 2013
  • 2010
  • 2007

=MATCH(検査値, 検査範囲, [照合の型])

引数必要性内容
検査値必須検査範囲の中で検査する値を指定します。数値、文字列、論理値、セル参照を指定できます。
検査範囲必須検査するセルの範囲を指定します。
[照合の型][省略可]検査範囲の中で検査値を探す方法を数値(下表参照)で指定します。
照合の型動作
1or省略検査値以下の最大値を検索します。検査範囲の値は、昇順で配置する必要があります。
0検査値と等しい最初の値を検索します。検査範囲の値は、任意の順序で指定できます。(文字列の検査値にワイルドカード文字が使用できます)
-1検査値以上の最小値を検索します。 検査範囲の値は、降順で配置する必要があります。

MATCH関数の解説

  • ・MATCH関数は、検査範囲内で一致する検査値の”位置”が返されます。例えば、MATCH ("b", {"a", "b", "a", "b", "c"}, 0)は2が返されます。これは、配列("a", "b", "c")の相対的な位置になります。
  • ・MATCH関数は、英字の大文字と小文字は区別されません。
  • ・MATCH関数で検査値が見つからない場合は、エラー値#N/Aが返されます。
  • ・照合の型に0を指定した場合で、検索値に文字列を指定した場合は、 検査値に疑問符(?)やアスタリスク(*)をワイルドカード文字として使用できます。ワイルドカード文字の疑問符(?)は任意の1文字を表し、アスタリスク(*)は1文字以上の任意の文字列を表します。ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前にチルダ(~)を付けます。
出典:Microsoft - Office サポート

MATCH関数の使用例

製品個数
バナナ50
オレンジ38
リンゴ40
ナシ41

B2~B5のセル範囲から39の位置を調べます。

=MATCH(39,B2:B5,1)

=2(B2~B5のセル範囲に39に一致する値がないため、39以下の最大値である38の位置が返されます。)

B2~B5のセル範囲から41の位置を調べます。

=MATCH(41,B2:B5,0)

=4

関連する関数

  • VLOOKUP関数:配列の左端列で特定の値を検索し、対応するセルの値を返す関数
  • MATCH関数:照合の型に従い参照や配列に含まれる値を検索し、検査値と一致する要素の相対的な位置を数値で返す関数
  • INDEX関数:セル参照や配列から指定された位置の値を返す関数
  • INDIRECT関数:参照文字列によって指定されるセルに入力されている文字列を介して、間接的にセルを指定する関数