※本ページにはプロモーション(広告)が含まれています
ExcelやGoogleスプレッドシートで、指定した値が配列・範囲の何番目にあるかを返す関数。INDEX関数と組み合わせて強力な検索が可能。
詳しい解説
MATCH関数は、ExcelおよびGoogleスプレッドシートで使える検索系関数のひとつです。指定した値を指定した範囲(行または列)の中から探し、その値が何番目(位置番号)にあるかを数値で返します。
書式は `=MATCH(検索値, 検索範囲, 照合の種類)` の3引数です。照合の種類は0(完全一致)、1(以下の最大値)、-1(以上の最小値)から選択します。実務ではほぼ0(完全一致)を使います。
MATCH関数単体では「何番目か」という位置しか返せませんが、INDEX関数と組み合わせることで威力を発揮します。`=INDEX(返す範囲, MATCH(検索値, 検索範囲, 0))` の形にすると、VLOOKUPと同様の表引きができ、かつ検索列が表の左端である必要がないという柔軟性があります。
たとえば商品名から価格を引きたいとき、VLOOKUP(VはVertical=縦方向の意)では検索列が必ず左端でなければなりませんが、INDEX+MATCHなら左右を問わず任意の列から引くことができます。また、MATCH関数でエラーが出た場合はIFERROR関数を外側に追加して代替値を返すのが定番パターンです。
Microsoft 365では後継のXLOOKUP関数が登場しましたが、INDEX+MATCHの組み合わせは旧バージョンのExcel・Googleスプレッドシートの両方で使えるため、互換性の高い定番テクニックとして今も広く使われています。
社員名簿でB列に社員番号、D列に所属部署が入っているとします。VLOOKUPは左端列からしか検索できないため、D列を返すには表を作り直す必要があります。しかし `=INDEX(D:D, MATCH("A001", B:B, 0))` と入力すれば、B列で「A001」を探した位置番号を使ってD列の部署名を取得できます。表の構造を変えずに柔軟に検索できる点がMATCHとINDEXを組み合わせる最大のメリットです。
別の呼び方
INDEX+MATCH
マッチ関数
位置検索関数
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!