• 公開日:
  • 更新日:

ExcelのVLOOKUPとIF関数を組み合わせて複数条件にする

この記事では、ExcelのVLOOKUPとIF関数を組み合わせて複数条件にする方法をご紹介します。

VLOOKUP関数は1つの条件に当てはまる値を抽出しますが、IF関数を組み合わせて複数条件を指定することで、より柔軟な検索をすることができます。

以下では、IF関数の論理式や判定結果にVLOOKUP関数を指定する方法をご紹介します。

VLOOKUP関数とIF関数の書式

VLOOKUP関数とIF関数の組み合わせをご紹介する前に、それぞれの関数の使い方や書式を確認していきましょう。

VLOOKUP関数とは?

VLOOKUP関数の機能

上記の画像は、VLOOKUP関数を使って「検索値」3をA2セルからC6セルの範囲で探して、該当する値と同じ行の2列目から「C」を抽出しました。

VLOOKUP関数は、データを縦方向に検索して検索値に一致した値と同じ行の値を指定した列から抽出します。書式は「=VLOOKUP(検索値,範囲,列番号,[検索の型])」です。

ただし、基本の型ではVLOOKUP関数で複数条件を指定することはできません。

VLOOKUP関数の引数の説明や使い方の詳細は、以下の記事でご紹介しています。

ExcelのVLOOKUP関数の使い方|指定の列と同じ行にある値を返す

IF関数とは?

IF関数を使って〇×を付ける

上記の画像は、IF関数を使ってもしB2セルの値が参加である場合(真)は「○」を返し、そうでない場合(偽)は「×」を返すように指定しています。

ダブルクォーテーション内は任意の文字列を指定することができます。

IF関数は指定した論理式が「真」か「偽」かを判定します。書式は「=IF(論理式,値が真の場合,[値が偽の場合])」です。

以下の記事で、IF関数の引数や使い方の詳細をご紹介しています。

ExcelのIF関数の使い方|論理式の条件(IF文)によって処理を分岐

IF関数の論理式は、文字列以外に比較演算子を使って「○○以上の場合は~」などの数値を指定することもできます。

以下のテーブルでは、比較演算子の使い方と意味をまとめていますので参考にしてください。

論理式意味
A>BAはBよりも大きい
A>=BAはB以上
A<BAはBよりも小さい
A<=BAはB以下
A=BAはBと等しい
A<>BAとBは等しくない

ExcelのVLOOKUPとIF関数を組み合わせて複数条件にする方法

以下では、1つの条件しか指定できないVLOOKUP関数にIF関数を組み合わせて複数条件にする方法を3つご紹介します。

IF関数の論理式にVLOOKUP関数を組み合わせる方法

仕様の説明

上記の画像のようなデータを用意します。

例ではE4セルの受験番号を「検定試験結果」の表で検索して、もし受験番号に紐づいた点数が70点以上であれば「合格」そうでなければ「不合格」をF4セルに返します。

以下では、IF関数の論理式にVLOOKUP関数を組み合わせる手順をご紹介します。

手順で使用するフォーマットのダウンロードはこちら

検索値を入力する

E4セルに検索値(例:1001)を入力します。

関数を入力する

F4セルに=IF(VLOOKUP(E4,B4:C8,2,FALSE)>=70,"合格","不合格")」を入力して、Enterを押します。

上記の数式は、VLOOKUP関数の「=VLOOKUP(E4,B4:C8,2,FALSE)」で、「検索値」1001をB4セルからC8セル内で検索して、同じ行の2列目の値である80を抽出しています。

また、IF関数の「=IF(C4>=70,"合格","不合格")」で、論理式(C4セルの値が70点以上)の場合は「合格」を返して、そうでなければ「不合格」を返します。

上記の2つの数式を組み合わせると、VLOOKUP関数で取得した結果が70点以上であれば「合格」そうでなければ「不合格」をF4に返します。

結果が表示された

「受験番号」1001に紐づく「点数」80は、IF関数の論理式の70以上を満たしているので、F4セルに合格が表示されました。

以下で、検索値を別の受験番号に入れ替えた場合にどうなるのか試してみます。

検索値を入れ替えてみる

E3セルの検索値を1004に入れ替えます。

「受験番号」1004に紐づく「点数」30は、IF関数の論理式の70以上を満たしていないので、F4セルに不合格が表示されました。

IF関数の判定結果にVLOOKUP関数を組み合わせる方法

仕様の説明

例では、もしC10セルの会員区分が「会員」であれば「会員価格」を返して、C10セルの会員区分が「一般」であれば「一般価格」をD10セルに返します。

以下では、IF関数の判定結果にVLOOKUP関数を組み合わせる手順をご紹介します。

データの規則を選択する

まず、数式を入力する前に会員区分を選択できるようにリスト化します。

リストを表示するセル(例:D10セル)を選択します。

データタブ、③データの入力の下矢印、④データの入力規則の順に選択します。

元の値を入力する

「データの入力規則」ダイアログボックスが表示されました。

設定タブ、②入力値の種類でリストを選択して、③元の値で会員,一般を入力します。リストにしたい文字列を「,」で繋いでください。

OKボタンを押します。

関数を入力する

D10セルに=IF(C10="会員",VLOOKUP(B10,$B$4:$E$6,3,FALSE),IF(C10="一般",VLOOKUP(B10,$B$4:$E$6,4,FALSE)))」を入力して、Enterを押します。

上記の数式は、1つ目のIF関数とVLOOKUP関数で、もしC10セルの値が「会員」ならばVLOOKUP関数でB10セルに紐づく値を3列目の「会員価格」から返します。

さらに、2つ目のIF関数とVLOOKUP関数で、もしC10セルの値が「一般」ならばVLOOKUP関数でB10セルに紐づく値を4列目の「一般価格」から返します。

数式が長いので簡略化したい場合は、下記のコードでも同じ結果が得られます。「=VLOOKUP(B10, $B$4:$E$6, IF(C10="会員", 3, IF(C10="一般", 4, 0)), FALSE)

上記の数式は、VLOOKUP関数の列番号にIF関数を指定して、C10セルの値が「会員」の場合は3列目の値を返して、「一般」の場合は4列目の値を返します。

結果が表示された

D10セルに「98」が表示されました。

C10セルの「会員区分」が会員なので、検索値の「商品コード」1001に紐づく「会員価格」の98を表示することができました。

C10セルの会員区分を「一般」に入れ替えた場合にどうなるのか試してみましょう。

区分を入れ替えた場合に結果が変わる

C10セルのプルダウンから「会員区分」を一般に変更します。

「会員区分」を入れ替えることで価格を自動で入れ替えることができました。

IF関数とVLOOKUP関数を組み合わせて空白の処理をする方法

表やリストに空白があった場合、「0」が返されないように抽出したいデータの数値または空白の場合に応じて指定した文字列を返す方法をご紹介します。

例えばテストの結果が60点以上は「合格」、59点以下は「不合格」、空白の場合は「未受験」と返します。

詳細は、以下の記事「ExcelのVLOOKUP関数でIF関数を使って空白の処理をする」セクションでご紹介しています。

ExcelのVLOOKUP関数でIF関数を使って空白の処理をする