この記事は 事務でよく使うExcel関数まとめ|目的から探せる一覧 の1本です。他の関数もまとめて見られます。
品番を入れたら品名と単価が自動で出る。この「表引き」を長く支えてきたのが VLOOKUP(ブイルックアップ) です。
いまは後継の XLOOKUP がありますが、Excel 2019以前では使えません。社内のパソコンが混在している会社では、まだVLOOKUPで書く必要があります。
この記事は、VLOOKUPしか使えない環境の方向けです。使い方と、必ず知っておくべき落とし穴を扱います。
まず、自分のExcelがどちらか確認する
空いているセルに =XL と打ってみてください。
- 候補に XLOOKUP が出る → Microsoft 365 / Excel 2021以降。XLOOKUP関数の使い方 を読んでください。そちらのほうが安全です
- 出ない → Excel 2019以前。この記事の内容で書きます
社内でバージョンが混在している場合は、VLOOKUPで書いてください
自分のパソコンで XLOOKUP が使えても、そのファイルを古いExcelで開くと#NAME? というエラーになり、計算されません。
複数人で使うファイル・取引先に渡すファイルは、
一番古い環境に合わせるのが安全です。
この記事で作るもの
商品マスタから、品番で品名を引きます。
| A | B | C | |
|---|---|---|---|
| 1 | 品番 | 品名 | 単価 |
| 2 | S-100 | 杉板 12mm | 1,200 |
| 3 | H-200 | 檜柱 105角 | 3,800 |
| 4 | G-300 | 合板 9mm | 900 |
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 品番 | 品名 | 単価 | 数量 | 金額 |
| 2 | H-200 | 檜柱 105角 | 3,800 | 20 | 76,000 |
VLOOKUPの形
- 探す値いま手元にある値。ここでは伝票のA2に入れた品番
- 探す範囲マスタの範囲。この範囲の一番左の列が「探しに行く列」になる
- 何列目を取るか範囲の左端を1として数えた番号。品名なら2
- 検索方法完全一致なら FALSE。必ず書いてください
XLOOKUPとの一番の違いは、3つ目が「列そのもの」ではなく「番号」だという点です。この番号が、後述する落とし穴の原因になります。
絶対に守るルール:探す値は範囲の左端
VLOOKUPは、指定した範囲の一番左の列しか探しません。
| A | B | C | |
|---|---|---|---|
| 1 | 品番 | 品名 | 単価 |
| 2 | S-100 | 杉板 12mm | 1,200 |
| 3 | H-200 | 檜柱 105角 | 3,800 |
| 4 | G-300 | 合板 9mm | 900 |
つまり 「品名から品番を逆に引く」ことはできません。品番が左にあるからです。
逆引きが必要なら、マスタの列順を入れ替えるか、別の方法を使います(INDEXとMATCHの使い方(近日公開) で扱います)。
列番号の数え方
シートの列記号ではなく、指定した範囲の左端から数えます。ここを間違える人が多いところです。
| A | B | C | |
|---|---|---|---|
| 1 | 品番 | 品名 | 単価 |
| 2 | S-100 | 杉板 12mm | 1,200 |
範囲を B:C にした場合は、品名が1、単価が2になります。範囲の取り方で番号が変わる、という点を押さえてください。
最大の落とし穴:列を挿入すると静かに間違う
ここがVLOOKUPで一番怖いところです。
品名を取るために 2 と書いてありました。この状態で、マスタに「規格」という列を1つ挿入したとします。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 品番 | *規格* | 品名 | 単価 |
| 2 | S-100 | 12mm | 杉板 | 1,200 |
| 3 | H-200 | 105角 | 檜柱 | 3,800 |
| 4 | G-300 | 9mm | 合板 | 900 |
式に書いた 2 は、自動では変わりません。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 品番 | 品名 | 単価 | 数量 | 金額 |
| 2 | H-200 | 105角 | 3,800 | 20 | 76,000 |
エラーが出ないのが、一番の問題です
#N/A も #REF! も出ません。それらしい値が普通に表示されます。
だから誰も気づかないまま、間違った品名の納品書が出続けます。
気づくのは、たいてい取引先から指摘されたときです。
XLOOKUPは列を番号ではなく列そのもので指定するため、これが起きません。XLOOKUPが使える環境なら乗り換えるべき理由が、これです。
VLOOKUPのまま安全に使うには
古い環境で使い続ける場合、次の3つで事故を減らせます。
- マスタの列を絶対に挿入しない、というルールにする
項目を足したいときは、一番右に足す。これだけで列番号はズレません。社内で共有するマスタほど効きます。
- マスタを別シートに分け、シートを保護する
「校閲」タブ →「シートの保護」で、誤って列を挿入されることを防げます。パスワードは付けなくても構いません。
- 式のそばに、何列目が何かをメモしておく
マスタの見出し行のすぐ上か、伝票シートの端に「品名=2 / 単価=3」と書いておきます。次に触る人が気づけます。
より根本的に直すなら、列番号を固定値ではなく見出し名から自動で求める方法があります。INDEXとMATCHの使い方(近日公開) で扱います。
FALSE を省略してはいけません
4つ目の FALSE は「完全一致で探す」という指定です。省略すると近似一致になります。
FALSEを書き忘れると、違う行の値が返ることがあります
近似一致は「その値以下で、一番近いもの」を返す動きをします。
しかもマスタが昇順に並んでいることが前提です。
品番や社員番号のようなコードを探す用途では、まず使いません。FALSE は必ず書いてください。
0 と書いても FALSE と同じ意味になります。短く書きたい場合はそちらでも構いません。
よくあるつまずき
#N/A と出る
マスタに無い値を探しています。
・品番に余分なスペースが入っている
・全角と半角が混ざっている(S-100 と S-100)
・マスタ側が数値、伝票側が文字列になっている
スペースの直し方は TRIM関数の使い方 で扱っています。
未入力の行に #N/A を出したくない場合は IFERROR関数の使い方 を参照してください。
下にコピーしたら、途中から結果がおかしくなった
範囲を $ で固定していません。
マスタ!A:C と書くと、下にコピーしたときに A2:C4 のようにズレていきます。マスタ!$A:$C のように $ を付けて固定してください。
セルを選んで F4 キーを押すと切り替わります。
今日やってみること
- 自分のExcelで XLOOKUP が使えるか確認する
=XLと打って候補に出るかどうか。使えるなら、そちらを先に検討してください。 - いま使っているVLOOKUPの式を1つ開く
数式バーで、3つ目の数字と4つ目の
FALSEを確認します。 - FALSE が抜けていないか確かめる
抜けていたら追加してください。結果が変わる場合、これまで間違った値を拾っていた可能性があります。
- マスタの列順をメモに残す
「品名=2 / 単価=3」と書いておくだけで、次に列を触る人が気づけます。
3つ目が特に大事です。FALSE を足して結果が変わったら、過去の資料も確認してください。
次に読むとよい記事
- 新しいExcelが使えるなら → XLOOKUP関数の使い方
- 列番号を見出し名から自動で求める → INDEXとMATCHの使い方(近日公開)
#N/Aの表示を消したい → IFERROR関数の使い方#N/Aの原因になるスペースを取り除く → TRIM関数の使い方- 引いてきた数字を条件付きで合計する → SUMIFS関数の使い方
「古いExcelのままでいいのか、入れ替えるべきなのか」という判断も含めてご相談いただけます。現状のヒアリングと課題整理は無料です。
この記事について
SUPRAXは、林業・製造・運送の現場経験をもとに、中小企業の業務改善・AI活用・GISの支援を行っています。 記事の内容について「うちの場合はどうか」を聞きたい方は、無料相談をご利用ください。
あわせて読みたい
XLOOKUP関数の使い方|品番から品名と単価を自動で出す
伝票や日報を作るとき、品番を見ながら品名と単価をマスタから探して手で打ち込んでいませんか。 この作業は XLOOKUP(エックスルックアップ) を使うと…
IFERROR関数の使い方|エラーを消していい場面とは
式を入れた表に #N/A や #DIV/0! がずらっと並んで、そのままでは資料として出せない。 これを消すのが IFERROR(イフエラー) です。1…
TEXT関数と日付の処理|「2026/9/1」を「9月」にまとめる
「月ごとの売上を出してほしい」と言われて、明細表を開く。日付は1日単位で入っているので、そのままでは月でまとめられません。 手で「9月」と打っていくと、…