VLOOKUPとXLOOKUPの違いは?検索方向・列挿入・エラー処理を実例で徹底比較

目次
VLOOKUPとXLOOKUPの違いは?検索方向・列挿入・エラー処理を実例で徹底比較
VLOOKUPとXLOOKUPの違いは?検索方向・列挿入・エラー処理を実例で徹底比較
@ creator • Click to Play Video Inline
🎵 VLOOKUPとXLOOKUPの違いは?検索方向・列挿入・エラー処理を実例で徹底比較

Excelで商品コードや社員番号から必要な情報を取り出すとき、よく使われるのがVLOOKUP関数とXLOOKUP関数です。どちらも表から条件に合うデータを検索する関数ですが、検索できる方向、戻り値の指定方法、列を挿入したときの数式の安定性、検索値が見つからない場合の処理などに明確な違いがあります。

2026年現在、Microsoft 365やExcel 2021以降の対応環境では、従来のVLOOKUP関数に代わる選択肢としてXLOOKUP関数が有力です。ただし、古いExcelとの互換性や既存の業務ファイルとの関係を考えると、すべてのケースで機械的に置き換えればよいわけではありません。Microsoft公式サポートもXLOOKUPをVLOOKUPの改良版として案内していますが、利用できるExcelのバージョンには注意が必要です。

📌 【この記事の重要ポイントまとめ】
  • 基本的な違い:VLOOKUPは表の左端列から検索して右側の列を返す関数、XLOOKUPは検索範囲と戻り範囲を別々に指定できる関数です。
  • 実務上の違い:XLOOKUPは列番号の指定が不要で、左方向への検索や見つからない場合のメッセージ表示にも対応しています。
  • 選び方:新規作成や継続的に更新する表にはXLOOKUPが便利ですが、Excel 2016・2019との互換性が必要ならVLOOKUPなどの代替手段を検討します。

【基本を整理】VLOOKUP関数とXLOOKUP関数の違いは?7項目で徹底比較

VLOOKUPとXLOOKUPの最も大きな違いは、検索する列と結果を返す列の指定方法です。VLOOKUPは検索対象の表の左端列を基準にするのに対し、XLOOKUPは検索範囲と戻り範囲を独立して指定できます。

例えば、A列に商品コード、B列に商品名、C列に単価が並んでいる表で、商品コードから単価を調べるとします。どちらの関数でも実現できますが、XLOOKUPなら検索対象と返す対象を直接指定できるため、数式の意味を把握しやすくなります。

比較項目VLOOKUP関数XLOOKUP関数
検索方向表の左端列で検索し、右側の列から値を返す左右どちらの列からでも値を返せる
検索範囲の指定検索値を含む表全体を指定する検索範囲と戻り範囲を別々に指定する
戻り値の指定左端列を1とする列番号を指定する戻り範囲を直接指定する
完全一致の初期設定省略すると近似一致になる完全一致が標準設定
列挿入への対応列番号が固定値の場合、意図しない列の値を返すことがある範囲を直接指定するため、列番号のずれを避けやすい
検索値がない場合通常は#N/A。IFERRORなどで処理する第4引数で代替メッセージを指定できる
逆方向検索通常の構文では左方向への検索に対応しない左方向への検索や末尾からの検索に対応する

この比較で特に注目したいのは、完全一致の初期設定と列番号の有無です。VLOOKUPでは第4引数を省略すると近似一致として処理されるため、商品コードや社員番号の照合では意図しない結果につながることがあります。XLOOKUPは標準で完全一致を探すため、初心者でも指定ミスを減らしやすい設計です。

ただし、VLOOKUPが必ず不正確という意味ではありません。完全一致を明示し、列番号を適切に管理すれば、現在も実用的な関数です。重要なのは、表の構造と運用方法に合った関数を選ぶことです。

当時のメディア報道・掲載写真
【検証資料 1】当時のメディア報道・掲載写真(出典:st-note.com)

【初心者向け】VLOOKUP関数の使い方と具体例

