コード番号を検索して表引きする(完全一致検索)…VLOOKUP関数

[Excel 2016/2013/2010/2007]

表から特定のコード番号を検索してデータを取り出したいことがあります。VLOOKUP関数を使用すると、そのような表引きを自動化できます。

スポンサーリンク

作例…商品リストから品番を検索して品名と価格を調べる

作例

図1の商品リストから「G101」という品番を検索して、品名と価格を調べます。

VLOOKUP関数の引数[検索値]に検索条件となる「G101」を入力したセル「B2」、[範囲]に商品リストのデータが入力されているセル「D3:F6」、[列番号]に「品名」の列「2」を指定すると、該当の商品の品名「消しゴム」が求められます。ここでは完全一致検索(「G101」と全く同じデータを検索すること)を行うので、[検索の型]に「FALSE」を指定しました。

[範囲]から[検索値]を探し、見つかったセルから数えて[列番号]目のデータを求める
=VLOOKUP(検索値, 範囲, 列番号[, 検索の型])

セルB3 | =VLOOKUP(B2,D3:F6,2,FALSE)

図1 VLOOKUP関数を使用して、品番が「G101」の品名と価格を求める。引数[列番号]に「2」を指定すると品名、「3」を指定すると「価格」が求められる。

作例詳解

図1の作例では、次の流れで品番から品名が求められます。

図2 
 (1)
範囲の1列目から検索値が検索される。

図3
 (2) 検索結果のセル(セルD5)から数えて2列目のデータ「消しゴム」を探す。
 (3) VLOOKUP関数を入れたセルに「消しゴム」と表示される。

メモ

「VLOOKUP」は「縦に探す」の意味
「VLOOKUP」という関数名は、「垂直の」という意味の「Vertical」、「調べる」という意味の「LOOK UP」の組み合わせです。[検索値]を探すときに、[範囲]の1列目を縦方向に検索することに由来します。
ちなみにExcelには、[範囲]の1行目を横方向(Horizontal:水平の)に検索する「HLOOKUP」関数も用意されています。

関数解説…VLOOKUP関数

書式

=VLOOKUP(検索値, 範囲, 列番号[, 検索の型])

範囲]の1列目から[検索値]を探し、見つかったセルから数えて[列番号]目のデータを求めます。[検索の型]では、完全一致検索(FALSE)を行うのか、近似検索(TRUE)を行うのかを指定します。近似検索を行う場合は、[範囲]の先頭列を基準に昇順(値の小さい順)に並べ替えておく必要があります。

引数

引数 指定 説明
検索値 必須 検索する値を指定する
範囲 必須 検索する表のセル範囲を指定する
列番号 必須 求める値が入力されている列が何列目にあるかを指定する
検索の型 省略可

「TRUE」を指定するか指定を省略すると、近似検索となる。
検索値が見つからない場合、検索値の代わりに検索値未満の最大値が検索される

「FALSE」を指定すると、完全一致検索となる。
検索値が見つからない場合、エラー値「#N/A」が返される

引数[検索の型]、「FALSE」と「TRUE」の違い

範囲]の1列目に[検索値]が存在する場合、引数[検索の型]に「FALSE」と「TRUE」のどちらを指定しても、[検索値]に対応するデータが返されます。存在しない場合、以下のような違いが出ます。

■「FALSE」の場合
・[範囲]の左端列は、昇順でなくてもOK。
・[検索値]が見つからない場合、戻り値は「#N/A」(値が未定であることを示すエラー値)になる。

図4 「FALSE」を指定した場合

■「TRUE」の場合
・[範囲]の左端列は、昇順で並べ替える必要がある。
・[検索値]が見つからない場合、[検索値]未満の最大のデータが検索される。

図5 「TRUE」を指定した場合

メモ

コード番号を検索する場合は必ず「FALSE」を指定すること
「品番から商品情報を調べる」「社員番号から社員情報を調べる」という具合に、何らかのコード番号を[検索値]としてVLOOKUP関数で表引きする場合は、必ず引数[検索の型]に「FALSE」を指定しましょう。そうしないと、図5のように誤った情報が引き出されてしまい、顧客や上司の信頼を失う羽目にもなりかねません。FALSEを指定しておけば、コード番号の入力間違いのときに「#N/A」が返されるので、ひと目で誤りに気付けるメリットがあります。
ちなみに、「TRUE」を指定するケースの具体例は、「「○以上△未満」の条件で表引きする(近似検索)…VLOOKUP関数」を参照してください。

STEPUP…別シートの表を検索するには

別のシートに入力された表を検索する場合は、引数[範囲]を「シート名!セル範囲」の形で指定します。

セルB3 | =VLOOKUP(B2,商品!A3:C6,2,FALSE)

図6 「商品」シートのセルA3~C6を検索する場合、引数[範囲]に「商品!A3:C6」と指定する。

スポンサーリンク

関連記事