対象:Excel 2007/2010/2013/2016
例えば読者が、鉛筆やボールペンなどを販売する文房具店を経営しているとしよう。そして顧客からの注文をExcelのシートにまとめて、販売総額をExcelで算出するとする。Excelを使って、受注シートの表を作成し、受注した商品名や単価、個数を入力。あとは個数と単価をかけて販売商品ごとの金額を算出して、各商品の金額を総計してトータル価格を計算する。ごくごく一般的なExcelの帳票処理だ。
しかし商品の価格は仕入れによって変わる場合もあるし、商品名を毎回手入力するのはばかばかしいし、間違えの元だ。こういう場合、普通は商品一覧と単価をまとめた表を別に作っておき、受注シートに転記するのが有効だ。
このような場合に、手作業によるコピー&ペーストではなく、商品コードなど共通する列情報から、合致する行のデータを自動的に他方の表に転記できる機能、それがExcelの「VLOOKUP関数」である(VLOOKUPは、「ブイルックアップ」と読む)。
VLOOKUP関数は、指定した表の範囲内にある先頭列を検索対象として、垂直(Vertical)に検索(Look Up)し、検索値と合致した行の指定した列の値を返すというものだ。例えば、先頭列に商品コード、2列目に商品名、3列目に単価を入力した「価格テーブル」があれば、商品コードで検索することで、商品名や単価を自動的に入力させることができるというものだ。
VLOOKUP関数はExcelで表形式のデータを検索する場合に、最もよく使われる関数の1つなので、ぜひ覚えておこう。ただし、VLOOKUP関数は引数が多いこともあり、いざ使おうと思うと、なかなか思い出せないものでもある。そこで、本稿では基本的なVLOOKUP関数の使い方を紹介する。
同様の関数として、表の先頭行を水平(Horizontal)方向に検索する「HLOOKUP(エイチルックアップ)関数」もある。参照する表の方向が違うだけで、使い方は同じなので、VLOOKUP関数の使い方をマスターしておけば、HLOOKUP関数も使えるようになるだろう。
VLOOKUP関数の書式は下図の通りである。
引数 | 説明 |
---|---|
第1引数 | 検索値となる商品コードなどが入力されたセル番号 |
第2引数 | 参照先の表の範囲 |
第3引数 | そのセルに入力したい項目が、参照先の表の範囲で先頭から何列目にあたるか(列番号)を指定 |
第4引数 | 検索方法を指定する。「FALSE」または「0」ならば検索値が完全一致するデータのみ/「TRUE」または「1」ならば検索値が完全一致するか、ない場合は一番近いデータを探して入力 |
VLOOKUP関数の引数 |
VLOOKUP関数には、関数が参照する別に用意した表(上述の価格テーブルのような「商品コード」「製品名」「価格」などが並んだ表)が必要になる。その表は、同じシート上でも別シート上でも、別ブック上でも構わない。ここでは、参照する表を別シート上に用意することにする。
VLOOKUP関数で参照する表には、VLOOKUP関数で検索値となる商品コードや型番などを一番左の列に配置しておく。VLOOKUP関数を記述する方の表では、商品コードや型番を入力すると、対応する製品名や価格をVLOOKUP関数が埋めてくれる、というのが一般的な使い方になる。
参照する表が用意できたら、受注シートや見積表などでVLOOKUP関数を使った自動入力を設定しよう。
実際に例を挙げて、VLOOKUP関数の動きを紹介しよう。以下の画面では、同じブック内に作成した「価格テーブル」と「受注シート」という別シートを説明しやすいように並べている点に注意してほしい。
別シートや別ブックなどにある参照先となる表のセル範囲をマウスでドラッグすれば、範囲を指定できる。
セルに自動入力したい項目が参照先となるセル範囲の何列目なのかを指定する。左端の列(検索対象のデータが置かれている列)が1になり、その右隣から先は順に2、3、……となる。
通常「FALSE」を指定する。「FALSE」を指定すると、検索値と完全一致する場合のみデータが入力される。検索値が完全一致するか、ない場合は一番近いデータを探して入力させたい場合には「TRUE」を指定すればよい。
検索対象列に検索値と合致する値がなかった場合、「#N/A」(該当なし)といったエラーがセルに表示される。特に、第4引数に「0」または「FALSE」を指定した場合、完全一致となるので、検索値に「−(ハイフン)」などが含まれている場合、半角と全角の違いで検索できないといったことが起きがちだ。
また、VLOOKUP関数をコピーすると、参照する表のセル範囲まで動いてしまうことがある。このような場合、合致する検索値があるにもかかわらず、検索に合致しないということが起きるので、エラーが生じた場合は、参照する表の範囲が正しいかどうかも確認しよう。セルの範囲に名前を付けておくと、こうしたミスを防ぐことができる(TIPS「Excelの『名前の定義』でセルの範囲に名前を付ける」参照のこと)。
Copyright© Digital Advantage Corp. All Rights Reserved.