VLOOKUPは、Excelの検索関数として広く使われてきた定番の関数です。既存の業務ファイルや、古いExcel環境との互換性が求められる場面では、今でも役立ちます。

基本構文は次のとおりです。

=VLOOKUP(検索値, 範囲, 列番号, 検索方法)

それぞれの引数には、次の意味があります。

  • 検索値:検索したい商品コードや社員番号など。
  • 範囲:検索対象の列と、返したい値がある列を含む表。
  • 列番号:指定した範囲の左端列を1として、何列目の値を返すかを指定する数値。
  • 検索方法:FALSEで完全一致、TRUEで近似一致。省略時はTRUEとして扱われます。

例えば、A列に商品コード、B列に商品名、C列に単価があり、E2セルに検索したい商品コードが入力されているとします。商品コードから単価を取得する数式は次のとおりです。

=VLOOKUP(E2,$A$2:$C$100,3,FALSE)

この数式は、E2の値をA2:A100に相当する表の左端列で探し、一致する行の3列目、つまり単価を返します。第4引数のFALSEを指定することで、商品コードの完全一致を検索できます。

ここで覚えておきたいのが、列番号はワークシート全体の列番号ではなく、指定した範囲内で数えるという点です。範囲がB2:D100なら、B列が1、C列が2、D列が3になります。

VLOOKUPで起こりやすいミスは、列番号の数え間違いと、第4引数の指定漏れです。特に商品コードや社員番号など、完全に一致するデータを取り出す用途ではFALSEを明示する習慣を付けましょう。

一方、VLOOKUPには近似一致を活用できる利点もあります。例えば、売上金額に応じた手数料率や点数に応じた評価区分を、適切に並べた基準表から取得する用途です。この場合はTRUEを指定し、基準表の並び順と境界条件を正しく管理する必要があります。

【実例で理解】XLOOKUP関数の使い方と具体例

XLOOKUPは、検索する範囲と返す範囲を直接指定できる関数です。VLOOKUPのように列番号を数える必要がないため、数式を読んだときに何を検索し、何を返すのかが分かりやすくなります。

基本構文は次のとおりです。

=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])

引数の役割は以下のとおりです。

  • 検索値:探したい値。
  • 検索範囲:検索値を探す列または行。
  • 戻り範囲:一致した位置に対応する値を取得する列または行。
  • 見つからない場合:一致する値がない場合に表示する文字列など。
  • 一致モード:完全一致、近似一致、ワイルドカード検索などを指定する。
  • 検索モード:先頭から検索するか、末尾から逆方向に検索するかなどを指定する。

先ほどと同じく、A列が商品コード、B列が商品名、C列が単価、E2が検索値の場合、単価を取得する数式は次のとおりです。

=XLOOKUP(E2,$A$2:$A$100,$C$2:$C$100,"該当なし")

この数式では、A2:A100からE2と一致する商品コードを探し、対応する行のC2:C100から単価を返します。一致する商品コードがなければ「該当なし」と表示されます。

第4引数を省略した場合、検索値が見つからなければ通常は#N/Aエラーになります。したがって、「該当なし」などの文字列を指定しておけば、検索結果を確認する担当者にも状況が伝わりやすくなります。

XLOOKUPの大きな強みは、検索列と戻り列を独立させられることです。例えば、B列の商品名からA列の商品コードを取得する場合も、次の数式で対応できます。

=XLOOKUP(E2,$B$2:$B$100,$A$2:$A$100,"該当なし")

検索範囲がB列、戻り範囲がA列なので、左方向への検索が成立します。VLOOKUPだけで同じ処理をする場合は、表の並べ替えやINDEX関数とMATCH関数の組み合わせなどを検討する必要があります。

また、XLOOKUPは一致した値が複数存在する場合、標準では検索範囲の先頭から探して最初に見つかった値を返します。重複データがある場合は、最初の一致が正しいのか、最新のレコードを取得する必要があるのかを事前に確認してください。

活動歴および当時の関連ビジュアル記録
【検証資料 2】活動歴および当時の関連ビジュアル記録(出典:image.st-hatena.com)

