[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の作例では、次の流れで品番から品名が求められます。
メモ
ちなみにExcelには、[範囲]の1行目を横方向(Horizontal:水平の)に検索する「HLOOKUP」関数も用意されています。
関数解説…VLOOKUP関数
書式
=VLOOKUP(検索値, 範囲, 列番号[, 検索の型])
[範囲]の1列目から[検索値]を探し、見つかったセルから数えて[列番号]目のデータを求めます。[検索の型]では、完全一致検索(FALSE)を行うのか、近似検索(TRUE)を行うのかを指定します。近似検索を行う場合は、[範囲]の先頭列を基準に昇順(値の小さい順)に並べ替えておく必要があります。
■引数
引数 | 指定 | 説明 |
---|---|---|
検索値 | 必須 | 検索する値を指定する |
範囲 | 必須 | 検索する表のセル範囲を指定する |
列番号 | 必須 | 求める値が入力されている列が何列目にあるかを指定する |
検索の型 | 省略可 |
「TRUE」を指定するか指定を省略すると、近似検索となる。 「FALSE」を指定すると、完全一致検索となる。 |
引数[検索の型]、「FALSE」と「TRUE」の違い
[範囲]の1列目に[検索値]が存在する場合、引数[検索の型]に「FALSE」と「TRUE」のどちらを指定しても、[検索値]に対応するデータが返されます。存在しない場合、以下のような違いが出ます。
■「FALSE」の場合
・[範囲]の左端列は、昇順でなくてもOK。
・[検索値]が見つからない場合、戻り値は「#N/A」(値が未定であることを示すエラー値)になる。
■「TRUE」の場合
・[範囲]の左端列は、昇順で並べ替える必要がある。
・[検索値]が見つからない場合、[検索値]未満の最大のデータが検索される。
メモ
STEPUP…別シートの表を検索するには
別のシートに入力された表を検索する場合は、引数[範囲]を「シート名!セル範囲」の形で指定します。