「商品コードを入れると単価が出てくる」――そんな表を、VLOOKUP関数で作っている会社は本当に多いと思います。VLOOKUPは長年使い慣れた便利な関数ですが、いざ使っていると「列を1つ増やしただけで表が崩れた」「エラーを消すために毎回IFERRORで囲むのが面倒」といった、小さなストレスに心当たりはないでしょうか。
こうした悩みの多くは、VLOOKUPの後継として登場した「XLOOKUP」に置き換えることで、驚くほど簡単に解決します。ただし、XLOOKUPは古いバージョンのExcelでは使えません。
この記事では、まずXLOOKUPとVLOOKUPの違いを初心者の方にもわかるように整理したうえで、置き換えるべき理由と、実際の移行手順を順番にご紹介します。お手元のExcelで一つずつ試しながら読み進めてください。
XLOOKUPとは?|VLOOKUPとの違い
XLOOKUPは、ひとことで言えば「VLOOKUPをより使いやすく直した、新しい検索関数」です。できることは似ていますが、VLOOKUPが長年抱えていた弱点をいくつも解消しています。両者の成り立ちを簡単に振り返ってみましょう。
そもそもVLOOKUPはどんな関数か?
VLOOKUPは、表の中から特定の値を探し出し、それに対応する情報を取り出す関数です。たとえば「商品コードA-101」を手がかりに、商品マスタから「単価3,980円」を引っ張ってくるといった使い方をします。社員番号から氏名を、得意先コードから会社名を引く、というように、事務仕事のあらゆる場面で活躍します。
名前の「V」は「Vertical(垂直・縦方向)」の頭文字で、縦に並んだ表を上から下へ探していくことを表しています。Excelを使う事務担当者が最初に覚える関数の代表格であり、長年にわたって「表引きといえばVLOOKUP」と言われるほど親しまれてきました。
登場から数年たった今も、現場ではVLOOKUPのほうが広く使われています。
XLOOKUPが登場した背景
これほど便利なVLOOKUPですが、実は弱点がいくつかありました。取り出したい列を「左から何番目」という番号で指定するため列の増減に弱いこと、検索したい列より左側にある情報は取り出せないこと、そして値が見つからないときのエラー処理が面倒なことなどです。
これらの弱点をまとめて解消する後継関数として、Microsoftが2019年8月に発表したのがXLOOKUPです。その後、Microsoft 365の利用者へ順次提供され、一般に使えるようになりました。
VLOOKUPに加えて、横方向に検索するHLOOKUP、上級者が使うINDEXとMATCHの組み合わせといった複数の関数を、ひとつにまとめられるように設計された関数です。
これから新しく表を作り直したりするのであれば、XLOOKUPを使ったほうが良いでしょう。
XLOOKUPの基本の形
XLOOKUPの基本の形は、とてもシンプルです。関数呼び出しに加えて、次の3つのパラメーターを指定するだけで使えます。
=XLOOKUP(検索値, 検索範囲, 戻り範囲)
商品マスタ(A列=商品コード、B列=商品名、C列=単価)で「商品コードから単価を引く」場合に当てはめると、次のようになります。
検索値
探す手がかりにする値です。ここでは「知りたい商品コード(例:A-101)」がそれに当たります。この値を手がかりに目的のセルを探してくださいとExcelに伝える部分です。
検索範囲
その手がかりを探しにいく列です。ここでは「商品コードがずらりと並んだA列」がそれに当たります。
戻り範囲
見つかった行から、答えとして取り出したい列です。ここでは「単価が並んだC列」がそれに当たります。
使う前に確認したいExcelのバージョン
XLOOKUPはとても便利な関数ですが、冒頭でも触れたとおり、使えるExcelのバージョンに制限があります。記事を読み進めてから「自分のExcelでは使えなかった」とがっかりされないよう、最初にお使いのExcelバージョンを確認しておきましょう。
お使いのExcelでXLOOKUPが使えるか確認する方法
お使いのExcelでXLOOKUPが使えるかどうかを確認する方法はいくつかありますが、いちばん確実なのは、実際に試してみることです。
どこか空いているセルに「=XLOOKUP(」と入力してみてください。入力の途中で「XLOOKUP」が候補として表示されれば、お使いのExcelでXLOOKUPは使えます。候補に出てこない場合や、確定したときに「#NAME?」と表示される場合は、お使いのExcelはXLOOKUPに対応していません。

バージョンの表記から見分けたい場合は、[ファイル]→[アカウント]を開きます。画面上部の「製品情報」の欄に、「Microsoft 365 Apps」や「Office Home & Business 2024」といった製品名が大きく表示されます。ここにMicrosoft 365、または2021・2024と書かれていれば使えます。
なお、その下にある[Excelのバージョン情報]には、「バージョン 2606(ビルド…)」のような番号だけが表示され、製品名が出てこないことがあります。この4桁の番号は、Microsoft 365で毎月更新されるバージョンを表すもので、この形式で表示されていればMicrosoft 365ですので、XLOOKUPが使えます。

お使いのExcelがXLOOKUPに対応していない場合
もしお使いのExcelがXLOOKUPに対応していない場合も代替案はあります。
ひとつ目は、この記事の最後で紹介するINDEXとMATCHの組み合わせで当面をしのぐ方法。もうひとつは、Microsoft 365への切り替えです。どちらが向いているかは会社の状況によりますので、記事の後半であらためて整理します。
VLOOKUPをXLOOKUPに置き換えるべき理由
ここからは、XLOOKUPに置き換えることで具体的に何が良くなるのかを、VLOOKUPの弱点と対比しながら紹介します。どれも実務で「あるある」の悩みばかりですので、心当たりのある項目から読んでください。
検索する列より左のデータも取り出せる
VLOOKUPには、「検索する列は、表の一番左になければならない」という大きな制約があります。たとえば商品名から商品コードを引きたいとき、商品コードが商品名より左の列にあると、VLOOKUPでは直接取り出せません。そのため今まではINDEXとMATCHを組み合わせるなど、遠回りが必要でした。
XLOOKUPなら、「探す列」と「答えを返す列」を別々に指定できるため、答えの列が左にあっても問題なく取り出せます。表のレイアウトに合わせて式を工夫する必要がなくなり、考える労力がぐっと減ります。
列を挿入・削除しても式が壊れにくい
これはVLOOKUPを使っていて、最も多くの方が経験する「事故」ではないでしょうか。VLOOKUPは取り出す列を「左から3番目」というように番号で指定するため、表の途中に列を1つ挿入すると、番号がずれて別の列の値を返してしまったり、空欄になったりします。

XLOOKUPは、番号ではなく「答えを取り出す列」そのものを指定しています。そのため、表に列を挿入しても、指定した列が自動でついてくるので式が壊れません。列の増減が多い管理表ほど、こういった差が効いてきます。
この壊れにくさは、担当者が変わっても崩れないファイルづくり、つまり属人化の解消にもつながります。
見つからないときの処理を式の中で完結できる
検索した値が見つからないと、VLOOKUPは「#N/A」というエラーを返します。これを「該当なし」などの文字に変えたいときは、これまでは式全体をIFERRORで囲む必要があり、式が長く読みづらくなりがちでした。
XLOOKUPは、見つからなかったときに表示する値を、式の中に直接書き込めます。エラー処理のためだけに関数を二重にする必要がなくなり、式がすっきりと読みやすくなります。
=XLOOKUP(検索値, 検索範囲, 戻り範囲,"該当なし")
完全一致がはじめから使われる
VLOOKUPには、初心者がはまりやすい落とし穴があります。それは、最後の指定(完全一致か近似一致か)をうっかり省くと、「近い値」を勝手に探してくる「近似一致」になってしまうことです。コード表などで近似一致が働くと、まったく別の商品の値を静かに返してしまい、間違いに気づけないという事故につながります。
XLOOKUPは、はじめから「完全一致」で動くように作られています。ぴったり一致するものがなければ、先ほどの「該当なし」を返すだけなので、気づかないうちに誤った値を拾ってしまう心配がありません。
複数の列をまとめて取り出せる
商品コードから「商品名」「単価」「在庫数」をまとめて取り出したいとき、VLOOKUPではそれぞれに1つずつ、合計3つの式が必要でした。列が増えるほど式の数も増え、管理が大変になります。
XLOOKUPは、取り出す範囲に複数の列をまとめて指定すると、1つの式で横方向に自動で結果を並べてくれます(この機能を「スピル」と呼びます)。式の数が減るぶん、表もシンプルになり、修正が必要な場合もを一カ所を直すだけで済むようになります。

VLOOKUPからXLOOKUPへの移行手順
理由がわかったところで、実際にVLOOKUPをXLOOKUPへ置き換える手順を見ていきましょう。まずはシンプルな式から一つずつ試していくことをおすすめします。以下では、置き換え前と置き換え後の式を並べてご紹介します。
シンプルな形から置き換える
最初は、商品コードから単価を引くだけの、いちばんシンプルな式から始めましょう。ここでは、A列に商品コード、B列に商品名、C列に単価が入った商品マスタを想定します。
E2に入力した商品コードをもとに、単価を取り出す式は次のようになります。
置き換え前(VLOOKUP)
=VLOOKUP(E2,$A$2:$C$100,3,FALSE)
置き換え後(XLOOKUP)
=XLOOKUP(E2,$A$2:$A$100,$C$2:$C$100)
「左から3番目」という番号の指定が消え、「A列(商品コード)を探して、C列(単価)を返す」という素直な形になりました。

IFERRORで包んでいた式を置き換える
次に、目的の値が見つからなかったときに「該当なし」と表示していた式を置き換えてみます。VLOOKUPでは式全体をIFERRORで囲んでいましたが、XLOOKUPでは4つ目の指定として書き込むだけで済みます。
置き換え前(VLOOKUP)
=IFERROR(VLOOKUP(E2,$A$2:$C$100,3,FALSE),"該当なし")
置き換え後(XLOOKUP)
=XLOOKUP(E2,$A$2:$A$100,$C$2:$C$100,"該当なし")
式が短くなり、何をしているかがひと目でわかるようになりました。
左側の列を参照していた式を置き換える
商品名から、その左にある商品コードを引きたい。VLOOKUPでは直接できず、INDEXとMATCHの組み合わせが必要だったケースです。XLOOKUPなら、探す列と返す列を入れ替えて指定するだけで実現できます。
置き換え前(INDEXとMATCH)
=INDEX($A$2:$A$100,MATCH(E2,$B$2:$B$100,0))
置き換え後(XLOOKUP)
=XLOOKUP(E2,$B$2:$B$100,$A$2:$A$100)
複雑だった式が、基本の形とほとんど同じ書き方で済むようになります。
置き換えたあとに検算して確認する
置き換えが終わったら、必ず結果を確認しましょう。おすすめは、しばらくの間、元のVLOOKUPの式と、新しいXLOOKUPの式を隣同士に並べておく方法です。両方の結果が同じであれば、置き換えは成功しています。

数件だけでなく、存在しない商品コードや、表の最後の行など、少し特殊なケースでも同じ結果になるかを確認しておくと安心です。問題がないと確認できたら、元のVLOOKUPの列を削除して完成です。
当社では実際に商品マスタを模した検証用ファイルを作り、この記事の置き換えが正しく動くことを一つずつ確かめています。同じように、ご自身のデータのコピーで試しながら進めていただくのが、いちばん確実な方法です。
XLOOKUPが使えないときの選択肢
最後にお使いのExcelがXLOOKUPに対応していなかった場合の対処法を整理します。
INDEXとMATCHの組み合わせで代用する
XLOOKUPが使えない環境でも、INDEXとMATCHを組み合わせれば、検索する列より左のデータを取り出したり、列の増減に強い式を作ったりできます。書き方は少し難しくなりますが、当面をしのぐ現実的な方法です。
=INDEX(返したい列, MATCH(検索値, 探す列, 0))
VLOOKUPの弱点を補う定番の手法として、覚えておきましょう。
Microsoft 365への更新を検討する
もう一歩踏み込んだ選択肢が、Microsoft 365への切り替えです。XLOOKUPが使えるようになるのはもちろん、常に最新のマイクロソフトアプリが使えるようになり、他の新しい関数やAI機能の恩恵も受けられます。会社全体で古いExcelを使い続けている場合は、この機会に更新を検討してみるといいでしょう。
Googleスプレッドシートでも同じ関数が使える
あまり知られてはいませんが、GoogleスプレッドシートでもXLOOKUPは使えます。Excelのバージョンに縛られず、無料で試せるのが魅力です。通常のExcelとスプレッドシートを併用している会社であれば、スプレッドシート側で先にXLOOKUPに慣れておくという進め方もあります。
まとめ
VLOOKUPは今も現役の便利な関数ですが、XLOOKUPに置き換えることで、「列を挿入しても壊れない」「エラー処理が式の中で完結する」「左側の列も取り出せる」といった、日々の小さなストレスの多くが解消されます。これは単に作業が楽になるだけでなく、あとから見た人が理解しやすい、壊れにくいファイルづくりの第一歩でもあります。
まずはお使いのExcelのバージョンを確認し、簡単な式から一つずつ置き換えてみてください。既存の式を無理にすべて書き換える必要はありません。新しく作る表からXLOOKUPを取り入れていくだけでも、エクセル表は着実に扱いやすくなっていきます。
表引きに慣れてきたら、次は集計の自動化にも目を向けてみてはいかがでしょうか。手作業の集計をAIに任せる方法については、別の記事でご紹介しています。
担当者が変わっても困らないファイルづくりという観点では、属人化への対策の記事もあわせてご覧いただくと、理解が深まります。




コメント