スプレッドシートのVLOOKUP関数の使い方(初心者がつまずくポイントも解説)

「商品コードから商品名を調べたい」「社員番号から氏名を引っ張りたい」——そんな時に欠かせないのがVLOOKUP関数。

スプレッドシートの関数の中でも特に「ビジネスで必須」と言われるが、いざ使ってみると「#N/Aって出た」「オートフィルしたら変な値になった」とつまずく人が多い関数でもあります。

この記事では、VLOOKUPの基本の使い方に加えて、初心者が実際にハマりやすいエラーとその直し方まで、リュージとチョコちゃんの会話でまるごと解説していきます。

VLOOKUP関数って何をしてくれるの?

リュージ、「VLOOKUP」ってビジネス必須の関数だってよく聞くんだけど、結局何をしてくれるものなの?

一言でいうと「表を縦方向に検索して、対応する値を取り出す関数」だね。例えば商品コードの一覧表があったとして、あるコードに対応する商品名や単価を、目視で探さずに自動で引っ張ってこられるんだ。

あ、それめちゃくちゃ助かる!僕、いつも別シートの表と見比べながら手入力してて、たまに1行ズレて全部間違えちゃうことあるんだよね…

まさにそういう「目視での転記ミス」を防ぐためにある関数なんだ。「V」はVertical(垂直)の意味で、縦に並んだ表を検索する。ちなみに横方向に検索したい場合は「HLOOKUP」という兄弟関数もあるよ。

VLOOKUP関数は、指定した表を縦方向(Vertical)に検索し、検索値に対応する値を取り出す関数である。商品コードから商品名や単価を取得する、社員番号から氏名を取得するなど、目視での転記作業を自動化し、入力ミスを防ぐ目的で使われる。横方向に検索する場合はHLOOKUP関数を使う。

4つの引数を理解しよう

じゃあ、実際にどう入力すればいいの?関数って書き方が独特で毎回覚えられなくて…

基本の形は「=VLOOKUP(検索キー, 範囲, 指数, 並べ替え済み)」の4つ。①検索キー=どのデータで探すか、②範囲=どこを検索するか、③指数=範囲の中の何列目を取り出すか、④並べ替え済み=完全一致で探すかどうか、という意味だよ。

4つ目の「並べ替え済み」って何を入れればいいの?そこだけイメージが湧かない…

実務ではほぼ「FALSE」一択、と覚えてしまってOK。「TRUE」にすると検索キーに最も近い値を拾ってしまうから、商品コードや社員番号のような固有の値を正確に一致させたい場合には向かない。「FALSE」なら完全に一致するものだけを探してくれるよ。

「基本はFALSE」って覚えておけば安心だね。あと「指数」も、範囲の何列目かってどうやって数えるの?

「範囲」に指定したセル範囲の、一番左の列を「1」として数えるんだ。商品コード・商品名・単価という並びの表なら、商品名は2列目だから「2」、単価は3列目だから「3」になるよ。

VLOOKUP関数の基本形は「=VLOOKUP(検索キー, 範囲, 指数, 並べ替え済み)」。検索キーは検索したい値、範囲は検索対象のセル範囲、指数は範囲の左端を1列目として数えた取得したい列番号、並べ替え済みは完全一致で検索する場合は基本的に「FALSE」を指定する。

つまずきポイント①:オートフィルすると変な値になる

1行目はうまくいったんだけど、その数式を下にコピーしたら、2行目からおかしな値になっちゃったんだけど…なんで!?

それ、初心者が最初にぶつかる壁の代表例だね。原因は「範囲」の指定が絶対参照になっていないこと。オートフィルで数式をコピーすると、セル参照は自動でズレる仕組みになっているんだけど、検索対象の表(範囲)まで一緒にズレてしまうと、本来検索したい表からどんどん外れていくんだ。

「範囲」はズレちゃダメで、「検索キー」だけはズレてほしい、ってことだね。どうすれば範囲だけ固定できるの?

「範囲」のセル範囲をドラッグで選択した直後に、キーボードの「F4」キーを押してみて。「H3:J11」のような表記が「$H$3:$J$11」に変わるはず。この「$」マークがついた状態が「絶対参照」で、コピーしても位置がズレなくなるんだ。

「F4キー1発」で覚えられそう!今度から「範囲」を選んだら反射的にF4を押すようにする。

VLOOKUPの数式をオートフィルでコピーした際に値がおかしくなる主な原因は、「範囲」の指定が絶対参照になっていないことである。範囲のセルをドラッグして選択した直後に「F4」キーを押すと「$H$3:$J$11」のような絶対参照に切り替わり、コピーしても検索対象の表がズレなくなる。

つまずきポイント②:「#N/A」エラーが出た時の対処法

絶対参照は解決したんだけど、今度は「#N/A」ってエラーが出るようになった…これは何?

「#N/A」は「検索キーが見つかりませんでした」という意味のエラー。原因はいくつかあるけど、一番多いのは「検索キーが、範囲の一番左端の列にない」パターンだね。VLOOKUPは範囲の左端列しか検索してくれないから、検索したい列が2列目や3列目にあると、いくら探しても見つからずエラーになる。

あ、確認したら、確かに検索したい列が表の真ん中にあったかも…。他にも原因ってある?

意外と多いのが「表記ゆれ」。例えば検索キーのセルには全角の「A001」、検索される側の表には半角の「A001」が入っていると、見た目はそっくりでも別の文字として扱われて一致しないんだ。あとは、セルの前後に余分な半角スペースが入っているケースもよくある。

