MATCH 関数

適用先
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016

ヒント

新しい XMATCH 関数を使用してみてください。これは MATCH の改良版であり、任意の方向で機能し、既定で完全一致を返します。これにより、以前の関数よりも使いやすく便利になります。

MATCH 関数は、セルの範囲内で指定した項目を検索し、その範囲内の項目の相対的な位置を返します。 たとえば、範囲 A1:A3 に値 5、25、38 が含まれている場合、数式「=MATCH(25,A1:A3,0)」を入力すると、範囲内では 25 が 2 番目の項目であるため、数字 2 が返されます。

ヒント

検索する項目自体ではなく、その項目の位置を調べる場合は、LOOKUP 関数の代わりに MATCH 関数を使用します。 たとえば、MATCH 関数を使用して、INDEX 関数の row_num 引数の値を指定することができます。

書式

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

MATCH 関数の書式には、次の引数があります。

  • lookup_value 必須。 lookup_arrayで一致させる値。 たとえば、電話番号帳を使ってある人の電話番号を調べるとき、検査値としてその人の氏名を指定しますが、実際に検索するのは電話番号です。

    検査値には、値 (数値、文字列、または論理値)、またはこれらの値に対するセル参照を指定できます。

  • lookup_array 必須。 検索するセルの範囲を指定します。

  • match_type オプション。 -1、0、1 の数値のいずれかを指定します。 match_type 引数は、Excel が lookup_valuelookup_array の値を照合する方法を指定します。 この引数の既定値は 1 です。

    次の表は、照合の型に基づいて関数が値を検索する方法を示しています。

照合の型 動作
1 または省略 MATCH は、 lookup_value 以下の最大値を検索します。 lookup_array引数の値は、昇順で配置する必要があります (例: ...-2、-1、0、1、2、...、A-Z、FALSE、TRUE)。
0 MATCH は、 lookup_value と完全に一致する最初の値を検索します。 lookup_array引数の値は任意の順序にすることができます。
-1 MATCH は、lookup_value 以上の最小値を検索します。 lookup_array 引数の値は、TRUE、FALSE、Z-A、...2、1、0、-1、-2、...など。
  • MATCH は、値自体ではなく、 lookup_array内の一致した値の位置を返します。 たとえば、 MATCH("b",{"a","b","c"},0) は 2 を返します。これは、配列 {"a","b","c"} 内の "b" の相対位置です。
  • MATCH 関数では、英字の大文字と小文字は区別されません。
  • MATCH 関数で検査値が見つからない場合は、#N/A エラー値が返されます。
  • match_type が 0 で lookup_value がテキスト文字列である場合は、lookup_value 引数でワイルドカード文字の疑問符 (?) とアスタリスク (*) を使用できます。 ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは 1 文字以上の任意の文字列を表します。 ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前にチルダ (~) を付けます。

使用例

次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 数式を選択して、F2 キーを押し、さらに Enter キーを押すと、結果が表示されます。 必要に応じて、列幅を調整してすべてのデータを表示してください。

製品 回数  
バナナ 25
オレンジ 38
リンゴ 40
ナシ 41
数式 説明 結果
=MATCH(39,B2:B5,1) B2:B5 のセル範囲から 39 を検索しますが、一致する値がないため、この値以下の最大の値 38 の位置が返されます。 2
=MATCH(41,B2:B5,0) B2:B5 のセル範囲から 41 の位置を調べます。 4
=MATCH(40,B2:B5,-1) B2:B5 のセル範囲は降順に並べ替えられていないため、エラーが返されます。 #N/A