表内の検索と値の取得をより柔軟に

Excel 2021に追加された新機能の中でも、特に注目したいものの1つが「XLOOKUP」(エックス・ルックアップ)関数です。

XLOOKUP関数はその名の通り、既存の関数である「VLOOKUP」と「HLOOKUP」に似た働きをします。表内にある指定した値を検索し、それに対応する(同じ行や列にある)値を取得するための関数です。

ただ、VLOOKUP関数は縦方向、HLOOKUP関数は横方向と、値を検索する方向が決まっていました。一方、XLOOKUP関数は縦にも横にも値を検索できるため、検索方向によって関数を使い分ける必要がなくなっています。

XLOOKUP関数の構文と引数の意味は、以下のようになります。

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

  • [検索値]......検索する値。直接またはセル範囲を指定。
  • [検索範囲]......検索値で指定された値を検索するセル範囲を指定。
  • [戻り範囲]......検索値に対応する値を取得するセル範囲を指定。
  • [見つからない場合]......検索値が見つからない場合に表示する値を指定(任意)。
  • [一致モード]......検索値と一致したとみなす判定基準を指定(任意)。「0」または省略で完全一致。
  • [検索モード]......検索する順序を指定(任意)。「1」または省略で先頭から末尾方向に検索。

対象とするデータの範囲を指定する引数が、[検索範囲]と[戻り範囲]と2つ存在することに注目してください。

VLOOKUP関数では対象とするデータの範囲は1つしか指定できず、その左端の列でのみ検索が行われました。よって、場合によっては表の構造を作り替える必要が生じます。

しかし、XLOOKUP関数では[検索範囲]と[戻り範囲]をそれぞれ直接指定できるため、表の構造にあわせた柔軟な検索と値の取得が可能です。また、[検索範囲]と[戻り範囲]は、列方向(縦)と行方向(横)のどちらでも指定できるようになっています。

本記事ではシンプルな表を例として、XLOOKUP関数の働きを見ていきましょう。

XLOOKUP関数で値を取得する

ここでは、商品名と商品ID、価格が記載された表を用い、XLOOKUP関数を使って商品IDから商品名を表示します。

1XLOOKUP関数を用いた数式を入力する

【Office 2021】Excelの新関数「XLOOKUP」の基本機能。VLOOKUPよりも使い勝手が向上!

XLOOKUP関数で必須の引数となる、第1引数から第3引数までを入力します。この例では、第1引数[検索値]としてセルE3、第2引数[検索範囲]として商品IDの列(B2:B14)、第3引数[戻り範囲]として商品名の列(A2:A14)を指定しました。完成した数式は以下のようになります。

=XLOOKUP(E3,B2:B14,A2:A14)
2対応する値が表示された

【Office 2021】Excelの新関数「XLOOKUP」の基本機能。VLOOKUPよりも使い勝手が向上!

検索値として指定したセルE3の値「A-1008」を商品IDの列で検索し、それに該当する商品名の列の値である「トートバッグ」を取得できました。商品IDは表の左端の列ではありませんが、XLOOKUP関数であれば、その列を検索範囲として直接指定できることが分かります。

スピルを用いて複数の値を取得する

Excel 2019で登場した「スピル」に対応していることも、XLOOKUP関数の便利なポイントです。スピルとは隣接するセルにも結果を表示する機能であり、XLOOKUP関数と組み合わせれば、複数の値を取得して表示することが可能です。

ここでは、商品名で検索を行い、該当する商品IDと価格を取り出してみましょう。

1XLOOKUP関数を使って商品名で検索する

【Office 2021】Excelの新関数「XLOOKUP」の基本機能。VLOOKUPよりも使い勝手が向上!

第1引数[検索値]としてE3セル、第2引数[検索範囲]として商品名の列(A2:A14)、第3引数[戻り範囲]として商品IDと価格を含む範囲(B2:C14)を指定しました。完成した数式は以下のようになります。

=XLOOKUP(E3,A2:A14,B2:C14)
2商品IDと価格の2つがスピルで表示された

【Office 2021】Excelの新関数「XLOOKUP」の基本機能。VLOOKUPよりも使い勝手が向上!

関数を入力したセルに、E3セルの商品名に該当する商品IDが表示され、その隣のセルにはスピルで価格が表示されました。