VLOOKUPとXLOOKUPの違いとは
Excelでデータを検索する際、VLOOKUP関数を使用することが多いでしょう。データの多い表からでも、指定した検索値をもとに希望のデータを抽出することができて便利です。
一方、XLOOKUP関数は2020年1月にVLOOKUPの後継としてリリースされ、VLOOKUPの上位互換性を持つ関数です。VLOOKUPを拡張した機能を持ち、さらに便利な検索を行うことができます。
この記事では、VLOOKUPとXLOOKUPの違いを理解してより活用したい方のために、それぞれの関数の使い方の概要、機能の違い、実際の使用例などを解説していきます。
【参考】:Announcing XLOOKUP|
VLOOKUPとXLOOKUPの概要
ここではまず、VLOOKUPとXLOOKUPがどのようなものなのかを説明します。基本事項を押さえておきましょう。
VLOOKUPとは
VLOOKUPとはExcelの関数の1つで、指定した検索値を表の左端の列から検索し、その値に一致する行の他の列から値を返すものです。
VLOOKUPを使うことで、手動で検索してデータを探す手間を省き、ミスを減らすことができます。
また、検索対象のデータが大量であっても、特定の値を素早く検索し、対応する情報を取得することができます。
XLOOKUPとは
XLOOKUPは2020年にリリースされた新しい関数です。VLOOKUPの機能を拡張した関数として登場しました。
XLOOKUPには、VLOOKUPにおける「検索範囲の右方向の値しか取得できない」という制約がなく、左方向から値を取得できるのが大きな特徴です。
さらに、XLOOKUPではVLOOKUPよりエラー処理が容易であること、検索方法(一致モード)を省略した時に「完全一致」として扱われることなどから、より検索を簡単に行うことができます。
XLOOKUPが使用できるExcelの対応バージョン
XLOOKUP関数は、Excel 2021やMicrosoft 365で提供されるExcelで使用することができます。(2024年7月時点)
自分が持っているExcelで使えない場合は、Web版であるExcel for the webの無料版でもXLOOKUPを使うこともできるため、動作を試してみると良いでしょう。
【参考】:Excel 2021 for Windows の新機能 【参考】:無料のオンライン スプレッドシート ソフトウェア: Excel | Microsoft 365
VLOOKUPの構文と使い方
VLOOKUPとXLOOKUPの違いを解説する前に、まずはVLOOKUPの構文と使い方を確認しておきましょう。検索値を指定して、範囲から指定した列番号の値を取得します。
VLOOKUPの構文
VLOOKUPの基本構文は「=VLOOKUP(検索値, 範囲, 列番号, 検索方法)」です。それぞれの引数について解説していきます。
■検索値 特定のIDや名前などの探したいデータを指定します。
■範囲 検索対象となるデータの範囲を指定します。
■列番号 取得したいデータが含まれる列を指定します。
■検索方法 TRUE(近似一致)かFALSE(完全一致)を指定します。
具体的な例として、「=VLOOKUP("A123", B3:D12, 3, FALSE)」という数式を見てみましょう。
この場合、「A123」という値をB3からD12の範囲で検索し、「A123」がある行の左端から3列目の値を返します。検索方法がFALSEなので、完全一致する値を探します。
VLOOKUPの使い方
例えば、出席番号と氏名が入力されたデータから特定の社員番号に対応する氏名を抽出する場合を考えてみます。
セルE3に検索したい社員番号を入力すると、セルE5にその氏名を表示させるようにしましょう。
E3に入力した社員番号「S0003」の氏名を取得するには、セルE5に「=VLOOKUP(E3, B2:C12, 2, FALSE)」を入力します。検索値が「E3」、範囲が「B2:C12」、列番号が「2」、検索方法が「FALSE」です。
列番号は、指定範囲内で検索したい列の位置を示します。この例では、B列が1列目、C列が2列目なので、「2」を指定しています。
これで、B列とC列の範囲から社員番号「S0003」に対応する氏名を取得できます。
XLOOKUPの構文と使い方
次に、XLOOKUPの基本的な構文と使い方を確認します。6つの引数のうち必須である引数は3つで、残りはオプションのため省略することができます。
XLOOKUPの構文
XLOOKUPの基本構文は、「=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])」です。
このうち必須である引数は、検索値、 検索範囲、戻り範囲の3つです。見つからない場合、一致モード、検索モードはオプションの引数のため、指定しなくても検索が可能です。
■検索値 特定のIDや名前などの探したいデータを指定します。
■検索範囲 検索値を検索する範囲を指定します。
■戻り範囲 検索値に対応する値を返す範囲を指定します。
■見つからない場合 検索値が見つからなかった場合に返す値を指定します。
■一致モード 完全一致や近似一致を指定できます。一致モードの指定値は以下の通りです。
「0」 または省略・・・完全一致(既定の設定) 「-1」・・・完全一致、見つからない場合は次に小さい項目が表示される 「1」・・・完全一致、見つからない場合は次に大きい項目が表示される 「2」・・・*、?、~(チルダ)などのワイルドカードとの一致
■検索モード 順方向や逆方向の検索を指定します。検索モードの指定値は以下の通りです。
「1」 または省略・・・先頭から末尾に向かって検索する(既定の設定) 「-1」・・・末尾から先頭へ逆方向に検索する 「2」・・・昇順に入れ替えられた検索範囲を使ってバイナリ検索する 「-2」・・・降順に入れ替えられた検索範囲を使ってバイナリ検索する
例えば、以下の図で特定の商品ID「A123」に対応する商品名を検索する場合、「=XLOOKUP("A123", B3:B12, D3:D12, "見つかりません", 0, 1)」と入力します。
この例では、「A123」という商品IDをB3:B12の範囲で検索し、対応する商品名をD3:D12から取得します。
B3:B12の範囲に「A123」が見つからない場合は「見つかりません」と表示するように指定しています。また、一致モードと検索モードの指定により、完全一致で、先頭から末尾に向かって検索します。
XLOOKUPの使い方
XLOOKUP関数を使用して、出席番号と氏名が入力されたデータから特定の社員番号に対応する氏名を抽出する方法を説明します。
以下の例では、セルE3に検索したい社員番号を入力し、セルE5にその氏名を表示させます。検索範囲は「B2:B12」、戻り範囲は「C2:C12」とします。ここでは、4つ目以降の引数を省略して、シンプルに記述しています。
E3に記入した社員番号「S0003」の氏名を取得するには、セルE5に「=XLOOKUP(E3, B2:B12, C2:C12)」と入力します。これで、セルE5に検索した氏名が表示されます。
VLOOKUPとXLOOKUPの違い
ここでは、VLOOKUPとXLOOKUPの違いを確認しましょう。XLOOKUPはVLOOKUPよりも柔軟で簡単に使える関数であることが分かります。
XLOOKUPは左方向に検索できる
VLOOKUPでは、検索値の列は常に左端に固定されており、取り出したいデータがその右側の列にある必要があります。
一方、XLOOKUPでは検索範囲と戻り範囲を別々に指定できるため、検索値の列が左端に固定されず、どの列からでもデータを取得できます。
例えば、次の図では、「=XLOOKUP("ジーンズ", D3:D12, C3:C12)」の数式でD列の「商品名」から「ジーンズ」を検索して、左側にあるC列の「カテゴリ」から該当するデータを取り出します。
VLOOKUPではできない左方向からの値の取得が、XLOOKUPではこのように簡単に実行できます。
XLOOKUPは#N/Aエラーを簡単に処理できる
VLOOKUPとXLOOKUPの違いの1つに、XLOOKUPでは#N/Aエラーを簡単に処理できる点が挙げられます。
VLOOKUPでは、検索値が見つからなかった場合には「#N/A」が表示されます。このエラー表示を回避するためには、「=IFERROR(VLOOKUP(A1, B1:C10, 2, FALSE), "見つかりません")」のように、IFERROR関数やIF関数を組み合わせて使う必要があります。
一方、XLOOKUP関数では、検索値が見つからなかった場合に表示する内容を、XLOOKUPの4番目の引数を使うことで、関数内で直接指定することができます。
これにより追加の関数を使用する手間が省けてエラー処理が簡単になり、数式もすっきりとします。
上図の例では、検索値が見つからなかった場合、「見つかりません」と表示されます。
XLOOKUPは「一致モード」を省略すると完全一致になる
VLOOKUPを使用する時、4番目の引数である「検索方法」の使い方には注意が必要です。近似一致の「TRUE」を指定すると意図しない値が返る場合があるため、特に理由がない限り「FALSE」で指定することが一般的です。
しかし、このVLOOKUPの「検索方法」は省略が可能な引数で、省略すると自動的に「TRUE」が適用され、近似一致で検索が行われます。
このため、完全一致で検索したい場合は毎回「=VLOOKUP(A1, B1:C10, 2, FALSE)」のように「FALSE」を明示的に指定しなければなりません。
「FALSE」の記述を忘れると省略したとみなされ、近似一致での検索になり、意図しない値の取得の原因となる場合があります。
一方、XLOOKUP関数では、4番目の引数「一致モード」を省略した場合、デフォルトで完全一致が適用されます。
このため、「=XLOOKUP(“A123”, B3:B12, D3:D12)」のように、4番目以降の引数を指定しなくても完全一致での検索結果が得られます。
検索方法を指定しなくても完全一致で検索されるため、引数を書き忘れたために近似一致で検索してしまうミスが減り、意図した結果を得やすくなります。
XLOOKUPは複数条件の検索で列の追加が不要
VLOOKUP関数を使用して複数の条件で検索を行う場合、表に複数の列を結合した検索値用の新しい列を作成する必要があります。
例えば、B列「商品名」とC列「カラー」の両方を条件として検索したい場合、準備としてまずA列に「商品名&カラー」の項目を作ります。
下図では、A3に「=B3&C3」を入力してB列とC列の値を結合し、オートフィルで下の行も結合させ、検索用の「商品名&カラー」列を用意しています。
このようにして、「商品名」と「カラー」の情報を結合した検索値を新しく作成して検索を行うことで、複数条件の検索を行えます。
一方、XLOOKUP関数を使用して複数条件で検索を行う場合、新たに検索値用の新しい列を作成する必要はありません。
通常の1つの値やセル参照ではなく、複数のセルの値を結合して検索値とします。例えば、セルF3とF5の値を検索条件とする場合、「F3&F5」のように結合します。
同様に、検索範囲も結合します。例えば、B列とC列のデータを同時に検索条件とする場合、「B3:B12&C3:C12」のように範囲を結合します。
上図の例では、セルF3とF5の値を結合したものを検索値とし、B列とC列を結合した範囲内で検索を行い、対応するD列のデータを返します。これにより、複数の条件に基づいた検索が可能です。
VLOOKUPとXLOOKUPの違いを理解して使い分けよう
ここまで、VLOOKUPとXLOOKUPの違いを説明してきました。XLOOKUPがVLOOKUPの機能を拡張した、より使いやすい関数であることが分かりました。
XLOOKUP対応バージョンのExcelを使っている場合には、VLOOKUPの代わりにXLOOKUPを使うことでさらに効率的な検索を行うことができます。
しかし、まだXLOOKUPが使用できないバージョンのExcelを利用している方も多いでしょう。VLOOKUPとXLOOKUPの違いをよく理解し、状況に応じて使い分けられるようにして、より効率的なデータ管理を目指しましょう。
その他VLOOKUP関連記事
その他、VLOOKUPに関連する内容は、下記の記事でもご紹介しています。ぜひ参考にご覧ください。
VLOOKUP関数で複数条件を指定する?簡単にできる方法を図解
VLOOKUPで別シートを参照するには?記述方法や実践例を解説
VLOOKUP関数でエラーが出た?#REF!エラーなどの解決法を詳しく解説
VLOOKUP関数がうまく反映されない?その原因と対策を図解
VLOOKUPとIFの組み合わせで何ができる?便利な使い方を解説
VLOOKUPで部分一致検索するには?ワイルドカード使用法を解説
VLOOKUPとXLOOKUPの違いとは?使い方を図解で解説
VLOOKUPで0を表示しない方法とは?発生原因と対処法を解説
マイナビエージェントに無料登録して
転職サポートを受ける
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから