MATCH 関数
ヒント: あらゆる方向で動作し、既定で完全一致を返す改善されたバージョンの MATCH である新しい XMATCH 関数を使用してみます。この関数は、前のバージョンよりも使いやすく便利です。
MATCH 関数は、範囲 のセルの範囲で指定した項目を検索し、その範囲内の項目の相対的な位置を返します。 たとえば、範囲 A1:A3 に値 5、25、38 が含まれている場合、数式「=MATCH(25,A1:A3,0)」を入力すると、範囲内では 25 が 2 番目の項目であるため、数字 2 が返されます。
ヒント: 検索する項目自体ではなく、その項目の位置を調べる場合は、LOOKUP 関数の代わりに MATCH 関数を使用します。 たとえば、MATCH 関数を使用すると、INDEX 関数の行番号引数の値を指定できます。
書式
MATCH(検査値, 検査範囲, [照合の型])
MATCH 関数の書式には、次の引数があります。
-
検索値 必ず指定します。 検査範囲の中で照合する値を指定します。 たとえば、電話番号帳を使ってある人の電話番号を調べるとき、検査値としてその人の氏名を指定しますが、実際に検索するのは電話番号です。
検査値には、値 (数値、文字列、または論理値)、またはこれらの値に対するセル参照を指定できます。 -
検索範囲 必ず指定します。 検索するセルの範囲を指定します。
-
照合の型 省略可能です。 -1、0、1 の数値のいずれかを指定します。 照合の型には、検査範囲の中で検査値を探す方法を指定します。 この引数の既定値は 1 です。
次の表は、照合の型に基づいて関数が値を検索する方法を示しています。
照合の型 |
動作 |
1 または省略 |
MATCH 関数は、検査値以下の最大の値を検索します。 検査範囲の引数の値は、昇順の並べ替えでは、1 ~ 9、A ~ Z、あ~ん、FALSE ~ TRUE の順に配置されます。 |
0 |
MATCH 関数は、検査値と等しい最初の値を検索します。 検査範囲の引数の値は、任意の順序で指定できます。 |
-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 エラー値が返されます。
-
検索の型 が 0 で、検索値が文字列の場合は、 検査値の引数で、疑問符(?) やアスタリスク (*) をワイルドカード文字として使用できます。 ワイルドカード文字の疑問符は任意の 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 |