ExcelのVLOOKUP関数とIF関数を組み合わせて使う方法

ExcelのVLOOKUP関数とIF関数を組み合わせて使う方法

VLOOKUP関数とIF関数の書式

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

VLOOKUP関数の書式

VLOOKUP(ブイ・ルックアップ)関数は、指定された範囲の1列目で特定の値を検索し、指定した列と同じ行にある値を返します。

VLOOKUP関数の書式は「=VLOOKUP(検索値, 範囲, 列番号, [検索の型])」のように記述します。引数については下記の記事で図解入りで説明していますのでご確認ください。

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

IF関数の書式

IF(イフ)関数は、条件が真または偽の場合に、それぞれ別の結果を返すことができる関数です。

IF関数の書式は「IF(条件式,真の場合,偽の場合)」のように記述します。条件式が成り立つ場合は「真の場合」で指定した結果、成り立たない場合は「偽の場合」で指定した結果が返ります。

もし「IF(C4="A","Aです","Aではない")」のような数式があった場合、C4セルが「A」であれば「Aです」と表示され、C4セルが「A」でなければ「Aではない」と表示されます。

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

IF関数の条件式の中にVLOOKUP関数を組み合わせた例

VLOOKUP関数とIF関数のそれぞれの書式を確認したところで実際の例をもとに組み合わせ方を覚えていきましょう。検索結果の数値の大きさによって表示される文字列を変更する例になります。

例えば上記の表で、E4セルに受験番号を入れるとF4セルに検定試験結果から紐づいた得点を検索し、合格点(70点以上)であるかを判定して「合格」または「不合格」を表示するとします。

VLOOKUP関数の入力

まずVLOOKUP関数で受験番号に紐づいた点数を検索していきます。F4セルを選択し、『=VLOOKUP(E4,$B$4:$C$8,2,FALSE)』と入力します。

検索値が「E4セル」、検索範囲が「$B$4:$C$8」、列番号が「2(検索範囲の最初の列から2番目)」、検索の型が「FALSE(完全一致)」をそれぞれ引数で指定しています。

VLOOKUP関数の入力結果

E4セルに受験番号「1001」を入力するとF4セルには「80」が検索結果として返りました。検定試験結果の受験番号列から「1001」を検索し、その行の左端から「2」番目の値である「80」を抽出しています。

次に合否を判定する式をIF関数で指定してみましょう。

IF関数の入力

F4セルを選択し、『=IF(C4>=70,"合格","不合格")』と入力します。条件式が「C4>=70(C4セルが70以上)」、真の場合が「合格」、偽の場合が「不合格」と引数を指定しています。

IF関数の入力結果

F4セルに「合格」と表示されました。受験番号1001の点数「80」が70点以上だったので真の場合になり、「合格」が表示されました。

ただしこの式だとC4セルを直に指定しているので、E4セルの受験番号を他に変更してもC4セル(受験番号1001)の点数をもとにした合否結果になってしまいます。ここで先ほど使用したVLOOKUP関数の式を使用します。

VLOOKUP関数の式ではE4セルに指定した受験番号を検索して点数を抽出できました。VLOOKUP関数で抽出した点数をIF関数で判定するように組み合わせます。

VLOOKUP関数とIF関数の入力

F4セルに『=IF(VLOOKUP(E4,$B$4:$C$8,2,FALSE)>=70,"合格","不合格")』と入力します。IF関数の式「IF(C4>=70,"合格","不合格")」の中の「C4」がVLOOKUP関数の式「VLOOKUP(E4,$B$4:$C$8,2,FALSE)」に置き換わっています。

VLOOKUP関数とIF関数の入力結果

F4セルに「合格」と表示されました。E4セルの受験番号を検索値として検定試験結果の受験番号列から検索し、その行の左端の列から2番目にある点数「80」が70以上であるかを判定しています。80は70以上なので真の場合になり、「合格」という文字列が出力する結果となりました。

VLOOKUP関数とIF関数の入力結果

本当にVLOOKUP関数とIF関数が動作しているのかを確認するためにE4セルの受験番号を変更してみましょう。E4セルに『1004』と入力します。そうすると自動的にF4セルに「不合格」と表示されました。

受験番号1004の点数は30点なので70未満になりますので偽の場合となり、「不合格」が表示される結果となりました。

上記でご紹介した例のようにIF関数の引数の中でVLOOKUP関数で検索した結果を使用するパターンが多いです。次に別の例としてIF関数の第2引数「真の場合」と第3引数「偽の場合」にVLOOKUP関数を組み合わせた例を見ていきましょう。

IF関数の判定結果にVLOOKUP関数を組み合わせた例

上記ではIF関数の条件式の中でVLOOKUP関数を使用しましたが、今度は真もしくは偽の場合にVLOOKUP関数を使用する例を説明していきます。

IF関数のTRUEにVLOOKUP関数を指定した例

例えば上記の表で、B10セルに商品コードを入れるとD10セルの会員区分(会員もしくは一般)を判定し、対応した商品の価格をE10セルで表示するとします。

組み合わせた関数例

まずD10セルが「会員」の場合に対象商品の「会員価格」を検索してみましょう。E10セルを選択し、『=IF(D10="会員",VLOOKUP(B10,$B$4:$E$6,3,FALSE),"")』と入力します。

IF関数の条件式で「D10セルが会員かどうか」を判定し、真であれば「VLOOKUP関数で対象の商品コードで左端から3番目(会員価格列)で検索した結果」が返ります。偽ならば空白にしています。

組み合わせた関数の結果

E10セルに「98」とりんごの会員価格が表示されました。会員価格だけではなく一般価格にも対応していきます。上記で記述した式に追加します。

組み合わせた関数例

E10セルを選択し、『=IF(D10="会員",VLOOKUP(B10,$B$4:$E$6,3,FALSE),IF(D10="一般",VLOOKUP(B10,$B$4:$E$6,4,FALSE)))』と入力します。

長い数式になりましたので分解して説明します。

会員価格のみを出力した際に記述した「=IF(D10="会員",VLOOKUP(B10,$B$4:$E$6,3,FALSE),"")」の空白を指定していた部分("")を「IF(D10="一般",VLOOKUP(B10,$B$4:$E$6,4,FALSE))」に置き換えた形になります。置き換えた部分はD10セルが一般であればVLOOKUP関数で一般価格を検索する旨が指定されています。

会員かどうかを判定し、会員であれば会員価格で検索します。会員でなければ一般かどうかを判定し、一般であれば一般価格で検索します。

組み合わせた関数の結果

E10セルにりんごの会員価格の「98」が表示されました。D10セルの会員区分を変更すると自動的に価格が切り替わるようになるか確認します。D10セルの会員区分を「一般」にプルダウンで変更します。

組み合わせた関数の結果

E10セルにりんごの一般価格の「118」が表示されました。VLOOKUP関数とIF関数を組み合わせることで検索の条件が幅広くなります。ぜひ活用できるようになりましょう。