【実務で差が出る】検索方向・列挿入・エラー処理の違い

VLOOKUPとXLOOKUPの使い分けで大切なのは、数式の書きやすさだけではありません。表の列構成が変わる頻度や、検索結果が見つからない場合の扱いまで考慮することで、日々の修正作業や入力ミスを減らせます。

1.検索方向と左右検索

VLOOKUPは、指定した表の左端列を検索し、その右側にある列から値を返します。検索値の列より左側にある情報を取得することは、通常のVLOOKUPの構文ではできません。

対してXLOOKUPは、検索範囲と戻り範囲を別々に指定します。戻り範囲が検索範囲より左側にあっても問題ありません。列の配置を変えずに必要な情報を取得できるため、既存の一覧表を維持したい場合にも便利です。

2.列挿入による数式のずれ

VLOOKUPで注意したいのが、第3引数の列番号です。例えば、A列の商品コードからC列の単価を取得する数式で列番号に3を指定している場合、検索対象の表の途中に列を追加すると、Excelが参照範囲を調整しても、固定値の3が意図した項目を指さなくなることがあります。

列が増えたあとも数式がエラーにならず、別の項目を返してしまうケースは厄介です。表示された値だけを見ると正常に動作しているように見えるため、集計結果や請求金額などに影響するおそれがあります。

XLOOKUPは戻り範囲を直接指定するため、この種の列番号のずれを避けやすい設計です。ただし、XLOOKUPでも参照先の列を削除したり、数式が参照する範囲そのものを変更したりすれば、参照エラーや意図しない結果が発生する可能性はあります。

継続的に更新する業務表なら、XLOOKUPへの切り替えに加え、Excelのテーブル機能を活用し、列名に基づいて参照する方法も検討するとよいでしょう。

3.検索値が見つからない場合のエラー処理

VLOOKUPで一致する値が見つからない場合、通常は#N/Aエラーが表示されます。エラーをまとめて処理するには、IFERROR関数を組み合わせる方法があります。

=IFERROR(VLOOKUP(E2,$A$2:$C$100,3,FALSE),"該当なし")

一方、XLOOKUPでは第4引数に代替表示を指定できます。

=XLOOKUP(E2,$A$2:$A$100,$C$2:$C$100,"該当なし")

どちらも見つからない場合に分かりやすい表示ができますが、エラー処理の意味は同じではありません。IFERRORは#N/A以外のエラーもまとめて置き換えるのに対し、XLOOKUPの第4引数は基本的に一致する値が見つからない場合の処理に使います。

この違いは実務で重要です。例えば、参照範囲の指定ミスなどによって発生したエラーまでIFERRORで隠してしまうと、問題の発見が遅れる可能性があります。原因を調べる必要がある業務ファイルでは、エラーをすべて非表示にするのではなく、何を利用者に表示し、何を検知できる状態にするかを考えましょう。

【応用編】ワイルドカード検索と近似一致を使いこなす

VLOOKUPとXLOOKUPは、完全一致だけでなく、条件に応じて近似一致やワイルドカード検索にも対応します。ただし、引数の指定方法が異なるため、関数を置き換える際には注意が必要です。

ワイルドカード検索の基本

ワイルドカードは、文字列の一部が分からない場合や、特定の文字列を含むデータを検索したい場合に役立ちます。Excelでよく使う記号は次の3つです。

  • :任意の文字列を表す。
  • ?:任意の1文字を表す。
  • ~:直後のワイルドカード記号を通常の文字として扱うために使う。

例えば、商品名に「東京」という文字列を含むデータを探し、対応する単価を取得したいとします。E2に「東京」と入力されている場合、XLOOKUPでは次の数式を使えます。

=XLOOKUP(""&E2&"",$B$2:$B$100,$C$2:$C$100,"該当なし",2)

第5引数の一致モードに2を指定することで、ワイルドカードを使った検索が有効になります。「東京」が商品名の先頭にある場合だけでなく、途中や末尾に含まれている場合も検索対象になります。

