No.004
VLOOKUP関数の結果がエラー値の場合には空白で表示させる 《IFERROR・IF・ISERROR》
2003/2007/2010/2013/2016/2019
VLOOKUP 関数(関数の分類: 検索/行列)では、検索値が見つからなかった場合に「#N/A」のエラーを返します。
VLOOKUP 関数がエラー出しちゃうのは、既定なので仕方がないことです。
そのエラーを表示させず、空白などで表示させたい、というケースはよくよくあります。
今回は、VLOOKUP 関数でのエラー対処法を、2つの方法でご案内します。
おすすめは、簡単な方法1です。
<方法1. IFERROR 関数>
IFERROR 関数(関数の分類: 論理)は、ユーザーのご要望に応じて Excel2007 より登場した関数です。
引数は [値] と [エラーの場合の値] の2つ、1つ目の引数[値] がエラーでなければ、そのまま [値] を返し、エラーであれば2つ目の引数[エラーの場合の値] の内容を返します。
したがって、IFERROR 関数に VLOOKUP 関数をネストした、次のような式の組み立てとなります。
=IFERROR(VLOOKUP(・・・),"")
IFERROR 関数を使用すると、簡単にエラー回避ができます。
<方法2. IF 関数と ISERROR 関数>
IFERROR 関数がなかった Excel2003 まではこの方法でしたので、昔作成されたブックに見ることがあるかもしれません。
今や方法1で求めればよいのですが、いざ遭遇したときに把握できるようにしておきましょう。
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 関数 の答えを返す、という式の意味となります。
VLOOKUP 関数が2度出てきますが、同じ式を設定します。
ヘルプmemo
<IFERROR 関数>(関数の分類: 論理)
エラーの場合はエラーの場合の値を返します。エラーでない場合は、値自体を返します。
- 数式:
- =IFERROR(値, エラーの場合の値)
- 引数:
- ・[値] ...エラーかどうかをチェックする任意の値、式、参照を指定
- ・[エラーの場合の値] ...エラーの場合に返す任意の値、式、参照を指定
- ヒント:
- ・評価されるエラーの種類は、次のとおりです。
#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!
<ISERROR 関数>(関数の分類: 情報)
セルの内容がエラー値の場合に TRUE を返します。
- 数式:
- =ISERROR(テストの対象)
- 引数:
- ・[テストの対象] ...テストするデータを指定
- ・[エラーの場合の値] ...エラーの場合に返す任意の値、式、参照を指定
- ヒント:
- ・評価されるエラーの種類は、IFERROR関数と同じです。