目次
VLOOKUP関数の検索値
ある検索値を使ってリスト内の値を抽出するにはVlookup関数が便利です。
Vlookup関数の基本的な使い方を覚えておくことでリスト作成業務の効率が大きく変わります。
しかしVlookup関数には弱点もあります。
そのひとつが「指定された範囲内1列目のセルのみを検索し、複数セルの検索はできない」というものです。
複数条件で検索する場合は工夫が必要となります。
VLOOKUP関数で複数条件を検索値にする
データの準備
次のような「在庫品リスト」(右側)を考えます。
ここで「フロア」と「棚番」の複数条件で検索し、左側にある「1F在庫品」という表を完成させることを目標とします。
失敗例(複数条件を用いない場合)
まずは複数条件だけでなく「棚番」だけで検索したらどうなるかを見てみましょう。
次のように関数を入力してみました。
=VLOOKUP(C7,$H$3:$J$14,2,FALSE)
エラーもなく正しく表示されているように見えますが、実は別フロアの製品が混ざっています。
フロア「1F」の棚番「A4」は「TR40-22-25 靴下」ですが、別の製品が表示されました。
Vlookupは「指定された範囲で検索値にヒットした一番上の値を返す」関数です。
在庫品リストの棚番「A4」は1Fと2Fにあります。
2Fの方が1Fよりも上側に記載されているので、2Fの値である「H000-WHITE-M ワイシャツ」が表示されてしまったのです。
順番を並べ替えることで一時的な対策はできます。
しかしこれは、1Fの製品が在庫切れで無くなっても2Fの製品が代わりに表示されてしまう可能性があり、良い方法とは言えません。
次に紹介する「フロア」と「棚番」の2つの条件で検索する方法が確実です。
複数条件検索用のキーを作成
複数条件で検索するにあたり、まずはキーを作成します。
次のように「在庫品リスト」の「製品名」列のひとつ手前に列を追加します。
追加したキー列には次のように入力します。
=G3&H3
複数のセルを「&」で繋ぐことによって文字が結合されます。
オートフィルを使ってキー列すべてに反映させます。
これでキーの作成は完了です。
VLOOKUP関数の定義
作成したキーを利用してVlookup関数を定義します。
1F在庫品リストの製品名の列に次のように入力します。
検索値は「フロア」および「棚番」を「&」で結合させています。
=VLOOKUP(B3&C3,$I$3:$K$14,2,FALSE)
オートフィルで製品名の列すべてに反映させます。
「製品種類」の列は検索値、範囲は同様で「列番号」のみ異なります。
=VLOOKUP(B3&C3,$I$3:$K$14,3,FALSE)
これで「1F在庫品」のリストが完成しました。
「フロア」「棚番」の2つの条件で検索ができました。
失敗例のように一方の条件だけが合致しているとき別製品が表示されるというリスクも解消されました。
「在庫品リスト」のkey列が邪魔な場合は列を「非表示」にしましょう。
列を削除してしまうとVlookup関数が正しく機能しなくなります。
まとめ
VLOOKUP関数で複数の条件を検索値にする方法を紹介しました。
- Vlookup関数は指定された範囲内1列目のセルで検索する
- 「&」で条件を結合してキー列を作成しVlookup関数の検索に用いる
- 条件が足りないと別の値が表示されることがあるので注意
Vlookup関数でよくある質問の2番目の値を取得する方法はこちらで紹介しています。