
型番から商品名や金額を特定したい。エクセルでできないだろうか。
どうもこんにちは!
今回は、このような方に向けて、リストから特定の項目を割り出すことができるVLOOKUP関数の基本操作を説明したいと思います。
難易度:★★☆☆☆(やや簡単)
1.VLOOKUPとは
(1)関数解説
そもそもVLOOKUPとはどのようなものでしょうか。
結論としては、検索したデータに該当した行の指定列からデータを取り出す関数です。
式としては、「=VLOOKUP(検索値, 範囲, 列番号, 検索の型)」となり、ざっくりいうと、リスト(範囲)からある項目(検索値)のリストから〇番目(列番号)からデータを抜き出すものです。
なお、関数内の「検索の型」というのは、FALSEかTRUEを入力します。FALSEは完全一致のものを選び出し、TRUEは近似値(検索値よりも小さい値の中で最大のもの)を選び出します。基本的には完全一致のものを選ぶことが多いと思いますので、FALSEを入力していれば問題ありません。
(2)使用場面
典型例としては、型番を入力しただけで商品名を表示させる場合や社員番号から社員の名前等のデータを表示させる場合などで使うことが多いと思います。
2.実践
では、ここから実際にVLOOKUPを使ってみたいと思います。
お題としては、「型番、商品名、単価」が記載された商品リストから別の売上表に記載されている型番を通じて、商品名と単価を表示させるというものを実施していきたいと思います。
(1)回答欄とリストを作る。
まずは、下図のように商品リストと型番から表示させたい回答欄を作成しましょう。

なお、この図では、回答欄と商品リストが同じSHEETに記載されていますが、商品リストが回答欄と別のシートにあっても何ら問題ありません。
(2)VLOOKUP関数を入力していく。
回答欄と商品リストが作成されたら、回答欄に数式を入力していきます。
まずは、回答欄のうち商品名を導き出すには、「=VLOOKUP($B3,$H$3:$J$8,2,FALSE)」と入力しましょう。
検索値は型番を示す$B3とし、範囲は商品リストの型番から単価までの$H$3:$J$8、列番号は商品リスト内の型番から何番目であるかを表すもので型番の次なので2、最後に検索の型は完全一致ものを探すのでFALSEと入力します。
なお、検索値や範囲において、「$」マークがついています。本来、$マークをつけなくても問題ありませんが、$マークはセルをドラッグして式を流用したとき、関数のずれを防止する働きがあるので、つけてあります。
そうすると、商品名が入力されました。

他の商品名の項目も埋めていきましょう。このとき、C3のセルの右下をクリックしたまま、下に移動させると一気に式を流用できます。

これを同様に単価でも行っていきます。
商品名箇所をすべて選択した状態でC7の右下をクリックしたまま単価まで移動させます。
そうすると、下図のように商品名の式が単価にも表示されます。

ここで表示させたいのは、商品リスト内の列番号2の「商品名」ではなく、列番号3の単価なので、VLOOKUP関数の列番号を2から3に変えます。

そして先ほどと同様に単価の数式をドラッグすると、完成です。

以上がVLOOKUP関数の使い方になります。
3.VLOOKUP関数の弱点
では、ここからいくつかVLOOKUP関数の弱点も紹介します。
(1)検索値の右側に導き出したいものがないとダメ。
VLOOKUP関数では、検索値リストの左側の値を探すことはできません。
上記の商品リストの例でいうと、商品名から型番を探すことができないので、商品名の右側に型番という項目を作っておかなければなりません。
(2)検索の型のTRUEが上手く使えない。
今回、検索の型のTRUEについてあまり紹介しませんでしたが、TRUEは近似値を探すために使います。ここで言う近似値とは、完全一致する検索値がないときに検索値よりも小さい値の中で最大のものを見つけ出すのですが、検索値が昇順になっていないと、上手く機能しません。
(3)いちいち範囲を特定して列番号を調べなければならない。
どこからどこまでが範囲なのか特定し、列番号を数えるとなると、若干わずらわしさもあるかと思います。
4.さいごに
以上がVLOOKUP関数の基本説明になります。
VLOOKUPには弱点があるものの、効率的なデータ抽出を行えるようになると思います。
また、VLOOKUP関数をもう少し使いやすくしたものでXLOOKUP関数というものがあります。こちらについては機会があれば、解説したいと思います。
コメント