器用貧乏の独り言

器用貧乏なおっさんが気の向くままに。

【Excel】VLOOKUP関数の使い方を具体例で紹介!

◇前置き

普段、ExcelVBAを利用することの多い私ですが、関数も結構便利だったりします。

今日はVLOOLUP関数を使った簡易の伝票システムを紹介したいと思います。

◇概要

今回はこんな感じの伝票を用意しました。

よくある伝票ですが、入力する欄が点在していて入力が面倒だったりします。

そこで、データを入力するシートと印刷用のシートを分けます。

先ほどのシートは印刷用です。

データ入力(蓄積用)にこんなシートを作っておきます。


印刷用シートに伝票No.を入力すると、入力用シートからデータを引っ張ってくるようにします。

◇使用する関数

今回のシートではVLOOKUP関数とIF関数を使用します。

↓のうすだいだい色のセルに関数を入れます。


具体的には、それぞれこんな関数を入れます。
・C4

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,2,FALSE))

・C6

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,3,FALSE))

・B9

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,4,FALSE))

・E9

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,5,FALSE))

・G9

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,6,FALSE))

・I9

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,7,FALSE))

・B10

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,8,FALSE))

・E10

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,9,FALSE))

・G10

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,10,FALSE))

・I10

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,11,FALSE))

・B13

=IF(I2="","",VLOOKUP(I2,データシート!A2:L11,12,FALSE))


基本全て同じですが、VLOOKUP関数の第3引数だけ一個ずつずれていきます。

IFを利用しているのは、伝票No.欄が空欄の時にエラーが出ないようにするためです。

「#N/A」の表示が気にならない人は省略してOKです。

◇使い方

実際に動かしてみましょう。

まずは入力用シートに適当なデータを入力します。


印刷用シートに伝票No.を入力します。

試しにA-001を入れてみると・・・

一瞬で伝票が完成しました!

入力セルが点在しているよりも、表形式で一か所にまとまっている方が入力も楽ですよね。

また表でデータがあると二次利用もしやすいです。

なお、品目欄の2行目に「0」が表示されていることに関しては、VLOOKUP関数の仕様になります。(「検索先が空欄⇒0を表示」という仕様です。)


これが気になるかたは、該当セルの式をこのように書き換えると回避することができます。

≪例としてB10の式を書き換える≫

=IF(I2="","",IF(VLOOKUP(I2,データシート!A2:L11,8,FALSE)=0,"",VLOOKUP(I2,データシート!A2:L11,8,FALSE)))

IF文で分岐を1つ増やして、検索結果で0が帰ってきたら空白にするようにしています。

この式を反映させた印刷用シートだとこんな感じになります。

0が表示されなくなって、見た目がスッキリしましたね。

◇最後に

いかがだったでしょうか。

VBAを使わなくてもシステマティックなものを作れる」ということが伝えたくて今回の記事を作成しました。

この記事も誰かの役に立つとうれしいです。