概要
Excelで「検索したい値はあるのに、うまく拾えない」「VLOOKUPだと左側を検索できない」「列を足したら式が壊れた」。こういう地味なストレス、仕事でかなり多いです。で、そこをまとめて解決しやすいのが XLOOKUP です。検索系の関数の中でもかなり新しめで、縦横どちらにも対応しやすく、列の追加にも比較的強いのが特徴です。
特に、商品コードから商品名を引く、社員番号から部署名を出す、請求書番号から金額を参照する、といった「検索して別の値を返す」作業に向いています。しかも、見つからなかったときの表示や、前から順に探すか後ろから探すかまで指定できるので、単なる置き換え関数ではありません。実務で使うと、ちょっとした手戻りが減って、地味に効率が上がります。
ただし、万能というわけでもありません。古いExcelでは使えないことがあるし、複雑な使い方をすると逆に見づらくなることもあります。なので、何が得意で、どこが弱いかを押さえたうえで使うのが大事です。
XLOOKUPとは何か
XLOOKUPは、指定した値を検索して、対応する別の値を返す関数です。たとえば「A列に社員番号が並んでいて、B列に氏名がある」なら、社員番号を入れるだけで氏名を返せます。これまでよく使われてきたVLOOKUPの上位互換のように見られることが多いですが、実際にはもっと柔軟です。
基本構文は次の考え方です。
XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])
この6つの引数があることで、単純な検索だけでなく、近似一致や後ろから検索、エラー時の表示まで細かく制御できます。
VLOOKUPとの違い
VLOOKUPは長く使われてきた定番ですが、弱点もはっきりしています。たとえば、検索列が左端にないと使いにくい、列番号を手入力するので列追加に弱い、という問題があります。XLOOKUPはそのあたりをかなり改善しています。
| 項目 | XLOOKUP | VLOOKUP | INDEX/MATCH |
|---|---|---|---|
| 左側の列を検索 | 可能 | 苦手 | 可能 |
| 列追加への強さ | 強い | 弱い | 比較的強い |
| 見つからない時の表示 | 指定可能 | IFERRORなどで補う | IFERRORなどで補う |
| 後ろから検索 | 可能 | 不可 | 工夫が必要 |
| 学習コスト | 中 | 低 | 高め |
VLOOKUPはシンプルで分かりやすい反面、表の構造が少し変わるだけで壊れやすいです。XLOOKUPはその弱点をかなり潰しています。INDEX/MATCHは昔から「柔軟で強い」と言われてきましたが、式がやや長くなりがちです。XLOOKUPは、その面倒さを減らした印象です。
メリット
左側の列も検索できる
実務では、検索したい値が表の右側にあるとは限りません。たとえば、受注一覧で「受注番号は右端、顧客名は左側」にあるような表は普通にあります。VLOOKUPだと左方向の検索が苦手ですが、XLOOKUPなら検索範囲と戻り範囲を別々に指定できるので、列の位置に縛られません。
これだけで、表をわざわざ並べ替える手間が減ります。地味ですが、こういう小さい時短が積み重なるとかなり効きます。
列の追加に強い
VLOOKUPは「何列目を返すか」を数字で指定するため、途中に列を挿入すると参照がズレることがあります。XLOOKUPは戻り範囲を直接指定するので、列番号を数える必要がありません。表の途中に列が増えても、式が壊れにくいのはかなり大きな利点です。
たとえば、商品マスタに「カテゴリ」列を後から追加しても、XLOOKUPの式は戻り範囲をそのまま参照していれば影響を受けにくいです。現場で表が育っていくほど、この強さが効いてきます。
見つからない場合の処理を直接書ける
検索した値が見つからないと、Excelはエラーを返します。VLOOKUPやINDEX/MATCHでは、見栄えを整えるためにIFERRORを重ねることが多いですが、XLOOKUPは引数内で「見つからない場合」の文字を指定できます。
たとえば「該当なし」「未登録」「データなし」といった表示を最初から組み込めるので、式が少し読みやすくなります。エラー処理のために関数が何重にもなるのを嫌う人には、かなりありがたい仕様です。
後ろから検索できる
同じ値が複数ある場合、最後に入力されたデータを拾いたい場面があります。たとえば、最新の単価、最後の受注日、最後の更新情報を取りたいときです。XLOOKUPは検索モードを変えることで、後ろから探せます。
これは、単純なマスタ参照だけでなく、履歴管理っぽい使い方にも向いています。わざわざ並べ替えたり、別列を作ったりしなくても済むので、作業がスッキリします。
近似一致やワイルドカードにも対応しやすい
XLOOKUPは完全一致だけでなく、近似一致やワイルドカード検索にも対応できます。たとえば、商品名の一部から探したい、前方一致で候補を拾いたい、という場面でも使えます。
もちろん、検索条件が曖昧になるほど誤ヒットのリスクは上がりますが、うまく使えば検索の幅が広がります。単なる「コード検索」だけで終わらないのがXLOOKUPの強みです。
実務での再利用性が高い
一度XLOOKUPの考え方に慣れると、別の表でもそのまま応用しやすいです。社員管理、在庫管理、請求管理、顧客一覧など、検索対象が変わっても構造は似ています。関数そのものを覚えるというより、検索範囲と戻り範囲を分けて考える癖がつくのが大きいです。
デメリット
古いExcelでは使えないことがある
XLOOKUPは比較的新しい関数です。そのため、Officeのバージョンによっては使えません。相手先が古いExcelを使っていると、ファイルを開いたときにエラーになったり、式が正しく動かなかったりします。
社内で同じ環境なら問題になりにくいですが、取引先とのファイル共有が多いなら注意が必要です。便利でも、全員が使えるとは限らないのが現実です。
慣れていないと式の見た目が少し長い
VLOOKUPに慣れている人からすると、XLOOKUPは引数が多く見えます。実際、単純な検索なら少し長く感じることがあります。特に、見つからない場合や検索モードまで含めると、初心者には少し圧があります。
とはいえ、引数を全部使う必要はありません。最初は最低限の形で使い、必要になったら機能を足していくのが自然です。最初から全部盛りにすると、むしろ事故ります。
複雑な条件検索には別の工夫が必要
XLOOKUPは便利ですが、複数条件での検索をやるときは、配列や補助列を使うことがあります。たとえば「部署名が営業で、かつ入社年が2024年の人を探す」といった条件です。こういうケースでは、XLOOKUP単体で完結しないこともあります。
もちろん工夫すればできますが、誰が見ても分かる式にするには設計が必要です。便利だからといって、何でもXLOOKUPで押し切るのはおすすめしません。
データの重複に気づきにくい
XLOOKUPは一致した最初の値を返すため、同じキーが重複していると、どれを拾ったのか分かりにくいです。たとえば社員番号が重複していたら、意図しない行を返す可能性があります。
つまり、関数の問題というより、元データの設計ミスが表面化しにくいのが弱点です。検索関数は便利ですが、ユニークキーの管理が甘いと普通に事故ります。
活用方法または使い方
基本の使い方を押さえる
まずは基本形です。たとえば、A列に商品コード、B列に商品名があるとします。C2に商品コードを入力して、D2に商品名を表示したい場合、次のような考え方になります。
検索値:C2
検索範囲:A列
戻り範囲:B列
この形で「C2の商品コードをA列から探して、見つかった行のB列を返す」という動きになります。これがXLOOKUPの本質です。検索する列と返す列を別々に指定する、ここが最重要です。
商品マスタから名称を引く
実際の利用シーンとして最も多いのが、商品コードから商品名を引くケースです。たとえば受注データには商品コードしか入っていないけれど、帳票や確認画面では商品名も必要、という場面はよくあります。
このとき、商品マスタを別シートに置いておき、受注データ側でXLOOKUPを使えば、商品コードを入れるだけで商品名、単価、カテゴリなどを自動表示できます。手入力で転記するより圧倒的にミスが減ります。
社員番号から部署や氏名を表示する
人事や総務の現場でも相性がいいです。たとえば勤怠表に社員番号だけ入力し、XLOOKUPで氏名や部署を表示する使い方です。社員が増えても、参照元のマスタを更新するだけで済むため、ファイル運用がかなり楽になります。
新入社員の追加や部署異動が多い会社ほど、こうした参照式の価値が上がります。毎回手で直すより、マスタを正しく保つほうが結果的に速いです。
請求書番号から金額や入金状況を確認する
経理や営業事務では、請求書番号をキーにして金額や入金状況を引く使い方が便利です。問い合わせ対応のとき、「この請求書、いくらでしたっけ」「入金済みですか」といった確認がすぐできます。
たとえば一覧表に請求書番号を入れておき、右隣の列にXLOOKUPを設定しておけば、確認作業がかなり速くなります。検索対象が増えても、関数の考え方は同じなので横展開しやすいです。
最新データを拾う
同じ商品コードや顧客IDが複数回出てくるなら、後ろから検索する設定が役立ちます。たとえば、最新の単価や最後に更新された担当者名を取りたいときです。
通常の検索だと最初の一致を拾いますが、検索モードを調整すれば最後の一致を返せます。履歴管理、更新履歴、最新コメントの取得など、更新が重なるデータに向いています。
見つからない時の表示を整える
実務では、エラーをそのまま出すと見た目が悪いです。そこで「見つからない場合」の引数を使って、未登録なら「未入力」、該当なしなら「データなし」と表示しておくと親切です。
このひと手間で、ファイルを受け取った相手の印象も変わります。関数は中身だけでなく、見た目の整え方も大事です。
よくあるミスを避ける
XLOOKUPでつまずきやすいのは、検索範囲と戻り範囲のサイズが合っていないケースです。たとえば検索範囲がA2:A100なのに、戻り範囲がB2:B99だと、正しく動きません。また、空白や全角半角の違い、余計なスペースが原因で見つからないこともあります。
実務では、関数を疑う前にデータを疑うのが鉄則です。検索関数は、元データが整っていて初めて気持ちよく動きます。
VLOOKUPからの置き換え方
既存ファイルでVLOOKUPを使っているなら、まずは1か所だけXLOOKUPに置き換えて挙動を確認するのが安全です。いきなり全置換すると、想定外の参照ズレが出ることがあります。
おすすめは、見つからない場合の表示と左側検索が必要な箇所から変えることです。ここはXLOOKUPの強みがはっきり出ます。逆に、単純な参照だけで十分な場面なら、無理に変えなくても構いません。
実務での運用ポイント
XLOOKUPは便利ですが、運用は別問題です。マスタの更新ルールを決める、キー項目を重複させない、検索元の表を勝手に並べ替えない。この3つはかなり重要です。
関数が優秀でも、元データが雑だと結果は雑になります。Excel作業は、式の巧さよりデータ設計のほうが効く場面が多いです。ここを軽視すると、結局あとで直す羽目になります。
まとめ
XLOOKUPは、検索系Excel関数の中でもかなり使い勝手がいい部類です。左側検索、列追加への強さ、見つからない場合の指定、後ろから検索など、実務で欲しい機能が一通りそろっています。VLOOKUPの弱点を補いたい人には、かなり有力な選択肢です。
一方で、古いExcelでは使えないことがある、複雑な条件では工夫が必要、データの重複には弱い、といった注意点もあります。つまり、万能ではないけれど、ハマる場面ではかなり強い関数です。
仕事で使うなら、商品マスタ、社員管理、請求管理、在庫管理あたりから入ると実感しやすいです。検索したい値と返したい値を分けて考えるだけで、Excelの見え方が少し変わります。地味ですが、こういう関数を使いこなせると、毎日の細かい作業がちゃんと減ります。
