iBitzEdge

エクセル(Excel)のVLOOKUP関数で複数の条件を指定する方法

VLOOKUPの使いにくいと思う点に「検索値の指定が1つのみ」という上限があるところだ。その結果、テーブル内に2つ以上の複数の値を条件として検索し値を返すのが難しくなる。

ただし、テーブル内のデータを少し細かく管理することによってこの問題を回避することができる。

ここでは、エクセル(Excel)のVLOOKUP関数で複数の条件を使用する方法をかんたんに説明する。

VLOOKUP関数は1つの条件のみだが..

VLOOKUP関数の「検索値」は、検索条件を1つ入力するが、2つ以上入力することができない関数である。例えば上の画像のように、「愛知」の「佐藤」さんの年齢をVLOOKUP関数で表示したいが、佐藤さんは複数いる上に、愛知も2人いる。

VLOOKUP関数は、全く同じ文字列がある場合は一番上を表示する仕組みになっている。つまり今回は愛知の佐藤さんではなく、大阪の佐藤さんを表示してしまうわけだ。

結合すれば解決!

こういうときは、2つ以上の複数の検索値の条件を結合させ、一旦別の場所に表示し、そこを参照すれば解決する。

つまり画像の例の場合、名前と出身地の「佐藤」と「愛知」を結合し、「佐藤愛知」という1つの文字列に変換してしまうわけだ。名前と出身地を結合した場合は、同じ文字列がないため確実に取得することができる。

以下は2つの条件の文字列を結合しVLOOKUPで表示したかったデータを表示する実際の手順だ。

複数の条件を結合してVLOOKUPで表示

  1. データを用意する

    複数指定したい条件をもつデータを用意する。ここでは、B列に「名前」とC列に「出身地」、そしてD列の「年齢」を入力したデータを用意。

  2. 条件を結合

    用意したB列の名前とC列の出身地のデータを結合し別の場所に表示する。結合するためには条件と条件の間に「&」を入力する。

    ここではA2に、「=B2&C2」と入力した。A2には「伊藤東京」と表示される。さらにA2からA11までオートフィルですべての行を結合する。

  3. 2つの検索値のセルを用意

    次に検索値に指定したい条件を入力する2つのセルを用意する。
    ここではF2に「名前」とG2に「出身地」を入力するセルを用意した。

  4. 結果のセルを用意

    最後に結果を表示する(VLOOKUPを入力する)セルを用意する。
    ここではH2に結果の「年齢」を表示するセルを用意した。

  5. VLOOKUPを入力

    用意した結果を表示するセルに以下のように入力する。

    VLOOKUP(検索値1&検索値2,範囲,列番号,0)

    ここでは「=VLOOKUP(F2&G2,A2:D11,4,0)」と入力する。#N/Aエラーが表示されるが、これは名前と出身地が空白なので表示されるエラーである。次の確認のステップで実際に名前と出身地を入力してみよう。

  6. 確認

    以上の手順で2つの条件をVLOOKUPで検索し、結果を表示することができる。

    2つの検索値にそれぞれ値を入力し結果が表示されるかどうかを確認してみよう。ここでは、はじめに実現できなかった「愛知」の「佐藤」さんの年齢も問題なく表示された。

    今回の説明では2つの条件で実践したが、3つ以上でも同じように結合すれば結果を表示することができる。