見た目じゃ気づけないやつだ…。あと、さっき教えてもらった「並べ替え済み」を忘れたらどうなるの?

これも要注意ポイント。4つ目の引数は省略すると自動的に「TRUE」として扱われてしまうんだ。TRUEだと近い値を拾ってしまうから、#N/Aは出なくても、実は間違った値がこっそり表示されている、という一番怖いパターンにつながることもある。「FALSE」を書き忘れていないか、まずそこを疑ってみて。

「#N/A」エラーの主な原因は、①検索キーが範囲の左端列にない、②全角・半角の違いや余分な空白などの表記ゆれ、③検索キー自体の入力ミス、の3つ。また、4つ目の引数「並べ替え済み」を省略すると自動的にTRUE扱いとなり、エラーは出ないまま誤った近似値が表示されることもあるため、FALSEの記入漏れも合わせて確認したい。

エラー表示を見た目よく整える「IFERROR」

ちなみに、検索キーがまだ空欄のセルにも「#N/A」が表示されちゃうんだけど、これ消せないの?表がエラーだらけで見た目が悪いんだよね…

それは「IFERROR」という関数をVLOOKUPの外側に組み合わせると解決するよ。「=IFERROR(VLOOKUP(…), “”)」のように書くと、エラーが出た場合だけ空欄や好きな文字を表示できる。「データなし」みたいな文言にしておけば、見る人にも親切な表になるね。

元のVLOOKUMPをそのままカッコで囲む感じでいいんだね。これなら僕でも組み合わせられそう!

検索キーが空欄の行にまでエラーが表示されて見づらい場合は、IFERROR関数と組み合わせるとよい。「=IFERROR(VLOOKUP(検索キー, 範囲, 指数, FALSE), "")」のようにVLOOKUP全体を囲むことで、エラー発生時だけ空欄や任意の文字列を表示させ、見た目を整えられる。

数式が合っているか不安な時はClaudeに見てもらう

今回教えてもらったポイントは覚えたけど、いざ自分の表で作ろうとすると、また新しいエラーに出会いそうで不安なんだよね…

そういう時は、実際に入力した数式と、出ているエラーの内容をそのままClaudeに伝えてみるといいよ。「このVLOOKUMPの数式でこういうエラーが出ています、原因は何でしょうか」と聞けば、その数式のどこに問題がありそうか一緒に確認してくれる。

数式をゼロから作ってもらうこともできる?

もちろん。「A列の商品コードから、B列の表を参照して商品名を取得したい」のように、表の状況を言葉で伝えれば、そのまま貼り付けられる数式を提案してくれる。ただしシートの構成によって微調整が必要な場合もあるから、提案された数式をそのまま鵜呑みにせず、自分の表に当てはめて動くか確認する癖はつけておくといいね。

VLOOKUMPの数式でエラーが解決しない場合は、入力した数式とエラー内容をそのままClaudeに伝えて原因を一緒に確認してもらう方法がある。また、表の構成を言葉で説明すれば数式そのものを提案してもらうことも可能。ただし提案された数式は自分の表で実際に動作するか確認したうえで使うことが望ましい。

まとめ:VLOOKUP関数 早見表

項目ポイント
基本の構文=VLOOKUP(検索キー, 範囲, 指数, 並べ替え済み)
並べ替え済み実務では基本的に「FALSE」を指定
指数の数え方範囲の左端列を「1」として数える
オートフィルでズレる時範囲を選択後「F4」キーで絶対参照に切り替える
#N/Aエラーの原因検索キーが範囲の左端列にない/表記ゆれ/入力ミス
エラー表示を整えるIFERROR関数でVLOOKUP全体を囲む
数式が不安な時Claudeに数式とエラー内容を伝えて確認・提案してもらう

「ビジネス必須」って聞いて身構えてたけど、つまずくポイントさえ知っておけば怖くないね。今度こそ自分のデータでちゃんと使いこなせそう!

そうだね。最初はエラーが出ても焦らず、「範囲は絶対参照になっているか」「検索キーは左端列にあるか」の2点をまず疑う、という順番だけ覚えておけば十分だよ。

VLOOKUP関数は、4つの引数の意味さえ理解すれば決して難しい関数ではない。エラーが出た際も「範囲が絶対参照になっているか」「検索キーが範囲の左端列にあるか」という2つの基本ポイントを順に確認することで、多くのつまずきは解消できる。

関連記事

  1. スプレッドシートで「あの人が何を編集したか」を確認する方法

  2. スプレッドシートで自分だけフィルタをかける方法!スマホでの注意点も解説

  3. スプレッドシートのチェックボックス、実は奥が深い!作り方から活用の注意点まで解説

  4. Googleスプレッドシートのピボットテーブルの作り方(初心者がつまずくポイント付き)

  5. Googleスプレッドシートのフィルタ機能の使い方(「フィルタ」と「フィルタ表示」の違いも解説)

  6. スプレッドシートをスマホで改行するには?Enterで確定されてしまう問題を解決

  7. スプレッドシートのプルダウンの作り方|色付け・連動・複数選択まで解説

  8. スプレッドシートで家計簿を作る方法|自動計算・グラフ化・Googleフォーム連携まで解説

  9. スプレッドシートのIMPORTRANGE関数の使い方