VLOOKUPでもワイルドカード検索は可能です。例えば、B列の商品名からC列の単価を取得する場合は、次のように指定します。

=VLOOKUP(""&E2&"",$B$2:$C$100,2,FALSE)

VLOOKUPでは第4引数にFALSEを指定したうえで、検索値にワイルドカードを組み込んでいます。XLOOKUPだけがワイルドカード検索に対応しているわけではない点は、よくある誤解の一つです。

なお、ワイルドカード検索は条件に一致するデータが複数存在する場合、先に見つかったデータを返すことがあります。部分一致で検索した結果が本当に正しいかどうかは、商品名や顧客名などの重複状況も含めて確認しましょう。

近似一致と検索方向の指定

XLOOKUPは、第5引数の一致モードで近似一致も指定できます。代表的な設定は、完全一致の0、完全一致がない場合に次に小さい値を返す-1、次に大きい値を返す1、ワイルドカード検索の2です。

さらに第6引数の検索モードを使うと、標準の先頭から末尾への検索に加え、末尾から先頭への逆方向検索も指定できます。例えば、同じ商品コードが複数行に存在し、最後に登録された行の値を取得したい場合は、検索モードに-1を指定します。

=XLOOKUP(E2,$A$2:$A$100,$C$2:$C$100,"該当なし",0,-1)

ただし、最後に登録された行が必ず最新データとは限りません。日付順に並んでいるか、登録順と更新順が一致しているかなど、データの管理方法を確認したうえで利用する必要があります。

公の場での発言・インタビュー報道記録
【検証資料 3】公の場での発言・インタビュー報道記録(出典:digima.cocoo.co.jp)

【2026年版】VLOOKUPからXLOOKUPへの置き換え手順と対応バージョン

既存のVLOOKUPをXLOOKUPに置き換える際は、数式の見た目だけを変更するのではなく、元の検索条件と結果が一致するかどうかを確認することが大切です。特に、近似一致を利用している数式を完全一致に変更してしまうと、業務上の意味が変わる場合があります。

置き換えは次の手順で進めます。

  1. 既存の数式を確認する:検索値、検索範囲、列番号、第4引数のTRUE・FALSEの指定を確認します。
  2. 検索範囲と戻り範囲を分ける:VLOOKUPの表範囲から、実際に検索する列と値を返す列を特定します。
  3. XLOOKUPに書き換える:検索値、検索範囲、戻り範囲の順に指定し、必要なら第4引数に代替表示を設定します。
  4. 検索条件を引き継ぐ:元の数式が近似一致やワイルドカード検索を使っていた場合は、一致モードを適切に設定します。
  5. 結果を照合する:通常のデータだけでなく、検索値が存在しないケース、重複データ、境界値、列を追加したケースも確認します。
  6. 共有環境を確認する:ファイルを使う全員のExcelがXLOOKUPに対応しているかを確認してから運用を切り替えます。

例えば、元の数式が次のとおりだったとします。

=VLOOKUP(E2,$A$2:$C$100,3,FALSE)

これをXLOOKUPに置き換えると、次のようになります。

=XLOOKUP(E2,$A$2:$A$100,$C$2:$C$100,"該当なし")

完全一致を検索して単価を返すという目的は同じですが、列番号がなくなり、見つからない場合の表示も指定できるようになっています。

ただし、元のVLOOKUPがTRUEによる近似一致を使っている場合は要注意です。XLOOKUPの既定値は完全一致なので、単純に置き換えると検索結果が変わる可能性があります。基準表を使って料金区分や評価ランクを判定している場合は、従来の条件とXLOOKUPの一致モードが同じ意味になるかを必ず確認してください。

ExcelのバージョンとXLOOKUPの対応状況

Microsoft公式サポートのXLOOKUP関数解説では、Microsoft 365、Excel 2021、Excel 2024などの対応環境が案内されています。一方、同じ公式解説には、XLOOKUPはExcel 2016およびExcel 2019では利用できないとの注意書きがあります。

