INDEX・MATCHの使い方と、エラーが出ないまま間違う2つの書き方
INDEX・MATCHでいちばん怖いのは #N/A ではありません。エラーが一切出ないまま、探していないほうの商品名が入ってくることです。
2026年8月22日に、Googleスプレッドシートで実際に商品マスタを作り、正しい式と、よくある書き間違いを2つ並べて置いて、それぞれ何が返るかを確認しました。以下はその画面と結果です。
使った表
A列に商品名、B列に商品コード、C列に単価、D列に在庫。商品コードは昇順に並んでいません。この「並んでいない」ことが後で効いてきます。
探すキーは B11 に置いた P-205。正解は4行目の「ぶどう」です。

① 正しい書き方
=INDEX($A$2:$A$9, MATCH($B$11, $B$2:$B$9, 0))
結果は ぶどう。狙いどおりです。
やっていることは2段階です。
- MATCH — 探す範囲の中で「上から何番目か」を返します。単体で
=MATCH($B$11,$B$2:$B$9,0)を置くと 3 が返りました。B2:B9 の中でP-205は3番目、という意味です。 - INDEX — 取り出す範囲の「何番目」を取り出します。
INDEX($A$2:$A$9, 3)は A4、つまり「ぶどう」。
MATCHが出した番号をINDEXに渡す。これがINDEX・MATCHの全てです。詰まったときは、この記事のようにMATCH単体をどこかのセルに置いて、返ってくる数字を目で見るのがいちばん早いです。
② 第3引数を省略しただけ ― 「バナナ」が返る
同じ式から、MATCHの最後の 0 だけを消します。
=INDEX($A$2:$A$9, MATCH($B$11, $B$2:$B$9))
返ってきたのは バナナ。このセルにはエラー表示も、隅の赤い三角も出ませんでした(④で #N/A になったセルには赤い三角が付いています)。

数式バーを見ると、たしかに 0 がないだけで、それ以外は①と同じ式です。それでも別の商品名が入っています。
MATCHの第3引数は、省略すると 1(近似一致)になります。近似一致は「探す範囲が昇順に並んでいること」を前提にした探し方です。今回の商品コードは並んでいません。実際、=MATCH($B$11,$B$2:$B$9) を単体で置くと 4 が返りました。INDEX($A$2:$A$9, 4) は A5 = バナナ。①の 3 とは1つずれた位置です。
本当に並び順が原因なのかを確かめるため、式は一文字も変えずに、表だけを昇順にして同じことをしました。=SORT($A$2:$B$9,2,TRUE) で商品コード順に並べた表を別の場所に作り、そこへ同じ「第3引数を省略した式」を向けます。返ってきたのは ぶどう、MATCHの返り値は 6。正しくなりました。式ではなく並び順が原因だったと、これで言えます。
ただし、並んでいない表でなぜ 4 だったのかという内部の理由までは調べていません。確かめられたのは「並んでいなければ答えは信用できない」ことと、「並べたら正しくなった」ことの2つです。
MATCHの 0 は「省略してもいい引数」ではなく、省略すると別モードに切り替わるスイッチです。 完全一致で探したいなら必ず書きます。
③ INDEXの範囲だけ A:A にした ― 「みかん」が返る
今度は 0 は残したまま、INDEXの取り出す範囲だけを列全体にします。
=INDEX(A:A, MATCH($B$11, $B$2:$B$9, 0))
返ってきたのは みかん。これもエラーは出ません。
MATCHが返しているのは 3 ですが、これは「B2:B9 の中で3番目」という相対位置であって、行番号ではありません。それを INDEX(A:A, 3) に渡すと、A列全体の3番目、つまり A3 = みかん が取り出されます。見出し行のぶんだけ、まるごとずれています。
ここから言えるのは、INDEXの範囲とMATCHの範囲は、開始行をそろえて同じ高さにする、というルールです。片方が A:A(1行目から)で、もう片方が $B$2:$B$9(2行目から)だと必ずずれます。どちらも $2:$9 にそろえておけば起きません。
②も③も、式は一見それらしく、結果も商品名らしい文字列です。目視で気づける手がかりが何もないのがこの2つの厄介なところです。
④ 末尾の半角スペース ― これは #N/A になる
比較のために、末尾に半角スペースを1つ足したキー(=$B$11&CHAR(32))でも検索してみました。結果は #N/A。
画面のB15を見ると、表示は P-205 で、B11とまったく同じに見えます。それでも一致しません。見えない1文字が入っているためです。
#N/A は不親切に見えますが、間違いをその場で止めてくれるぶん、②や③よりはるかにましな失敗です。#N/A が出たら、まずMATCH単体を置いて数字が返るか確かめ、返らないならキー側の余分な空白や表記ゆれを疑います。実際に MATCH(TRIM($B$15), $B$2:$B$9, 0) のように TRIM を挟んだところ、同じキーで ぶどう が返りました。
まとめ ― 見直す順番
INDEX・MATCHの結果が怪しいと思ったら、この順に見ます。
- MATCHの第3引数に
0があるか。 無ければ近似一致になり、並んでいない表では黙って別の位置を返します(②)。 - INDEXの範囲とMATCHの範囲の開始行がそろっているか。 片方だけ列全体にすると、見出し行のぶんずれます(③)。
#N/Aなら、キーの余分な空白・表記ゆれ。 ここまで来ていれば、むしろ発見しやすい部類です(④)。
なお、この記事の結果はすべて2026年8月22日にGoogleスプレッドシート上で実際に式を置いて確認したものです。Excelなど他の表計算ソフトでは確認していないため、同じ挙動になるかどうかはここでは断定しません。
VLOOKUP・XLOOKUPとの使い分け
この記事でやっていたことは、実はVLOOKUPにはできません。B列の商品コードで探して、その左にあるA列の商品名を取り出しています。取り出す範囲と探す範囲を独立して書けるINDEX・MATCHだから成立する形です。
一方で、その「独立して2箇所書く」ことが、③のずれの原因でもありました。利点と弱点が同じところから出ています。
なお、INDEX・MATCHの利点としてよく挙げられる「列を挿入してもズレにくい」ことと、XLOOKUPとの書きやすさの比較については、今回は試していません。この記事で確かめたのは上の①〜④だけです。基礎のVLOOKUPの使い方も合わせてどうぞ。