経理でも総務でも営業事務でも、「別の表から該当する値を探してきて転記する」という作業は日常的に発生します。Excelではこの検索作業をVLOOKUP関数、あるいはその後継であるXLOOKUP関数で自動化できますが、「結局どっちを使えばいいの?」「同じような数式なのにエラーになる」と迷う方は少なくありません。この記事では、両者の違いと、検索関数でつまずきやすいポイントを実務目線で整理します。
VLOOKUPとXLOOKUPの基本的な違い
どちらも「ある値を手がかりに、別の列から対応する値を取り出す」関数という点は共通しています。ただし内部の仕組みと制約が異なります。
VLOOKUP
- 検索する列は必ず表の一番左
- 取得したい列は検索列より右側限定
- 列を挿入すると列番号がズレて壊れやすい
- ほぼ全バージョンのExcelで利用可能
XLOOKUP
- 検索列と取得列を別々に指定できる
- 検索対象が表の右側にあっても左側にあっても対応
- 列を挿入しても数式が壊れにくい
- Excel 2021/Microsoft 365以降限定
つまりXLOOKUPのほうが柔軟で壊れにくい上位互換ですが、「会社のExcelがそもそも対応しているか」がボトルネックになります。まずは自分の職場のExcelのバージョンを確認し、対応していればXLOOKUP、していなければVLOOKUPという判断が現実的です。
実務でのよくある使用シーン
経理担当者であれば「社員番号を手がかりに、別シートの社員マスタから部署名や口座情報を取得する」場面。総務担当者であれば「従業員名簿から入社日を検索して勤続年数を算出する」場面。営業事務であれば「商品コードから単価表を検索して見積書に単価を反映する」場面などで、これらの関数は頻繁に使われます。共通しているのは「毎回目で探して手入力すると時間がかかり、転記ミスも起きやすい」という点で、検索関数を使うことでその両方を解消できます。
よくあるエラーとその原因・対処法
「該当する値が見つかりません」という意味のエラーです。原因としてよくあるのは次の3つです。
- 検索したい値が検索範囲の中に本当に存在しない(表記ミス・入力漏れ)
- 見た目は同じでも全角と半角が混ざっている、余分な空白(スペース)が入っている
- 数値のセルと文字列のセルが混在していて、見た目が同じでも一致しない
対処法としては、検索範囲側のデータをよく確認するほか、IFERROR関数を組み合わせて「見つからない場合は空欄や『該当なし』と表示する」形にしておくと、エラーで数式が崩れて見えるのを防げます。
VLOOKUPで特に起きやすいエラーです。表の途中に列を挿入・削除すると、VLOOKUPの「右にいくつ移動するか」を指定する列番号がズレてしまい、参照先が壊れて発生します。
XLOOKUPであれば取得したい列を直接指定するため、この種のズレは起きにくくなります。表の構成が今後変わる可能性がある場合は、XLOOKUPが使える環境ならそちらを優先しましょう。
これが一番厄介なケースです。多くは、VLOOKUPの最後の引数(完全一致か近似一致か)を省略、または「TRUE」にしてしまっていることが原因です。近似一致の状態では、検索範囲が昇順に並んでいないと想定と違う行の値を拾ってしまいます。
初心者がつまずきやすいポイントとコツ
- 検索範囲は絶対参照($)で固定する。数式を下の行にコピーしたときに範囲がズレて、検索対象がだんだんおかしくなるトラブルを防げます。
- 検索範囲の1列目(VLOOKUPの場合)に重複がないか確認する。同じ値が複数あると、一番上の行の値しか返ってきません。
- まず1行だけで数式を作り、正しく動くのを確認してからコピーする。いきなり表全体にコピーすると、間違いに気づきにくくなります。
まとめ
VLOOKUPとXLOOKUPは「表から値を探す」という目的は同じですが、XLOOKUPのほうが柔軟で数式が壊れにくいという特徴があります。まずは自分の職場のExcelのバージョンを確認し、使えるならXLOOKUP、使えないならVLOOKUP+IFERRORの組み合わせを基本形として覚えておくと安心です。数式そのものを一から書くのが不安な方は、下のツールで日本語の空欄を埋めるだけで数式を組み立てられます。