今回は、脱Excel初心者の代表格のように扱われているVLOOKUP関数の使い方を紹介してみよう。さらに、「ユーザー定義」の表示形式や「&」を使って、ピックアップされたデータの表示をカスタマイズする方法も解説する。上手に使いこなせば、Excelを簡易データベースのように活用できるので、ぜひ覚えておくとよいだろう。

VLOOKUP関数の使い方

VLOOKUP関数は、既存の表から必要なデータをピックアップできる関数となる。言葉で説明するより実例を見た方が分かりやすいと思うので、具体的な例を使って説明していこう。

ここでは、以下の図のような一覧表が作成されているものとして、VLOOKUP関数の使い方を紹介していく。

ピックアップ元となる一覧表

VLOOKUP関数を使うと、この表から「商品名」や「価格」、「在庫数」などのデータを検索してピックアップできるようになる。まずはVLOOKUP関数の書式と記述例を示しておこう。

■VLOOKUP関数の書式

=VLOOKUP(検索キーワード, 検索する範囲, 列の指定, [検索方法])

VLOOKUP関数の記述例

VLOOKUP関数を使用するには4つの引数が必要がとなる。1番目の引数には「どのデータをピックアップするか?」を指示するキーワードを指定する。今回の例では、C2セルに入力した値(商品ID)で検索を行うので、第1引数には「C2」のセル参照を指定している。

続いて、検索する範囲、すなわち一覧表の中で「データが入力されている範囲」を指定する。今回の例では、B8~E15のセル範囲にデータが入力されているので「B8:E15」と第2引数を指定する。

第3引数には、「何列目のデータをピックアップするか?」を数値で指定する。今回の例では「2」を指定しているので2列目のデータ(商品名)がピックアップされることになる。

最後に、第4引数で検索方法を指定する。この引数には「FALSE」(完全一致)を指定するのが基本だ。第4引数の記述を省略することも可能であるが、この場合は「TRUE」(近似一致)が指定されたものとみなされるので注意すること。

上記の例のようにVLOOKUP関数を入力すると、「C2セルに入力したデータ」をキーワードに検索が実行され、そのデータと同じ行にある2列目のデータがVLOOKUP関数によりピックアップされる。つまり、「PT0003」をキーワードに検索が実行され、その行の2列目にある「プリンタトナー(マゼンタ)」がセルに表示されることになる。

VLOOKUP関数によるデータのピックアップ

同様の手順でVLOOKUP関数の第3引数に「3」を指定すると、「価格」のデータをピックアップすることができる。

第3引数に「3」(3列目)を指定したVLOOKUP関数

VLOOKUP関数によるピックアップされたデータ

もちろん、C2セルの値を変更すると、それに応じてピックアップされるデータも変更される。たとえば、C2セルの値を「CP0002」に変更すると、「リサイクル紙A4(2,500枚)」(商品名)と「1780」(価格)というデータがVLOOKUP関数によりピックアップされる。

検索キーワードの変更

なお、C2セルに実在しないデータを入力した場合は、ピックアップするデータが見つからないことを示すエラーが表示される。

データが見つからないことを示すエラー表示

ただし、VLOOKUP関数の第4引数を省略した場合は、検索方法が「近似一致」になるため、実在しないキーワードを入力しても何らかのデータがピックアップされる場合がある。

たとえば、先ほどの例からVLOOKUP関数の第4引数を削除すると、「コート紙A4(1,000枚)」と「4600」というデータがピックアップされてしまう。

第4引数を省略し、近似一致でデータをピックアップした場合

このように近似一致の検索方法は動作が少々複雑になる。キーワードの入力をミスした際に間違ったデータをピックアップしてしまわないように、第4引数には必ず「FALSE」を指定しておこう。

もちろん、近似一致が便利に活用できる場合もある。気になる方は、VLOOKUP関数における近似一致の仕組みを調べておくとよいだろう。

