VLOOKUP関数で複数条件の検索に対応してみる

VLOOKUP関数で「1個の検索条件」では足りないとき・・

ある表から必要なデータを取り出すとき、どうしても検索条件が1個では都合が悪い時がありませんか?

「複数の条件でVLOOKUPしたい・・」

このような条件をVLOOKUP関数を使って対応します。なお、使用する関数はVLOOKUPのみです。

すでに他の記事などでも書いておりますが、私の経験上では、VLOOKUP関数が使えることは、「仕事でExcelが使える人」と見ている職場も多いかと思います。
今回当ページで紹介する内容は、すぐに使うことがないかもしれませんが、頭の片隅においておくことで、一歩先を行く?レベルかも知れませんね(笑)。

「VLOOKUP関数のみ」で複数条件に対応する

今回の説明では、かんたんな表を使います。

「営業所」、「担当者」の2つをVLOOKUPの検索条件とします。

では、この表を使って、説明していきたいと思います。

「複数の列でないと検索できない表」の例

なお、今回はそもそも「検索したい項目(列)が2個ある」を前提に説明していますが、他には「検索項目が1個だと値がカブってしまう」というケースでも同じ方法で対応できます。

後者の「検索項目が1個だと値がカブってしまう」というケースでは、いつもどおりのVLOOKUP関数を使うと予期しない値が表示される場合があるので気をつけてください。

VLOOKUP関数の落とし穴に気をつける
ExcelのVLOOKUP関数で、同じ値を持った場合の振る舞いについて誤解すると面倒な動作をすることがあります。これは日本語でVLOOKUP関数を使う場合だけでなく英数文字で使う場合も同様です。

ポイント:VLOOKUP関数を使う前に「作業列」を作成する

VLOOKUP関数で複数条件が必要な場合は、下準備が必要になります。

そもそも、VLOOKUP関数の仕様(ルール)では、「検索に使える条件は1個」です。

このルールは、私たち側では変えようがありませんね。
したがいまして、元になっている表(参照元の表)の一部を変えて対応します。

言い換えると「複数の条件を1つの条件に変えるための作業」とも言えます。
では、実際にどのようにするかというのが、次の表です。

空の列を作り作業用の列とする

このようにVLOOKUP関数で「複数条件で対応するために」列を作るわけですね。
こうすることでVLOOKUP関数で複数の条件に対応できる形にします。

作業列に値を表示したところ

B列とC列の値を結合して、作業列であるA列に表示しました。
作業列は「非表示」あるいは「折りたたみ」にすれば、「見た目上」はその存在を隠すことができます。

「列を非表示」にすることはかんたんです。とはいえ、(少し大げさですが)むやみに隠すのは危険かもしれません。とりわけ、Excelに慣れてない方がその表を触るときに、作業列の存在自体に気づかずに何かゴニョゴニョしてしまうと収集がつかないケースも予想できます。
そのため、作業列の意味がわかってもらえなくても、少なくとも「A列に何か値が入っている」という存在自体は示しておいたほうが、多少は問題回避できるのではないかと思います。
このような意味では、「非表示」よりも「折りたたみ」のほうがまだ良い(気づきやすい)と思います。

ここが今回の作業のキモになりますので、繰り返します。

VLOOKUP関数自体は検索できる項目(列)は一つです。VLOOKUP関数を使って複数の項目(列)で検索をする場合には、元になっている表(参照元の表)の一部を変えて(複数の条件でも検索できるように)対応しています。

VLOOKUP関数を使う

さぁ、事前準備は終わりました。かんたんでしたね。

仕上げに、VLOOKUP関数を埋め込みます。

ポイントは、第1引数の「検索値」です。
VLOOKUP関数のよくある使い方では、この引数で指定するのは「セル1個分」ですよね。
しかしそれでは複数条件は対応できません。
したがいまして、「セル2個分(2列分)」を指定します。

「検索値」にセル2列分の値を指定する

このように検索値を「&」で結べば、結果的に複数条件でも検索できることになります。

複数条件の結果


VLOOKUP関数の使い方を捻じ曲げているわけではないということもおわかり頂けるかと・・(笑)

複数条件で使用する際の注意点

このように複数条件の検索は案外簡単にできますが、気を付けるべき点もあります。

それは、「作業列の存在」です。この作業列があるからこそVLOOKUP関数での複数条件に対応できるわけです。
つまり、この作業列を物理的に削除できない(削除してはいけない)点に気を付けてください。

タイトルとURLをコピーしました