ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.004

アイコン VLOOKUP関数の結果がエラー値の場合には空白で表示させる 《IFERROR・IF・ISERROR》

Excel2003/2007/2010/2013

VLOOKUP関数(関数の分類: 検索/行列)では、検索値が見つからなかった場合に「#N/A」のエラーを返します。
VLOOKUP関数がエラー出しちゃうのは、既定なので仕方がないことです。

VLOOKUPエラー#N/A

そのエラーを出さずに空白などで表示させたい、というケースはよくよくあります。

今回は、VLOOKUP関数でのエラー対処法を、2つの方法でご案内します。

<IFERROR関数>

IFERROR関数(関数の分類: 論理)は、ユーザーのご要望に応じてExcel2007で登場した関数です。

引数は[値]と[エラーの場合の値]の2つ、1つ目の引数[値]がエラーでなければ、そのまま[値]を返し、エラーであれば2つ目の引数[エラーの場合の値]の内容を返します。
したがって、式の組み立ては次のようになります。

  =IFERROR(VLOOKUP(・・・),"")

IFERROR

IFERROR関数を使用すると、簡単にエラー回避ができます。

<IF関数とISERROR関数>

IFERROR関数がなかったExcel2003まではこの方法でしたので、昔作成されたブックに見ることがあるかもしれません。

VLOOKUP関数の結果がエラーかどうかを判断するために、ISERROR関数(関数の分類: 情報)を使用します。
エラーのときとエラーでなかったときとの答えの分岐が必要ですのでIF関数(関数の分類: 論理)を用います。

とりあえず、式の組み立ては次のようになります。

  =IF(ISERROR(VLOOKUP(・・・)),"",VLOOKUP(・・・))

IF関数の条件には、ISERROR関数の中にVLOOKUP関数がネストされた式が設定されています。
ISERROR関数は、引数がエラーの場合は「TRUE」を返し、エラーでない場合は「FALSE」を返します。
これにより、VLOOKUP関数の答えがエラーであるかどうかを調べています。

IF関数の引数[論理式]は、「ISERROR(VLOOKUP(・・・))」と設定しています。これは、「ISERROR関数が「TRUE」を返した場合」という意味となり、本来の「ISERROR(VLOOKUP(・・・))=TRUE」とする「=TRUE」を省略しています。
「=FALSE」と条件を設定したい場合は省略できません。

したがって、IF関数の条件は「VLOOKUP関数がエラーの場合」となり、[真の場合]は「空白」、[偽の場合]はエラーでないVLOOKUP関数の答えを返す、という式の意味となります。

IFとISERROR

VLOOKUP関数が2度出てきますが、同じ式を設定します。

ヘルプmemo

<IFERROR関数 (論理関数)>

エラーの場合はエラーの場合の値を返します。エラーでない場合は、値自体を返します。
 数式: =IFERROR(値, エラーの場合の値)
 引数:
  値... エラーかどうかをチェックする任意の値、式、参照を指定
  エラーの場合の値... エラーの場合に返す任意の値、式、参照を指定
 ヒント:
  評価されるエラーの種類は、次のとおりです。
   #N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!

ヘルプmemo

<ISERROR関数 (論理関数)>

セルの内容がエラー値の場合に TRUE を返します。
 数式: =ISERROR(テストの対象)
 引数:
  テストの対象... テストするデータを指定
 ヒント:
  評価されるエラーの種類は、IFERROR関数と同じです。

関連ヘルプ

3つ以上ある範囲に条件分岐するには(多分岐) 《IF》
ページのトップへ戻る