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

No.004

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

2003/2007/2010/2013/2016/2019

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

VLOOKUPエラー#N/A

そのエラーを表示させず、空白などで表示させたい、というケースはよくよくあります。
今回は、VLOOKUP 関数でのエラー対処法を、2つの方法でご案内します。
おすすめは、簡単な方法1です。

<方法1. IFERROR 関数>

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

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

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

IFERROR

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 関数 の答えを返す、という式の意味となります。

IFとISERROR

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

ヘルプmemo

<IFERROR 関数>(関数の分類: 論理)
エラーの場合はエラーの場合の値を返します。エラーでない場合は、値自体を返します。

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

<ISERROR 関数>(関数の分類: 情報)
セルの内容がエラー値の場合に TRUE を返します。

数式:
=ISERROR(テストの対象)
引数:
・[テストの対象] ...テストするデータを指定
・[エラーの場合の値] ...エラーの場合に返す任意の値、式、参照を指定
ヒント:
・評価されるエラーの種類は、IFERROR関数と同じです。
twitter hatena line pocket

関連ヘルプ

新規メールが開くハイパーリンクをまとめて設定するには 《HYPERLINK》
重複データを調べる 《COUNTIF》
設定されているリンクを保ちながら、行と列を入れ替えて表を貼り付けたい 《配列数式/TRANSPOSE》
0を抜いた最小値を調べるには 《MIN・SMALL・COUNTIF・IF》
3つ以上ある範囲に条件分岐するには(多分岐) 《IF》
データに連番をふる、同じデータには同じ番号 《INDEX・MATCH・COUNTIF・MAX》
規則性がない空白セルを除いた行に連番をふるには 《IF・COUNTA・COUNTIFS》
複数条件を満たすデータの件数を求めるには 《COUNTIF・COUNTIFS・SUMPRODUCT》
奇数行の合計、偶数行の合計、n行おきの合計を求める 《配列数式/IF・SUM・MOD》
時刻を5分単位で切り上げまたは切り捨てて表示するには 《CEILING・FLOOR・ROUNDUP》
参照式の参照セルが移動しても固定されるようにしたい 《INDIRECT》
VLOOKUP関数で、複数テーブルから検索したい 《VLOOKUP・アンパサンド》
2つのデータを比較し、他方にない(両方にある)データを探す 《VLOOKUP・COUNTIF》
OR条件に当てはまるデータの合計を求める 《SUMIF・SUMIFS・SUMPRODUCT・DSUM》
日付を表す8桁の数値データを、6桁の和暦にしたい 《DATE・TEXT》