ExcelのVLOOKUP関数について、「覚えてみたものの、使いどころがまだ良くわからない」という声を聞くことがありましたので、どのようなシーンで使えるのかをまとめてみました。
VLOOKUP関数について
まずはVLOOKUP関数の構文のおさらいです。
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
引数 | 説明 |
---|---|
検索値 | どんな検索キーワードで |
範囲 | どの範囲を検索するか |
列番号 | 「範囲」の左から何列目の値を取得するか |
検索の型 | 完全一致(False)か、近似一致(True)か |
他の表からデータをとってくる
もっとも典型的な活用シーンです。
他の表からデータを取ってきたい場合、VLOOKUP関数を利用して効率よく作業できます。
・・・というか、これができないと目視、もしくは、1件ずつ検索してコピペの繰り返しが必要なので、社会人にとっては基本中の基本ですね。


入力チェックに利用する
申込書などからExcelへのデータ入力業務をする時、正しく入力できているか確認しながら作業したいですよね。そんな時にもVLOOKUP関数を活用できます。
(最近はデジタル化が進んでいるので、あまり紙から手入力することは無いかもしれませんが・・・)

この例では、社員番号を入力すると右側に氏名が表示され、研修IDを入力すると、右側に研修名が表示されるので、データ入力しながら、正しく誤入力のチェックを行うことができます。
ちなみに、社員シート、研修シートはこんな感じです。


データ入力の簡易化・効率化に利用する
先ほどの入力チェックと似た使い方です。
システム等へ投入するExcelデータとかって、名前ではなくコードで入力することが多いですよね。
例:商品名ではなく商品コードを入力・・・など。
でも、コードを入力するのってミスしやすいし、ミスに気づきにくい・・・。
そういう場合、プルダウンで商品名を選んだら、商品コードが自動的に入力されるようにすることがあります。

B列は、商品シートのA列を「元の値」としたプルダウンにしておきます。
プルダウンから商品を選択することで、C列に商品IDがVLOOKUP関数によって自動入力されます。
ただし、商品シートには注意が必要です。
- 商品名は重複してはいけない
→商品シート内に、同じ商品名が2つ以上ある場合、上にある商品IDが取得されます - 商品名は商品IDより左になります
→VLOOKUPは、検索値が一番左の列である必要があります。
帳票にデータを差し込みする
伝票とか請求書みたいなデザインがある帳票って、あちこちに欄があって、毎回手動で入力するにはちょっと不便ですよね・・・。
そういう場合、データを入力・蓄積するシートと、印刷用のシートを分離すると便利です。
印刷用のシートにVLOOKUP関数を入力しておけば、差込印刷のような感じで利用することができます。この例では、管理番号を入力すれば、台帳シートから該当のデータをVLOOKUPして表示します。


条件分岐に利用する
点数が〇点以上だったらA評価、〇点~〇点だったらB評価・・・のようなパターンへの対応については、よくIF関数が使われています。
OKとNGの2択みたいな感じであれば、IF関数がわかりやすいのですが、5択とかになってくるとかなり複雑な式になってしまいます。

VLOOKUP関数を使うと、スッキリとした式にすることができます。

数式の第4引数がTRUEなのと、右側に参照用の表を用意しているのがポイントです。
検索値と完全一致する値がある場合はFALSEと同じ結果になりますが、完全一致する値が無い場合は、検索値より小さい値のうちもっとも検索値に近い値がヒットします。
たとえば、79点だった場合は、E列のうち、79より小さい値のうち、もっとも検索値に近い61がヒットしますので、成績Bが取得されます。
*参照用の表は、一番左の列が正しく昇順ソートされている必要があります。
おわりに
VLOOKUP関数はとても便利かつ利用シーンもたくさんありますね。
今回紹介した以外にも、色々な利用方法があると思います。
私ももっと知りたいと思っていますので、他にもあれば是非コメント欄などでご紹介ください。
コメント