MATCH
関連項目
指定された 照合の型 に従って 検査範囲 内を検索し、検査値 と一致する要素の相対的な位置を表す数値を返します。検査値 で指定したセルに含まれる値ではなく、検査値 の範囲内の位置を調べる場合は、その他の検索/行列関数の代わりに、MATCH 関数を利用してください。
書式
MATCH(検査値, 検査範囲, 照合の型)
検査値 表の中で必要な項目を検索するために使用する値を指定します。
- 検査値 には、実際に検索する値ではなく、検査範囲 の中で照合する値を指定します。たとえば、電話番号帳を使ってある人の電話番号を調べるとき、検査値 としてその人の氏名を指定しますが、実際に検索するのは電話番号です。
- 検査値 には、数値、文字列、論理値、またはこれらの値に対するセル参照を指定できます。
検査範囲 検査値 を含む隣接したセル範囲を指定します。検査範囲 は、配列または配列に対するセル参照を指定してもかまいません。
照合の型 -1、0、1 の数値のいずれかを指定します。照合の型 には、検査範囲 の中で 検査値 を探す方法を指定します。
- 照合の型 に 1 を指定すると、検査値 以下の最大の値が検索されます。このとき 検査範囲 は、-2、-1、0、1、2、...、A、...、Z、...、ア、...、ン、...、FALSE、TRUE のように昇順で並べ替えられておく必要があります。
- 照合の型 に 0 を指定すると、検査値 に一致する値のみが検索の対象となります。このとき 検査範囲 を並べ替えておく必要はありません。
- 照合の型 に -1 を指定すると、検査値 以上の最小の値が検索されます。このとき 検査範囲 は、TRUE、FALSE、...、ン、...、ア、...、Z、...、A、...、2、1、0、-1、-2、... のように降順で並べ替えられている必要があります。
- 照合の型 を省略すると、1 であると見なされます。
解説
- MATCH 関数では、指定したセルに含まれている値ではなく、検査範囲 内にある 検査値 に一致する値の位置が返されます。たとえば、MATCH("b",{"a","b","c"},0) = 2 (配列 {"a","b","c"} の中で "b" の相対位置は 2 です)。
- MATCH 関数では、英字の大文字と小文字は区別されません。
- 検査値 が見つからない場合は、エラー値 #N/A が返されます。
- 照合の型 に 0 を指定し、検査値 が文字列である場合、検査値 の中で、アスタリスク (*)、疑問符 (?) のワイルドカード文字を使うことができます。ワイルドカード文字のアスタリスクは任意の文字列を表し、疑問符は任意の 1 文字を表します。検査値 に通常の文字としてアスタリスクまたは疑問符を指定するときは、それぞれの文字の前に、"~*)" のように半角のチルダ (~) を付けます。
使用例
セル範囲 C2:C8 には、パーセンテージの表示形式が設定されています。
このワークシートで、
MATCH(39000,B2:B8,1) = 3
MATCH(38000,B2:B8,0) = 2
MATCH(39000,B2:B8,-1) = #N/A
照合の型 として -1 を指定した場合、セル範囲 B2:B8 に含まれる値の並び方が正しくありません。値は降順に並べ替えられておく必要があります。
"円" という名前がセル範囲 A2:A8 を参照し、さらに "円→ドル" という名前がセル範囲 A2:C8 を、"収益" という名前が \6,301,126.33 という数値を含むセルを参照しているとします。LOOKUP 関数と MATCH 関数を使って、次のような文字列を作成し
"米国内での税率は "&LOOKUP(収益,円→ドル)&" で、上記一覧表では "&MATCH(収益,円)&" 番目の税率になります。"
文字列中の関数を計算すると、次のような結果になります。
"米国内での税率は 22.41% で、上記一覧表では 7 番目の税率になります。"