いまさら聞けないExcelの使い方講座

【Excel】VLOOKUP関数はもう古い! XLOOKUP関数なら簡単に大量のデータから必要な情報だけ転記できます

XLOOKUP関数って知ってる?

XLOOKUP関数はデータ入力の強い味方!

 Excelを使った日常業務で、VLOOKUP関数を使ったことのある人は少なくないのではないでしょうか。VLOOKUP関数は、大量のデータの中から検索条件を満たすデータを取り出して表示してくれる、便利な関数ですよね。でも一方で、ちょっと使いづらいなと感じたことはありませんか。

 VLOOKUP関数のさまざまな問題が改善された新しい関数として、「XLOOKUP関数」というものがあります(Microsoft 365版のExcelのみで使用可能)。今回は、VLOOKUP関数の改良版とされるXLOOKUP関数の使い方を解説します。なお、VLOOKUP関数について知りたい読者は、以前の記事をご覧ください。

商品カタログから商品名と単価を抜き出して表示しよう

 次のような[請求書]シート(①)と[商品カタログ]シート(②)が保存された[請求書]ブックを使ってやってみましょう。[請求書]シートに入力した「商品番号」(③)をもとに、[商品カタログ]シートの「商品カタログ」(④)から必要な情報を抜き出して表示してみます。

[請求書]シート(①)と[商品カタログ]シート(②)が保存された[請求書]ブックを使ってやってみます

 なお、ここでは以前の記事で解説した、同じブック内にある複数のシートを並べて表示する機能を使って、画面に2つのシートを横に並べて表示させています。

 実際に数式を作成する前に、XLOOKUP関数の書式を押さえておきましょう。

XLOOKUP関数の書式は「=XLOOKUP(検索値,検索範囲,戻り範囲,見つからない場合,一致モード,検索モード)」となります

 引数の数が多く、難しそうに感じるかもしれませんが、最初の3つ以外は省略可能です。この最初の3つさえ押さえておけば大丈夫なので、安心してくださいね。詳しい引数の説明は、数式を作成しながら行っていきます。

 では、実際に数式を入力していきましょう。セルB9に「=XLOOKUP(」と入力したあとで、「検索値」となる「A9」を入力し、「,」(カンマ)を入れます(⑤)。

セルB9(⑤)に「=XLOOKUP(A9,(カンマ)」と入力

 続けて、セルA9の値(検索値)を検索する検索範囲を指定します。ここでは、[商品カタログ]シートの「商品番号」列になります。セル範囲C3:C11をドラッグ(⑥)すると、数式の続きに「商品カタログ!C3:C11」(⑦)と入力されます。

セルA9の値を検索するセル範囲C3:C11をドラッグ(⑥)すると、「,」(カンマ)のあとに「商品カタログ!C3:C11」(⑦)と入力されます

 あとでこの数式を他のセルにコピーするときに、参照範囲がずれないように、[F4]キーを押して絶対参照に変換します。「商品カタログ!$C$3:$C$11」と表示されたら、続けて「,」(カンマ)を入力します(⑧)。

あとでこの数式を他のセルにコピーするときに、参照範囲がずれないよう[F4]キーを押して絶対参照に変換

 これに注目してください。VLOOKUP関数のときは、検索値を検索する範囲は、表の一番左の列になければなりませんでした。XLOOKUP関数では、この点が改良され、検索範囲がどの列にあっても使えるようになりました。

 続けて3つ目の引数を指定します。3つ目の引数には、表示したい商品名が入力されたセル範囲を指定します。ここでは、[商品カタログ]シートの「商品名」列になります。[商品カタログ]シートのセル範囲A3:A11をドラッグ(⑨)すると、数式の続きに「商品カタログ!A3:A11」(⑩)と入力されます。

「商品名」列のセル範囲A3:A11をドラッグ(⑨)すると、数式の続きに「商品カタログ!A3:A11」(⑩)と入力されます

 先ほどと同様に[F4]キーを押して絶対参照に変換すると、「商品カタログ!$A$3:$A$11」(⑪)と表示されます。以降の引数は省略し、「)」(カッコ)を入力します(⑫)。

先ほどと同様に[F4]キーを押して絶対参照に変換

 ここにもVLOOKUP関数から改善された点があるので、見ていきましょう。VLOOKUP関数では、検索して取り出したいデータを列番号で指定していましたが、XLOOKUP関数では、セル範囲で指定できるようになりました。これにより、参照している表に列の追加や削除があっても、数式を修正する必要がなくなりました。

 [Enter]キーを押して数式が確定されると、セルB9に商品名が表示されますね(⑬)。

数式が確定されると、セルB9に商品名が表示されます

 なお、3つ目の引数は「$A$3:$B$11」(「商品カタログ」の「商品名」と「単価」)のように複数の列を指定することもできます。セルB9の数式を、「=XLOOKUP(A9,商品カタログ!$C$3:$C$11,商品カタログ!$A$3:$B$11)」(⑭)と変更してみましょう。

3つ目の引数は「$A$3:$B$11」(「商品カタログ」の「商品名」と「単価」)のように複数の列を指定することもできます

 [Enter]キーを押して数式が確定されると、なんと今度はセルB9だけでなく、セルC9にも該当するデータが自動的に表示(⑮)されました!

数式が確定されるとセルB9だけでなく、セルC9にも該当するデータが自動的に表示(⑮)されました

 この魔法のような機能は「スピル」といいます。スピルは、Microsoft 365版のExcelで使用できる機能で、今回の例のように、1つのセルに入力した数式の結果がこぼれる(Spill)ようにしてほかのセルにも表示される機能です。スピルの詳細については、また別の記事で書くことにします。

XLOOKUP関数を使いこなそう

 今回は、Microsoft 365版のExcelで使用できるXLOOKUP関数の使い方を解説しました。VLOOKUP関数の使いづらさが改善されて、より便利になったということをわかってもらえたのではないでしょうか。ぜひ使ってみてくださいね。