エクセルVLOOKUP関数のエラーをIF関数で回避!表示しない

エクセルVLOOKUP関数は、よく使われる関数です。ですが、エクセルVLOOKUP関数で検索した時、エラーが出ることがよくあります。エラーの原因は、検索値がないときは、もちろんエラーになります。その他に、検索値に何も入力されていなくて、セルが空白になっているときもエラーになります。このような場合に、VLOOKUP関数のエラーを、IF関数で回避して、#N/Aを表示しないようにする方法を紹介しています。エラー#N/Aが表示されていると、何か間違ってるように見えます。このエラー#N/Aを非表示にしてセルを空白にしたり、表示しないで別な文字列で返すことができます。エラー#N/Aが、どのような場合のエラーなのか、原因を別な文字で表すと、エラーの原因が一目で分かりやすくなります。

 

 

VLOOKUP関数のエラーをIF関数で回避

検査値に空白がある場合、VLOOKUP関数エラーを、IF関数で回避します。

検査値が空白の場合、エラーを表示しない

B列の「型」を検索値として、範囲「E1:F3」のE列から探します。検査値が見つかったら、F列の値を返します。

C2に、検査値が「空白」だったら、エラーを表示しない式を入力してみましょう。セルには空白を表示させます。

 

C2 =IF(B2=””,””,VLOOKUP(B2,$E$2:$F$4,2,FALSE))

「A」が返されます。

C2の式を、下にドラッグしましょう。

C8を見てみましょう。B8には、何も表示されていません!

C8に、「空白」が表示されました!

 

 

検査値が空白の場合、特定の文字を表示

次に、C2に検査値が「空白」だったら、「未入力」を表示させる式を入力しましょう。

 

C2 =IF(B2=””,”未入力”,VLOOKUP(B2,$E$2:$F$4,2,FALSE))

「A」が返されます。

C2の式をドラッグして、下にコピーしましょう。

C8を見てみましょう。B8は「空白」です。

C8には「未入力」が表示されています!

 

 

VLOOKUP関数のエラーをIFとISERRORで回避

検査値が無い場合、エラーを表示しない

検査値がない場合の、VLOOKUP関数エラーを、IF関数とISERROR関数で回避してみましょう。

A列の「品名」を検査値として、範囲「F2:G4」のF列から探します。検査値が見つかったら、G列の値を返します。検査値がF列になかったら、セルにエラーを表示させません。「空白」にします。

C2に、式を入力しましょう。

 

C2 =IF(ISERROR(VLOOKUP(A2,$F$2:$G$4,2,FALSE)),””,VLOOKUP(A2,$F$2:$G$4,2,FALSE))

「200」が返されます。

C2の式をドラッグして、下にコピーしましょう。

C3を見てみましょう。検査値A3は「メロン」です。「メロン」F列にありません。

C3は、「空白」になっています。

検査値が無い場合、特定の文字を表示

今度は、C2に、検索値がない場合、セルに「品名無」と表示させましょう。

C2に、式を入力します。

 

C2 =IF(ISERROR(VLOOKUP(A2,$F$2:$G$4,2,FALSE)),”品名無”,VLOOKUP(A2,$F$2:$G$4,2,FALSE))

「200」が返されます。

C2の式をドラッグして、下にコピーしましょう。

C3を見てみましょう。検査値A3「メロン」は、F列にありません。

C3は、「品名無」が返されています!

 

 

関数の説明

IF関数

エクセルIF関数は、真の場合は真の場合の値を返し、偽の場合は偽の場合の値を返す関数です。IF関数は、エクセル関数の中で使用頻度が高い関数です。他の関数と組み合わせて使用されることも多いです。

IF関数の書式と引数

IF(論理式,真の場合,偽の場合)

論理式 条件式を指定します。
真の場合 論理式がTRUEの場合に返す値を指定します。
偽の場合 論理式がFALSEの場合に返す値を指定します。省略するとFALSEを返します。

IF関数の使い方

数式 結果
B2=IF(A2=”○”,”参加”,”不参加”)  A2に「○」と入力されていたら、「参加」それ以外は「不参加」を表示する式です。

 

VLOOKUP関数

エクセルVLOOKUP関数は、指定した範囲の左端の列で数値や文字列などを検索し、同じ行にある指定した列番号の値を返します。

VLOOKUP関数の書式と引数

=VLOOKUP(検索値, 範囲, 列番号,[ 検索の型])

検索値 検策する値を指定します。
範囲 検索する範囲を指定します。その場合、検索する列を範囲の一番左にします。検索の型にTRUEを指定、または省略した場合は、正確な値を返すために範囲の左端の列を昇順で並び替えておく必要があります。
列番号 範囲の先頭列から数えた、列番号を指定します。指定した列番号の列の値が返されます。
検索の型 FALSEまたは”0”を指定すると、一致する値のみ返されます。一致する値が見つからない場合は、エラー値#N/A が返されます。TLUEまたは”1”を指定すると完全一致の値、または近似値が返されます。省略した場合もTRUEになります。完全一致の値が見つからないと、検索値未満の最大値が返されます。

VLOOKUP関数の使い方

数式 結果
B2=VLOOKUP(A2,$E$2:$G$15,3,FALSE)  検査値はA2です。範囲は「E1:G15」です。範囲「E2:G15」のE列から検査値A2を探して、範囲の左から3番目の値を返す式です。

 

 

ISERROR関数

結果に応じて論理値 TRUE または FALSE を返します。

ISERROR関数の書式と引数

 =ISERROR(テストの対象)
 
テストの対象 エラーかどうか調べるセルを選択します。テスト対象がエラー値(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! のいずれか) を参照するときにTRUEを返します。

 

IF関数でVLOOKUP関数のエラーを簡単に回避

IF関数とVLOOKUP関数を使って検索することはよくありますが、このようにエラーを回避することもできます。検査値が空白の場合、VLOOKUP関数のエラーを、IF関数で簡単に回避して、セルにエラーを表示しないようにします。セルを空白にすると、空白になっている原因が分からない場合は、指定した文字を表示させると原因がすぐ分かります。

検査値がない場合は、IF関数だけではエラー回避できません。ISERROR関数も使いましょう。

VLOOKUP関数を使うと、エラーが出ることは意外とよくあります。VLOOKUP関数のエラーを表示させたくない場合は、IF関数と組み合わせて使いましょう。

こちらの記事もご覧ください。⇒エクセルIFERROR関数でVLOOKUP関数のエラーを回避する方法