ピアのパソコン学習ガイド
メニュー
Excel関数

INDEX関数とMATCH関数の使い方|VLOOKUPでできない左の列を取り出す

ピアのパソコン学習ガイド 編集部2026年11月9日 更新

※写真はイメージです

書き方はこれだけ

=INDEX(取り出す列, MATCH(探す値, 探す列, 0))

MATCHで「探す値が上から何番目にあるか」を調べて、INDEXで「取り出す列のその番目」を取り出します。VLOOKUPと違って、探す列より左にある値も取り出せるのが強みです。新しいExcelならXLOOKUPでも同じことができます。

氏名から、左にある社員番号を取り出す F2 fx =INDEX(A2:A5,MATCH(E2,B2:B5,0)) A B C D E F 1 2 3 4 5 社員番号 氏名 部署 E-01 佐藤 総務 E-02 鈴木 経理 E-03 高橋 営業 E-04 田中 人事 氏名 社員番号 高橋 E-03
氏名の列から高橋を探すと3番目。社員番号の列の3番目「E-03」を取り出します。社員番号は氏名より左にあるので、VLOOKUPでは取り出せません。

この図の表をExcelファイルでダウンロード(問題と答えのシートつき)

まずMATCHだけで試す

MATCHは「上から何番目か」を返す D2 fx =MATCH(C2,A2:A5,0) A B C D 1 2 3 4 5 氏名 佐藤 鈴木 高橋 田中 探す名前 高橋 何番目 3
MATCHは、見つかった位置(上から何番目か)を数字で返します。最後の 0 は「完全に一致するものだけ」という意味で、ほぼ毎回 0 を入れます。

INDEXとMATCHを組み合わせる前に、MATCHだけを入れて正しい番号が出るかを確かめると、どこで間違えたかが分かりやすくなります。

VLOOKUP・XLOOKUPとの違い

VLOOKUPINDEX+MATCHXLOOKUP
左の列を取り出せる×○○
列を足しても式がずれない×(何列目かがずれる)○○
書きやすさ○△(2つ組み合わせる)○
使えるExcelすべてすべてMicrosoft 365・2021以降

XLOOKUPがあるならそっちのほうが楽です。ただ、古いExcelの職場や、取引先にファイルを渡すことが多いなら、どの版でも動くINDEX+MATCHを1回覚えておくと困らないと思います。

うまくいかないとき

1#N/A になる

探す値が探す列にない、空白や全角・半角が違う、などで見つかっていません。

直し方MATCHだけを入れて、番号が出るか確かめます。

2違う人の値が出る

入れた式MATCH(E2,B2:B5,1)
≠
正しい式MATCH(E2,B2:B5,0)

最後を 0 にしていないので、近い値を探しています。

直し方最後は 0 にします。

3下へコピーしたらずれた

取り出す列と探す列に $ が付いていません。

直し方$A$2:$A$5 のように固定します。

4取り出す列と探す列の行がそろっていない

入れた範囲A2:A5 と B3:B6
≠
正しい範囲A2:A5 と B2:B5

2つの範囲の始まりの行が違うと、1行ずれた値が出ます。

直し方同じ行から同じ行までにそろえます。

サンプルファイルで試す

黄色のセルにINDEX+MATCHの式を入れて、「答え」のシートと比べてください。

indexmatch.xlsx をダウンロード(無料・登録なし)

よくある質問

INDEXとMATCHはどんなときに使いますか?

探す列より左にある値を取り出したいとき、列の追加で式がずれないようにしたいとき、古いExcelでも動く式にしたいときに使います。

XLOOKUPがあればINDEX+MATCHはいりませんか?

XLOOKUPが使えるならほとんど置き換えられます。ただしExcel 2019以前では使えないので、ファイルを渡す相手の環境が分からないときはINDEX+MATCHが安全です。

Googleスプレッドシートでも使えますか?

はい。INDEX・MATCHともそのまま使えます。

一緒に覚えたい関数・操作

このページについて

操作の説明は Microsoft 365 の日本語版Excel(Windows)に合わせています。図はこのサイトで作ったもので、表の会社名・商品名・人名は架空です。運営者情報