他のシートにある表からデータを参照する場合は?

別のワークシートに記録されている一覧表からデータをピックアップしたい場合もあるだろう。この場合は「シート名」に続けて「!」の記号を記述し、その後にセル範囲を記述する。

たとえば、「Sheet1」に以下の図のような名簿が作成されているとしよう。この名簿から氏名や住所などのデータをピックアップするときは、「Sheet1!B5:H54」のように第2引数を指定すればよい。

「Sheet1」に記録されている名簿

VLOOKUP関数の記述例(Sheet2)

「一覧表」と「データ出力」を別のワークシートで管理する場合に備えて、このようなセル範囲の指定方法も覚えておく必要があるだろう。

「様」や「〒」をデータの前後に追加

これまでに紹介した例からも分かるように、VLOOKUP関数によりピックアップされるのはデータだけであり、表示形式などの書式は引き継がれない仕組みになっている。このため、VLOOKUP関数を入力するセルには、あらかじめ適切な表示形式を指定しておく必要がある。

また、「様」や「〒」などの文字を追加するときにも表示形式が便利に活用できる。通常、名簿などの一覧表には「様」や「〒」といった文字を付けずにデータを入力するのが一般的だ。このような場合に前回の連載で紹介した表示形式を応用すると、VLOOKUP関数を活用して納品書や請求書などを作成できるようになる。

以下の例は、郵便番号をピックアップするセルに「"〒"@」、氏名をピックアップするセルに「@" 様"」の表示形式(ユーザー定義)を指定した場合の例となる。

「ユーザー定義」の表示形式を使ったデータ表示

文字データの結合

複数のセルに記録されているデータを結合して、1つのセルに表示したい場合もあるだろう。たとえば、先ほど示した名簿の場合、「都道府県」と「住所1」がF列とG列に分けて記録されている。

名簿に記録されている住所データ

これらの文字を結合して出力するときは「&」(アンド)の記号を使用する。今回の例の場合、2つのVLOOKUP関数を「&」で結合して記述すると、「都道府県」と「住所1」のデータをつなげてピックアップできるようになる。

「&」を使って2つのVLOOKUP関数を結合

「都道府県」と「住所1」が続けて表示される

参照先が空白セルの場合の処理

最後に、ピックアップ元となる表に空白セルが含まれる場合の処理方法を紹介しておこう。

今回、例とした名簿には「住所2」が空白となるデータも数多く混在している。もちろん、このような場合もVLOOKUP関数でデータをピックアップすることが可能だ。

「住所2」のデータをピックアップするVLOOKUP関数

ただし、ピックアップする「住所2」のデータが空白セルであった場合は、0(ゼロ)という数値が表示されてしまうことに注意しなければならない。

「住所2」が空白セルのデータをピックアップした場合

この0(ゼロ)を非表示にしたいときは、IF文を使って以下のようにVLOOKUP関数を記述するとよい。

0を非表示にするIF文の記述

簡単に解説しておこう。まず、IF文の条件(第1引数)に「VLOOKUP関数でピックアップされるデータが0に等しいか?」を指定する。0に等しい場合は何も表示しないので、第2引数には「""」(表示なし)を指定する。0に等しくない場合、すなわち何らかのデータが入力されていた場合は、再度VLOOKUP関数でデータをピックアップしなおす(第3引数)。

このように関数を記述しておくと、空白セルが混在する列にも柔軟に対応できるようになる。

空白セルをピックアップした場合の表示

状況によっては、こういった空白処理のテクニックが必要になる場合もある。念のため、覚えておくとよいだろう。

今回紹介した例のように、VLOOKUP関数を効果的に活用するには「表示形式」や「文字の連結」などのテクニックも必要になるケースが多い。VLOOKUP関数の使い方を覚えただけで満足するのではなく、より実践的な状況にも対応できるように、Excelの様々な機能の使い方を学んでおくとよいだろう。