まず押さえる:VLOOKUPとXLOOKUPの基本的な違い
VLOOKUPからXLOOKUPへ移行する前に、まず理解しておきたいのが「そもそも何が違うのか」です。どちらもExcelでデータを検索し、対応する値を取り出す関数ですが、考え方や使い勝手には大きな差があります。
VLOOKUPは、指定した表の左端の列を検索し、そこから何列目の値を返すかを指定する関数です。たとえば、社員番号をもとに氏名を取り出す場合、社員番号が表の一番左にあり、氏名がその右側にある必要があります。
一方、XLOOKUPは、検索する範囲と返したい範囲を別々に指定できます。そのため、検索列が表の左端である必要はありません。右から左への検索もできるため、VLOOKUPよりも柔軟に使えます。
たとえば、VLOOKUPでは次のように指定します。
=VLOOKUP(A2, B:E, 3, FALSE)
この場合、「B列からE列の表を対象にして、左端のB列からA2の値を探し、3列目の値を返す」という意味になります。注意したいのは、返す列を「3」のような列番号で指定する点です。列を追加・削除すると、意図しない列を参照してしまうリスクがあります。
これに対してXLOOKUPでは、次のように書きます。
=XLOOKUP(A2, B:B, D:D)
意味はシンプルで、「A2の値をB列から探し、見つかった行のD列の値を返す」です。列番号ではなく、実際の範囲を直接指定するため、数式の意味が読み取りやすく、後から見直したときにも理解しやすいのが特徴です。
また、XLOOKUPには「見つからなかった場合に表示する値」を関数内で指定できるメリットもあります。VLOOKUPではエラー対策としてIFERROR関数を組み合わせることが多いですが、XLOOKUPなら標準機能として設定できます。
=XLOOKUP(A2, B:B, D:D, "該当なし")
このように書けば、検索値が見つからない場合でも「#N/A」ではなく「該当なし」と表示できます。資料作成や業務報告でエラー表示を避けたい場面では、かなり便利です。
つまり、VLOOKUPは「表の左端から列番号で取り出す関数」、XLOOKUPは「検索範囲と戻り範囲を指定して取り出す関数」と考えると分かりやすいです。移行時には、この考え方の違いを押さえておくことが、数式ミスを防ぐ第一歩になります。
移行前に確認したい:XLOOKUPが使えるExcel環境
XLOOKUPへ移行する前に、必ず確認しておきたいのが利用しているExcelのバージョンです。XLOOKUPは便利な関数ですが、すべてのExcelで使えるわけではありません。自分のPCでは問題なく動いても、共有先の相手の環境では動かないケースがあります。
XLOOKUPが利用できる代表的な環境は、主に以下のとおりです。
- Microsoft 365版のExcel
- Excel 2021以降
- Excel for the web
- 一部のExcelモバイルアプリ
一方で、Excel 2019以前の買い切り版では、基本的にXLOOKUPは使用できません。たとえば、会社のPCがExcel 2016やExcel 2019のままだと、XLOOKUPを入力しても関数として認識されず、#NAME?エラーが表示されることがあります。
特に注意したいのは、社内でExcelファイルを共有している場合です。自分はMicrosoft 365を使っていても、上司や他部署、取引先が古いExcelを使っている可能性があります。その状態でVLOOKUPをXLOOKUPに置き換えてしまうと、相手側で数式が正常に動かず、確認作業や集計業務に支障が出るかもしれません。
移行前には、まず次の点をチェックしておくと安心です。
- 自分のExcelでXLOOKUPが使えるか
- ファイルを共有する相手のExcel環境
- 社内の標準Officeバージョン
- 取引先に提出するファイルかどうか
自分のExcelで使えるか確認するだけなら、空いているセルに次のような簡単な式を入力してみましょう。
=XLOOKUP(1, A:A, B:B)
関数名が認識され、数式として入力できれば、基本的にはXLOOKUPを利用できます。もし入力時に候補として表示されなかったり、確定後に#NAME?が出たりする場合は、その環境では対応していない可能性が高いです。
また、古い形式の.xlsファイルで作業している場合も注意が必要です。互換モードのまま運用しているファイルでは、新しい関数を使った保存や共有でトラブルが起きることがあります。XLOOKUPを本格的に使うなら、基本的には.xlsx形式で管理するのがおすすめです。
もし共有相手の環境が古い場合は、無理にXLOOKUPへ置き換えず、VLOOKUPのまま残す判断も必要です。もしくは、提出用ファイルだけ値貼り付けにする、社内用と外部共有用でファイルを分けるなどの対応を検討しましょう。
XLOOKUPは非常に便利ですが、使える環境がそろっていて初めて効果を発揮します。移行作業を始める前に、まずは「誰がそのファイルを開くのか」を確認しておくことが、後々のトラブルを防ぐポイントです。
ここでつまずく:検索範囲・戻り範囲の指定ミスに注意
VLOOKUPからXLOOKUPへ移行するときに、意外と多いミスが検索範囲と戻り範囲の指定ズレです。XLOOKUPは「どこを探すか」と「どこから返すか」を別々に指定できる便利な関数ですが、その分、範囲の選び方を間違えると正しい結果が返ってきません。
基本形は次のとおりです。
=XLOOKUP(検索値, 検索範囲, 戻り範囲)
たとえば、A2に入力された社員番号を、社員マスタのB列から探し、該当する氏名をC列から返したい場合は、次のように指定します。
=XLOOKUP(A2, B:B, C:C)
この式では、B:Bが検索範囲、C:Cが戻り範囲です。つまり「B列でA2と同じ社員番号を探し、同じ行にあるC列の氏名を返す」という意味になります。
ここで注意したいのが、検索範囲と戻り範囲のサイズをそろえることです。たとえば、次のような式はエラーや意図しない結果の原因になります。
=XLOOKUP(A2, B2:B100, C2:C90)
検索範囲は99行分あるのに、戻り範囲は89行分しかありません。このように範囲の行数がズレていると、Excelが対応関係を正しく判断できず、エラーになることがあります。XLOOKUPでは、検索範囲と戻り範囲は同じ行数・同じ列数で指定するのが基本です。
また、VLOOKUPから置き換えるときにありがちなのが、表全体をそのまま指定してしまうミスです。VLOOKUPでは表範囲をまとめて指定していましたが、XLOOKUPでは検索する列と返す列を個別に指定します。
たとえば、元の式が次のような場合を考えてみましょう。
=VLOOKUP(A2, B:D, 3, FALSE)
これは「B列で検索し、B:Dの3列目、つまりD列の値を返す」という意味です。XLOOKUPに置き換えるなら、次のようになります。
=XLOOKUP(A2, B:B, D:D)
ここで間違えて、次のように書いてしまうと、期待した結果になりません。
=XLOOKUP(A2, B:D, D:D)
B:Dのように複数列を検索範囲にしてしまうと、「どの列を基準に探したいのか」が分かりにくくなります。基本的には、検索範囲には検索キーが入っている1列を指定しましょう。
さらに、行の開始位置にも注意が必要です。見出し行を含めるかどうかが検索範囲と戻り範囲でズレていると、結果もズレます。
=XLOOKUP(A2, B2:B100, D1:D99)
このように、検索範囲は2行目から、戻り範囲は1行目から始まっていると、対応する行が1行ずれてしまいます。数式だけを見ると気づきにくいので、移行時には範囲の開始行と終了行を必ず確認しましょう。
ミスを防ぐコツは、まず対象データを表形式に整理し、「検索する列」と「返したい列」を明確にしてから数式を作ることです。慣れないうちは列全体を指定するより、B2:B100とD2:D100のように、同じ行番号でそろえて入力すると確認しやすくなります。
XLOOKUPは自由度が高い分、範囲指定の正確さが重要です。VLOOKUPの感覚で表全体を選ぶのではなく、「検索範囲」と「戻り範囲」を一対一で対応させる意識を持つことが、移行時のつまずきを減らすポイントです。
完全一致・近似一致の違いを理解して誤検索を防ぐ
VLOOKUPからXLOOKUPへ移行するときに、必ず確認したいのが「完全一致」と「近似一致」の扱いです。ここを理解せずに置き換えると、エラーにはならないのに、実は違う値を返していたという危険なミスにつながります。
VLOOKUPでは、第4引数で検索方法を指定します。
=VLOOKUP(A2, B:D, 3, FALSE)
このようにFALSEを指定すると、検索値と完全に一致するデータだけを探します。社員番号、商品コード、顧客IDなど、1文字でも違えば別物として扱うデータでは、基本的に完全一致を使います。
一方で、次のようにTRUEを指定した場合や、第4引数を省略した場合は、近似一致になります。
=VLOOKUP(A2, B:D, 3, TRUE)
近似一致は、完全に一致する値がない場合でも「近い値」を探して結果を返します。たとえば、点数に応じて評価ランクを出す、売上金額に応じて手数料率を出す、といった「範囲判定」では便利です。ただし、検索列が昇順に並んでいないと、VLOOKUPでは誤った結果になる可能性があります。
ここで重要なのが、XLOOKUPは初期設定が完全一致だという点です。XLOOKUPの基本形は次のようになります。
=XLOOKUP(A2, B:B, D:D)
この場合、検索方法を指定していませんが、XLOOKUPでは完全一致として検索されます。つまり、VLOOKUPでFALSEを使っていた式であれば、比較的そのまま移行しやすいです。
ただし、元のVLOOKUPが近似一致だった場合は注意が必要です。たとえば、次のような式です。
=VLOOKUP(A2, F:G, 2, TRUE)
これを何も考えずに次のように置き換えると、完全一致で検索されるため、該当する値が見つからず#N/Aになることがあります。
=XLOOKUP(A2, F:F, G:G)
XLOOKUPで近似一致を使いたい場合は、第5引数の一致モードを指定します。代表的な指定は以下のとおりです。
0:完全一致(省略時の標準)-1:完全一致、なければ次に小さい値1:完全一致、なければ次に大きい値2:ワイルドカード一致
たとえば、点数に応じて評価を返すような表で、「該当点数以下の最も近い基準」を使いたい場合は、次のように指定します。
=XLOOKUP(A2, F:F, G:G, "該当なし", -1)
この式は、A2の値と完全に一致するものがあればその行の値を返し、なければA2より小さい値の中で近いものを探します。VLOOKUPの近似一致に近い使い方ができます。
また、商品名や担当者名の一部で検索したい場合は、ワイルドカード一致も使えます。
=XLOOKUP("*"&A2&"*", B:B, D:D, "該当なし", 2)
ただし、あいまいな検索は便利な反面、似た名前や似たコードがあると意図しないデータを拾う可能性があります。業務で使うマスタ検索では、基本は完全一致、範囲判定など目的が明確な場合だけ近似一致を使う、と考えるのが安全です。
移行時には、元のVLOOKUPの第4引数がFALSEなのか、TRUEなのか、省略されているのかを必ず確認しましょう。XLOOKUPは初期設定が完全一致なので、近似一致で作られていた数式をそのまま置き換えると、結果が変わる可能性があります。
安全に置き換えるための移行手順とチェックポイント
VLOOKUPをXLOOKUPへ移行するときは、いきなり全ての数式を置き換えるのではなく、小さく試してから広げるのが安全です。業務で使っているExcelは、集計表や報告資料、マスタ管理などに紐づいていることが多く、1つの数式ミスが数字のズレにつながる可能性があります。
まず最初にやるべきことは、元ファイルのバックアップです。置き換え前の状態を残しておけば、万が一結果がおかしくなってもすぐに戻せます。ファイル名に日付を入れて、次のように保存しておくと分かりやすいです。
売上集計_移行前_202501.xlsx
次に、置き換え対象のVLOOKUPを洗い出します。Excelの検索機能でVLOOKUPを検索すれば、どのシートのどのセルに使われているか確認できます。特に、複数シートにまたがって参照している数式や、絶対参照・相対参照が混ざっている数式は注意して見ておきましょう。
移行するときは、まず1つのセルだけXLOOKUPに置き換え、元のVLOOKUPの結果と一致するか確認します。たとえば、元の式が次のような場合です。
=VLOOKUP(A2, B:D, 3, FALSE)
XLOOKUPでは以下のように置き換えます。
=XLOOKUP(A2, B:B, D:D, "該当なし")
このとき、単にエラーが出ていないかを見るだけでは不十分です。返ってきた値が本当に同じかを確認しましょう。可能であれば、隣の列に新しいXLOOKUPを一時的に入力し、VLOOKUPの結果と比較する方法がおすすめです。
=B2=C2
このように比較用の列を作れば、結果が一致しているかをTRUEまたはFALSEで確認できます。数百行ある表でも、フィルターでFALSEだけを抽出すれば、ズレている箇所を効率よく確認できます。
チェックするときは、次のポイントを重点的に見てください。
- 検索値が空欄のときに想定どおりの表示になるか
- 該当データがない場合に
#N/Aではなく適切な文言になるか - 元のVLOOKUPが近似一致だった場合、XLOOKUPでも同じ検索条件になっているか
- 検索範囲と戻り範囲の行数・開始行がそろっているか
- 他の人のExcel環境でもXLOOKUPが使えるか
また、置き換え後は合計値や件数など、表全体の結果も確認しましょう。個別のセルでは問題がなくても、空欄やエラー処理の違いによって、集計結果が変わることがあります。売上合計、対象件数、未入力件数など、業務上よく見る指標は移行前後で比較しておくと安心です。
問題がなければ、同じパターンの数式を範囲全体にコピーします。ただし、参照範囲がずれないように、必要に応じて$B$2:$B$100のような絶対参照を使いましょう。特に下方向や横方向へコピーする場合は、検索範囲や戻り範囲が意図せず動いていないか確認が必要です。
最後に、置き換えが終わったら不要になった比較列を削除し、ファイルを別名で保存します。いきなり上書きせず、しばらくは移行前ファイルも残しておくと、後から差分確認ができます。
XLOOKUPへの移行は、正しく進めれば数式が読みやすくなり、メンテナンスもしやすくなります。焦って一括置換するのではなく、バックアップ、部分テスト、結果比較、全体確認の流れで進めることが、安全な移行のコツです。

コメント