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

ヒント

あらゆる方向で動作し、既定で完全一致を返す改善されたバージョンの MATCH である新しい XMATCH 関数を使用してみます。この関数は、前のバージョンよりも使いやすく便利です。

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_array内の値とlookup_valueを一致する方法指定します。 この引数の既定値は 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