更新日:、 作成日:

エクセル IFERROR 関数:値がエラーかどうかで処理を分ける

はじめに

エクセルの IFERROR 関数の使い方を紹介します。

IFERROR 関数は値がエラーでないならその値を返し、エラーのときはエラー用の値を返します。

=IFERROR(A1,"エラー") のようにして、セルの値がエラーでないときはその値を、エラーのときは エラー を返します。

=IF(IFERROR(条件,FALSE),"正常","エラー") のようにして、「IF 関数」と組み合わせて、条件がエラーになるときの処理ができます。

=IF(条件,IFERROR(値,"エラー")) のようにして、「IF 関数」が返す値がエラーになるときの処理ができます。

複数条件の結果がエラーになるときや、エラー処理がエラーになるときの値を返せます。

複数条件などで処理を分岐するには「IF 関数」を使用します。

IFERROR 関数の引数

IFERROR(, エラーの処理)
がエラー以外のときはを返します。エラーのときはエラーの処理を返します。

引数「値」数値、文字列、セル参照、関数などを指定できます。スピル化
引数「エラーの処理」引数「値」がエラーのときに返す値を指定します。数値、文字列、セル参照、関数などを指定できます。スピル化

スピル化:セルの範囲や配列を指定すると結果が「スピル」します。

エラー一覧

エラー名 内容
#DIV/0!0 で割り算している=5/0
#N/A検索関数で検索対象が見つからない=VLOOKUP("キーワード", …)
"キーワード" が見つからない
#NAME?関数名や定義した名前が間違っている=SUN()
#NULL!セルの範囲指定が間違っている=SUM(A1 B1)
#NUM!エクセルや関数の数値の範囲を超えている=LARGE(B1:B3,5)
順位の範囲は 1 ~ 3 に対して 5 を指定している
#REF!参照しているセルや行や列が削除された=B2
セル「B2」や行「2」や列「B」を削除する
#SPILL!スピルの範囲に値が入力されている={1,2}
をセル「A1」に入力したときにセル「B1」に値を入力している
#VALUE!関数の引数に間違った型を指定している=SUM("エクセル")

使い方

IFERROR 関数の使い方を紹介します。

エラーのときにエラーと表示する

セル「B3」がエラーなら エラー を表示します。それ以外ならそのセルの値を表示します。

=IFERROR(B3,"エラー")
=IF(ISERROR(B4),"エラー",B4)

IF 関数」を使用しても同じことができますが、同じ数式を 2 回入力することになります。「ISERROR 関数」を使用してエラーか判定できます。

日付の実際の値は数値なのでその値を表示します。セルの書式設定から日付形式で表示できます。

6

数式がエラーのときに空文字を表示する

数式がエラーなら空文字 "" を表示します。それ以外ならそのセルの値を表示します。

=IFERROR(5/0,"")
=IFERROR(SUM(""),"")
=IFERROR(10,"")
=IFERROR("エクセル","")
7

高度な使い方

IFERROR 関数と他の関数を組み合わせた使い方などを紹介します。

IF 関数と組み合わせる

IF 関数」の引数「条件」がエラーになるかもしれないときは「ISERROR 関数」を使用してエラーか判定できます。

=IF(ISERROR(値),エラーの処理,正常な処理)
=IF(ISERROR(値)=FALSE,正常な処理,エラーの処理)

FIND 関数」は特定の文字が入っているか検索できます。特定の文字が入っていないときはエラーになります。E の文字が入っているか検索して分岐します。

=IF(ISERROR(FIND("E",B3)),"エラー","正常")
=IF(ISERROR(FIND("E",B4))=FALSE,"正常","エラー")
8

IF 関数」の引数「TRUE の処理」や引数「FALSE の処理」がエラーになるかもしれないときにエラー以外の値を返すには、その引数に IFERROR 関数を入力します。

=IF(条件,IFERROR(TRUE の処理,エラーの処理),IFERROR(FALSE の処理,エラーの処理))

INT 関数」は数値を整数にします。文字列のときはエラーになります。

=IF(B3="エクセル",IFERROR(INT(C3),"エラー"),IFERROR(INT(C3),"エラー"))
10

複数条件にする

IFERROR 関数は条件を入力する関数ではありません。複数条件を入力するには「IF 関数」をご覧ください。「AND 関数」や「OR 関数」を使用して複数条件を入力できます。

IFERROR 関数に条件を入力して、条件の結果がエラーになるときに FALSE にして分岐できます。

=IF(IFERROR(AND(条件1,条件2),FALSE),TRUE の処理,FALSE の処理)

IFERROR 関数を複数入力する

引数「エラーの処理」でエラーになるかもしれないときは IFERROR 関数を入れ子にします。

=IFERROR(B3,IFERROR(C3,D3))
=IF(ISERROR(B4),IF(ISERROR(C4),D4,C4),B4)

IF 関数」からも同じことができますが、同じ数式を 2 回入力することになります。「ISERROR 関数」を使用してエラーか判定できます。

11

解説

IFERROR 関数は条件を入力する関数ではありません。値を返す関数です。関数の引数に IFERROR 関数を入力してエラーのときの値を返せます。

引数「値」がエラーでないなら、その値を返します。エラーのときは引数「エラーの処理」を返します。

IF 関数」でも同じことができますが、判定用と結果用で同じ値を返すなら数式を 2 回入力することになります。

=IFERROR(値,エラー処理)
=IF(ISERROR(値),エラー処理,値)