そのため、2026年に新しいファイルを作る場合でも、職場や取引先で使われているExcelのバージョンを確認することが欠かせません。新しいExcelで作成したXLOOKUP入りのブックを古いExcelで開けたとしても、関数が正常に計算できるとは限りません。

複数のバージョンが混在する環境では、VLOOKUPを継続する方法のほか、INDEX関数とMATCH関数を組み合わせて左右検索に対応する方法もあります。互換性を優先するのか、数式の管理しやすさを優先するのか、利用者全体の環境を踏まえて判断しましょう。

Microsoft公式の関数解説がXLOOKUPを推奨していることは、移行を検討するうえでの有力な判断材料です。ただし、古いExcelとの互換性や既存の数式が持つ意味まで自動的に解決するものではありません。

【vlookup xlookup 違い】に関するよくある質問(FAQ)

Q1:VLOOKUPとXLOOKUPは結局どちらを使うべきですか?

A1:新規作成する表や、列の追加・変更が多い業務ファイルではXLOOKUPがおすすめです。左右どちらの方向にも検索でき、完全一致が標準で、列番号の指定も不要だからです。ただし、Excel 2016・2019との互換性が必要な場合は、VLOOKUPなどの代替手段を検討してください。

Q2:XLOOKUPはVLOOKUPより必ず正確ですか?

A2:必ず正確というわけではありません。XLOOKUPは完全一致が標準で、列番号の指定ミスを避けやすい設計ですが、検索値の重複、誤った参照範囲、データの入力ミスなどがあれば、期待した結果を返さないことがあります。どちらの関数でも、検索条件と元データの品質を確認する必要があります。

Q3:VLOOKUPでもワイルドカード検索はできますか?

A3:できます。検索値にアスタリスク()や疑問符(?)を使用し、第4引数にFALSEを指定すると、ワイルドカード検索が可能です。XLOOKUPでは第5引数の一致モードに2を指定します。どちらの場合も、複数の候補が一致する可能性に注意してください。

Q4:XLOOKUPで左方向に検索するにはどうすればよいですか?

A4:第2引数に検索する列、第3引数に値を取得する列を指定します。例えば、B列の商品名からA列の商品コードを取得するなら、=XLOOKUP(E2,$B$2:$B$100,$A$2:$A$100,"該当なし")とします。戻り範囲が検索範囲より左にあっても問題ありません。

Q5:XLOOKUPが使えない場合はどうすればよいですか?

A5:まずExcelのバージョンを確認してください。Microsoft公式サポートでは、Excel 2016とExcel 2019ではXLOOKUPを利用できないと案内されています。互換性が必要な場合はVLOOKUPやINDEXとMATCHの組み合わせを検討し、ファイルを利用する全員の環境で動作するかを確認しましょう。

まとめ:今後のExcel運用で失敗しないための判断基準

VLOOKUPとXLOOKUPの違いは、単に新旧の関数というだけではありません。検索方向、列番号の指定、完全一致の初期設定、列挿入への対応、エラー処理など、表を継続的に運用するうえでの扱いやすさに差があります。

これからExcelの数式を作るなら、対応環境を確認したうえでXLOOKUPを第一候補にするのが合理的です。検索範囲と戻り範囲を分けて指定でき、左右検索や見つからない場合の処理も簡潔に記述できるため、数式の保守や引き継ぎを進めやすくなります。

一方、既存のVLOOKUPが安定して動作しており、古いExcelとの互換性が必要な場合は、無理にすべてを置き換える必要はありません。近似一致を使う数式や、複数の列を参照する複雑な数式は、移行によって結果が変わらないかを慎重に検証しましょう。

関数を選ぶ際は、対応バージョン、検索するデータの重複、列構成の変更頻度、エラーの扱いという4つの観点を確認することが大切です。使いやすい関数を選ぶだけでなく、数式の意図が明確で、担当者が変わっても安全に管理できる表を作ることが、Excel業務の効率化につながります。 (出典: vlookup xlookup 違い(Yahoo!ニュース))

vlookup xlookup 違い
vlookup xlookup 違い
vlookup xlookup 違い