conf t

インフラエンジニアのメモ

エクセルにて複数条件でvlookupする方法

f:id:monaski:20160528143837j:plain

vlookup関数で検索条件を複数指定して使いたい!

エクセルでvlookup関数の検索条件を複数条件にする方法をご紹介いたします。
vlookup単体では1つ条件での検索ができません。。
ここでは複数ある条件列を1つの列に連結させることで実現しています。

複数条件でvlookupしたいケース

今回の説明では、ある商品が日にちによって価格が変わる場合を想定し、ある特定の日の価格を検索したい場合をとりあげます。

検索先表には各日にちでの各商品の価格が表として羅列されています。
検索元表に記載があるのが、今回調べたい日にちと商品です。

今回紹介する手順で、検索元表にて調べたい日付、商品名を指定しvlookupし、検索先表から指定した日の商品価格を検索し表示します。
※画像は検索元表にvlookup関数仕込み済みのため、価格列に価格がでてしまっておりますが、この価格は右の検索先表からとってきています。

f:id:monaski:20160528141525j:plain

複数条件でvlookupする手順

以下2ステップで複数条件でのvlookupができます。
慣れれば意外に簡単です。

まず検索用の列を用意する

以下のように検索元の表、検索先の表それぞれで、日付列と商品名列を連結して表示する「検索用」列を作成します。(下図赤枠部分)
連結のさせかたですが、D5セルのように、&を使ってセルを連結し表示させています。
(日付と文字という異なる書式の連結のため、本当は注意2の数式を使っています。日付を連結する場合は注2を参照)

=A5&B5

f:id:monaski:20160528141312j:plain 注1:検索先表で「検索用」列は、検索で取り出したい列より左側に作成する必要がありまます。今回は「価格」列より左に作成しています。
注2:日付と文字列のように書式が違う列を連結すると、連結した際に日付が数字に変わってしまいます。そのままでも検索できますが日付のままで連結したい場合は日付を文字列に変換し連結します。D5セルには以下が入っています。
=TEXT(A5,"yyyy/mm/dd")&B5

あとはvlookupするだけ

検索用の列を作成できたら、後は検索元表にvlookup関数を入れるだけです。(下図赤枠部分)
vlookup先の範囲は検索先表の緑枠部分です。
f:id:monaski:20160528143837j:plain

C5セルには以下のようにvlookupが入っています。

=VLOOKUP(D5,H5:I12,2,FALSE)