「VLOOKUP関数で列を挿入したらエラーになった」「検索したい値が左側にあって参照できない」……。Excelでデータ抽出を行う際、こうした悩みに直面したことはありませんか?
2020年に登場したXLOOKUP関数は、これまでのVLOOKUPの弱点をすべて克服した画期的な関数です。私自身、以前はVLOOKUPの列番号を数える手間に苦労していましたが、XLOOKUPに切り替えてからは作業時間が劇的に短縮されました。
この記事では、VLOOKUPとXLOOKUPの違いを徹底比較し、どちらを使うべきかの結論と、具体的な乗り換え方法、注意点を詳しく解説します。
【結論】今後は「XLOOKUP」を優先して使うべき
結論から申し上げます。お使いのExcelが比較的新しいバージョンであれば、今後はVLOOKUPではなくXLOOKUPを優先して使うべきです。
XLOOKUPを使うべき理由
数式がシンプルでミスが減る: 引数の指定方法が直感的になり、関数の構造が理解しやすくなっています。
メンテナンス性が高い: 表の途中に列を追加したり削除したりしても、数式が壊れる心配がありません。
多機能である: エラー回避や検索モードの指定など、これまで別の関数を組み合わせていた作業がXLOOKUP単体で完結します。
VLOOKUPを使うべきケース
唯一、VLOOKUPを使い続けるべきなのは、**「ファイルを共有する相手が、古いバージョンのExcelを使っている場合」**のみです。これについては後述する「注意点」で詳しく解説します。
VLOOKUPとXLOOKUPの決定的な違い3選
| 項目 | VLOOKUP | XLOOKUP |
| 検索方向 | 右方向のみ | 全方向(左もOK) |
| 列の挿入 | エラーになる | 自動で追従する |
| エラー処理 | IFERRORが必要 | 関数内に標準搭載 |
| 列番号指定 | 数字で数える | 範囲で選ぶ |
| 対応Ver. | 全バージョン | 2021 / 365のみ |
なぜXLOOKUPがそれほどまでに優れているのか。VLOOKUPでは解決できなかった「3つの大きな違い」に焦点を当てて解説します。
① 検索方向の自由度(左側への検索)
VLOOKUPには「検索値が含まれる列は、範囲の左端になければならない」という厳しいルールがありました。つまり、検索したいキーワードよりも左側にあるデータは取得できなかったのです。 対してXLOOKUPは、検索範囲と戻り範囲を別々に指定するため、左側にあるデータも問題なく抽出可能です。
② 列の挿入・削除への耐性
VLOOKUPでは「範囲の左から何番目の列か」という「列番号」を数値(例:3)で指定します。そのため、表の途中に列を1つ挿入すると、目的のデータが「4番目」にずれてしまい、数式の結果が壊れてしまいます。 XLOOKUPは「列の範囲(例:C列)」を直接指定するため、列がどこに移動しても自動で追いかけてくれます。
③ エラー回避の簡便さ(IFERRORが不要)
VLOOKUPで値が見つからない場合、無機質な「#N/A」エラーが表示されます。これを消すために、わざわざ IFERROR(VLOOKUP(...), "なし") のように関数を二重にする必要がありました。 XLOOKUPには「見つからない場合」という引数が最初から用意されているため、数式一つでエラー時の表示を設定できます。
【対処】VLOOKUPからXLOOKUPへ書き換える手順
今あるVLOOKUPの数式を、どのようにXLOOKUPへ移行すればよいのか。具体的な書き換え手順を説明します。
VLOOKUPの基本構造
=VLOOKUP(検索値, 範囲, 列番号, [検索方法]) ※[検索方法]には通常「0(完全一致)」を入れます。
XLOOKUPの基本構造
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])
具体的な書き換えのステップ
検索値を選ぶ: これはVLOOKUPと同じです(例:A2)。
検索範囲を指定する: 検索値を探しに行く「列」だけを選びます(例:B列)。
戻り範囲を指定する: 抽出したいデータが入っている「列」だけを選びます(例:E列)。
エラー処理(任意): 見つからなかった時に「”該当なし”」と出したい場合は、4つ目の引数に入力します。
これだけで完了です。列番号を「1、2、3……」と指で数える必要はもうありません。
XLOOKUPを使う際の注意点と互換性のリスク
非常に便利なXLOOKUPですが、運用にあたって2点だけ重要な注意点があります。
① Excelのバージョンの壁
XLOOKUPは、以下の環境でないと動作しません。
Microsoft 365(サブスクリプション版)
Excel 2021 以降の永切り版
Web版 Excel
もし、あなたや共有相手が Excel 2019 / 2016 / 2013 などの古いバージョンを使用している場合、XLOOKUPを入力しても #NAME? というエラーが出てしまい、全く機能しません。
② 「スピル」機能による影響
XLOOKUPで戻り範囲を複数列(例:B列からD列まで)指定すると、一つの数式で隣のセルまで一気に結果が表示される「スピル」という機能が働きます。 便利な反面、隣のセルにすでに別の文字が入っていると、エラー(#SPILL!)が発生してしまいます。数式を入力する右側のセルは空けておく必要があります。
まとめ:状況に合わせた使い分けチャート
最後に、どちらの関数を使うべきか迷った時の判断基準をまとめます。
自分だけで使う、または最新Excelを使っている職場: → 迷わず XLOOKUP を使ってください。ミスの削減と時短に直結します。
不特定多数に配布する資料や、古いPCが混在する環境: → 確実性を重視して VLOOKUP を選択してください。
データが大量にあり、メンテナンス頻度が高い表: → XLOOKUP を推奨します。列の増減に強い特性が活きます。
Excelは日々進化していますが、関数の特性を正しく理解することで、無駄な修正作業を劇的に減らすことができます。まずは、自分用のワークシートからXLOOKUPを取り入れて、その快適さを体感してみてください。


コメント