VLOOKUP は、表の左端の列で値を探し、同じ行の指定した列にある値を返す関数です。書き方は =VLOOKUP(検索値, 範囲, 列番号, 検索の型) で、ぴったり同じ値を探したいときは最後の引数に FALSE か 0 を入れます。
VLOOKUP でいちばん多い失敗は、最後の引数を省いてしまうことです。Microsoft のヘルプには、何も指定しない場合の既定値は TRUE、つまり近似一致になると書かれています。左端の列が並べ替えられていない表でこれをやると、エラーも出ずに違う値が返ってきます。
このページでは、2026年10月時点の Microsoft のヘルプをもとに、引数の意味、作り方、完全一致と近似一致の違い、エラーの原因と直し方を順番に説明します。Excel for Microsoft 365 から Excel 2016 まで同じ考え方で使えます。
4つの引数の意味
| 引数 | 必須か | 中身 |
|---|---|---|
| 検索値 | 必須 | 探したい値。値そのものか、セルへの参照を指定します。 |
| 範囲 | 必須 | 検索値と戻り値を含むセル範囲。検索値は必ずこの範囲の最初の列にある必要があります。 |
| 列番号 | 必須 | 戻り値がある列の番号。範囲の左端の列を 1 として数えます。 |
| 検索の型 | 省略可 | TRUE または 1 で近似一致、FALSE または 0 で完全一致。省略すると TRUE とみなされます。 |
範囲には、名前付き範囲やテーブルも使えます。たとえば範囲が B2 から D7 なら、検索値は B 列になければなりません。列番号は B が 1、C が 2、D が 3 です。
VLOOKUP の作り方
- 探したい値(たとえば社員の名前や商品番号)を決めます。
- その値が左端の列に来るように範囲を選びます。検索値が C 列にあるなら、範囲は C 列から始めます。
- 返したい値が範囲の左から何列目かを数えます。
- 完全一致なら FALSE、近似一致なら TRUE を最後に入れます。
- 例:=VLOOKUP("前田",B2:E7,2,FALSE) は、B 列で「前田」を探し、同じ行の C 列の値を返します。
ヘルプのコツとして、調べたい値が、返したい値の左側に来るようにデータを並べておくことが挙げられています。VLOOKUP は右方向にしか探せないので、表の作り方で使いやすさが決まります。
数式の例で読み方を確認する
| 数式 | 意味 |
|---|---|
| =VLOOKUP(A2,A10:C20,2,TRUE) | A2 の値を A10:C20 の A 列で近似一致で探し、2列目の B 列の値を返します。 |
| =VLOOKUP("前田",B2:E7,2,FALSE) | B 列で「前田」と完全に一致する行を探し、C 列の値を返します。 |
| =VLOOKUP(A2,'Client Details'!A:F,3,FALSE) | 別のシート Client Details の A 列で A2 を完全一致で探し、C 列の値を返します。 |
| =VLOOKUP(90,A1:B100,2,TRUE) | A 列で 90 に最も近い値を探し、B 列の値を返します。A 列が並べ替えてある前提です。 |
3つ目のように、別のシートの表を参照することもできます。例のように、シート名を引用符で囲み、後ろに ! を付けて範囲を指定します。
完全一致と近似一致の違い
| 指定 | 動き | 向いている場面 |
|---|---|---|
| FALSE または 0 | 左端の列から検索値とまったく同じ値を探します。 | 名前、ID、商品番号など |
| TRUE または 1、省略 | 左端の列が数値順かアルファベット順に並んでいる前提で、最も近い値を探します。 | 点数から評価を決めるなど、区切りで探す表 |
近似一致を使うなら、左端の列を必ず並べ替えておきます。並べ替えていないと、想定外の値が返る可能性があります。迷ったら FALSE を書く、と覚えておけば事故は防げます。
エラーが出たときの原因
| 表示 | 主な原因 | 直し方 |
|---|---|---|
| #N/A | FALSE のとき、完全に一致する値が見つからない。TRUE のときは、検索値が左端の列の最小値より小さい。 | 検索値と表のデータの表記をそろえます。 |
| #REF! | 列番号が範囲の列数より大きい。 | 範囲を広げるか、列番号を数え直します。 |
| #VALUE! | 範囲の指定が 1 未満になっている。 | 範囲と列番号を確認します。 |
| #NAME? | 数式の中の名前に引用符がない。 | =VLOOKUP("Fontana",B2:E7,2,FALSE) のように引用符で囲みます。 |
| #SPILL! | 検索値に列全体を指定している。 | =VLOOKUP(A2,A:C,2,FALSE) のように 1 つのセルを参照するか、@ 演算子で固定します。 |
結果がずれないための5つのコツ
- 範囲は絶対参照にします。数式を下へコピーしても、同じ範囲を参照し続けます。
- 数値や日付を文字列として保存しません。左端の列がテキスト扱いだと、誤った値が返ることがあります。
- 近似一致を使うなら、先に左端の列を並べ替えます。
- 文字の検索ではワイルドカードが使えます。? は任意の 1 文字、* は任意の文字列です。記号そのものを探すときは前に ~ を付けます。
- 左端の列に余分なスペース、まっすぐな引用符と丸い引用符の混在、印刷されない文字がないか確認します。TRIM 関数や CLEAN 関数で整えられます。
5つ目は、ほかのシステムから貼り付けたデータでよく起きます。見た目は同じ名前なのに #N/A になるときは、末尾のスペースを疑ってください。
XLOOKUP という選択肢
Microsoft のヘルプでは、VLOOKUP の改良版として XLOOKUP 関数も案内されています。XLOOKUP は任意の方向で機能し、既定で完全一致を返すので、左端の列のルールや最後の引数の付け忘れを気にしなくて済みます。お使いの Excel で XLOOKUP が使えるなら、新しく作る表ではこちらを試す価値があります。
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
私のおすすめ
VLOOKUP を書くときの私のルールは2つです。最後の引数は省かずに FALSE と書くこと。範囲は検索したい列から始めること。この2つを守るだけで、VLOOKUP のトラブルの大半は避けられます。それでも #N/A が消えないときは、表の文字にスペースが紛れていないかを見てください。数式づくりで手が止まったときのためにChatGPT の使い方もまとめています。データを読む練習にはYouTube アナリティクスの見方も役に立ちます。
よくある質問
VLOOKUP の最後の引数を省略するとどうなりますか?
TRUE が指定されたものとみなされ、近似一致で検索されます。左端の列が並べ替えられていないと、想定外の値が返る可能性があります。
検索値はどの列に置けばいいですか?
範囲の最初の列に置く必要があります。たとえば検索値が C 列にあるなら、範囲は C 列から始めます。
列番号はどう数えますか?
範囲の左端の列を 1 として数えます。範囲が B2:D11 なら B が 1、C が 2 です。
#N/A が出るのはなぜですか?
FALSE を指定した場合、#N/A は完全に一致する値が見つからないことを示します。
#REF! が出るのはなぜですか?
列番号が範囲の列数より大きいと #REF! が返されます。
VLOOKUP の代わりになる関数はありますか?
XLOOKUP 関数が VLOOKUP の改良版として案内されています。任意の方向で機能し、既定で完全一致を返します。


