Office Hack

ExcelのXLOOKUP関数の使い方|縦方向/横方向を両方検索する

  • by yoshihiro
  • Release
  • Update

2019年8月28日、Excelに新しく「XLOOKUP(エックス・ルックアップ)」関数が発表されました。VLOOKUP関数やHLOOKUP関数の後継となる関数です。一般公開は今年後半が予定されていますが、Office Insidersに参加すれば試すことができます。記事の下部でOffice Insidersへの参加方法を説明していますので興味がある方はご参考ください。

これまでのVLOOKUP関数は縦方向、HLOOKUP関数は横方向にそれぞれ検索し、特定のデータに対応する値を取り出す関数です。ただ引数を指定するときに列数や行数を間違えると求めたい結果と異なるときがありました。

一方、XLOOKUP関数は、縦方向・横方向の検索を1つの関数でカバーすることができます。また基本的には引数を3つ指定(VLOOKUP、HLOOKUPは4つ)するだけで対応できます。

VLOOKUP関数やHLOOKUP関数は廃止されるわけではないですが、XLOOKUP関数の方が使いやすいので今後はスタンダードになるかもしれません。以下の記事では、XLOOKUP関数の基本的な使い方を紹介していきます。

書式

XLOOKUP関数は、範囲または配列で一致の検索を行い、2つめの範囲または配列から対応する項目を返します。デフォルトでは、完全一致が使用されます(VLOOKUP、HLOOKUPはデフォルトでは、部分一致)。

=XLOOKUP(検索値,検索範囲,戻り配列,[一致モード],[検索モード])

引数名 説明
検索値 (必須) 検索の対象とするセルを指定します。
検索範囲(必須) 検索の対象とするセルやセルの範囲を指定します。
戻り配列 (必須) 検索の結果として返すセルやセルの範囲を指定します。
一致モード(省略可能)

一致の種類を指定します。

0:完全一致(デフォルト)

-1:完全一致または次に小さい項目

1:完全一致または次に大きい項目

2:ワイルドカード文字との一致

検索モード(省略可能)

順序を指定します。

1:先頭から末尾へ検索(デフォルト)

-1:末尾から先頭へ検索

2:バイナリ検索(昇順で並び替え)

-2:バイナリ検索(降順で並び替え)

XLOOKUP関数の基本的な使い方

テーブルのデータ

例のような表がある場合、XLOOKUP関数を使ってH3セル「ぶどう」に入力した商品名を検索値としてI3セルに価格を表示させてみましょう。

まず【I3セル】を選択します。

XLOOKUP関数の入力

I3セルに『=XLOOKUP(H3,B3:B7,E3:E7)』と入力します。検索値が「H3」、検索範囲が「B3:B7」、戻り配列が「E3:E7」となります。

XLOOKUP関数の結果

I3セルに「298」とぶどうの価格が表示されました。XLOOKUP関数では3つの引数だけで簡単に検索して結果を返すことができました。では、今まで使用していたVLOOKUP関数の場合も見てみましょう。

VLOOKUP関数の例

VLOOKUP関数で上記と同様の結果を返すにはI3セルに『=VLOOKUP(H3,B3:F7,4, FALSE)』と入力します。検索値は同じですが、検索範囲では検索値と戻り値を含めた範囲にしなければなりません。また戻り値を含む列の番号も指定する必要があります。

VLOOKUP関数を使用する際によくある事例としては、列番号を間違ってしまい違う結果が返ることがあります。XLOOKUP関数ではより直観的にわかりやすくなりこのような間違いは少なくなりそうです。

XLOOKUP関数の例

もう1つXLOOKUP関数の例をご紹介します。今度は価格が100円、もしくは次に高い価格を検索してその商品を結果として返してみましょう。H3セルに検索値である「100」が入力されています。次にI3セルに『=XLOOKUP(H3,E3:E7,B3:B7,1)』と入力します。

4番目の引数「1」は一致の種類を指定します。「1」は完全一致または次に大きい項目を返します。

XLOOKUP関数の結果

検索結果としてI3セルに「梨」と表示されました。テーブルの「価格」という列の中で100円の次に高い価格は198円となります。その項目の「梨」が結果として返ってきました。

VLOOKUP関数との違い

VLOOKUP関数は多く使用されていましたが、いくつかの弱点がありました。その弱点を克服するために誕生したのがXLOOKUP関数になります。

今まで挙げられているVLOOKUP関数の弱点は下記のようなものがあります。XLOOKUP関数では下記が改善されています。

  • 完全一致をするために4番目の引数をFALSEに設定する必要がありました。指定しないと間違った結果が返ってきます。
  • 列の挿入、削除をサポートしていません。列を挿入すると結果が変わる場合があります。
  • 列の左側の値を返す方法がありませんでした
  • 必要ないセルも参照することにより不必要な計算が行われ、スプレッドシートのパフォーマンスが低下する可能性がありました

互換性の注意

現時点(2019年9月2日時点)ではXLOOKUP関数はまだ一般公開されていないので、他の方にブックを共有するときはXLOOKUP関数が入っていないかを確認してください。

XLOOKUP関数を利用するためのOffice Insidersへの参加方法

Office Insidersとは、一般ユーザー向けのOffice製品の最新版の機能をいち早く利用できるプログラムです。Office 365 Soloとパソコンにプリインストール版のOffice Premium製品を契約中の方が利用が可能です。

insiderの設定

まずExcelを起動した画面で左下の【アカウント】を押します。

Insiderの登録

【Office Insiders】を押し、【レベルの変更】を選択します。

認証

【新規登録して、Officeの新しいリリースをいち早く入手します】をチェックし、Office Insider レベルの選択から【Insider】を選択します。【このプログラムへの参加を規定する・・・】をチェックし、【OK】ボタンを押します。

インストール

言語とインストールのオプションを開き、【Office Insider 64ビット】を選択し、【インストール】ボタンを押します。セットアップファイルがダウンロードできたら【ダブルクリック】して起動します。

インストール完了

Office Insidersに対応したExcelがインストールされます。

XMATCH関数も合わせてチェック!

同時期に発表されたXMATCH関数の基本的な使い方を説明しています。

他の関数も合わせてチェック!

Office Hackでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。

よろしければ参考にならなかった点をお聞かせください