この記事では、ISERROR関数の基本から、実務で出番の多い IF関数 や VLOOKUP関数 との組み合わせ方を解説します。
エクセル作業で「エラー」が出た!困った状況をどうにかしたい
なぜエクセルでエラーが表示されるのでしょうか?その主な原因と、ISERROR関数を使うメリットを見ていきましょう。
エクセルで表示されるエラーには様々な種類があります。
| エラー表示 | 意味 | 主な発生原因 |
|---|---|---|
| #DIV/0! | ゼロ除算 | 0で割り算をした、または空白セルを参照して計算した |
| #N/A | 該当なし | VLOOKUPなどで検索したデータが見つからなかった |
| #VALUE! | 値エラー | 数値計算なのに、文字(テキスト)が混ざっていた |
| #REF! | 参照エラー | 参照していたセルやシートが削除されてしまった |
これらのエラー自体は、「計算ができない状態ですよ」というエクセルからの親切な警告ではあります。
しかし、報告資料や顧客への提出資料にエラーが表示されたままにしておくわけにはいきませんよね。
ISERROR関数でできること
指定したセルや数式の結果が「エラーかどうか」を判定するための関数
これにより、「もしエラーなら、こうする」「エラーでなければ、こうする」という複雑な処理を組み立てられるようになります。
- 見栄えの向上:
エラーを非表示にしたり、任意の文字に置き換えたりできる - 計算の回避:
エラーが出たセルを次の計算の対象から外せる - 汎用性の高さ:
#N/Aだけでなく、すべてのエラータイプをまとめて判定できる

まずは、基本の使い方から見ていきましょう!
ISERROR関数の基本的な使い方と構造
ISERROR関数は、数あるエクセル関数の中でも特にシンプルで分かりやすい構造をしています。
基本の書式:たった一つの引数
ISERROR関数の書式は、次の通りです。
=ISERROR(値)
値:エラーかどうかを判定したいセル、または数式の結果を指定します。

「値」 の部分に、エラーが起こりそうな計算式や、他の関数の結果が入っているセルを指定するだけでOKです!
【例題で確認】シンプルなISERROR関数の使い方
具体的なデータで、ISERROR関数がどのように TRUE または FALSE を返すのかを確認してみましょう。


このように、ISERROR関数はエラーの種類に関係なく、エラーが出ていれば TRUE を返してくれます。
エラー表示を「非表示」や「任意の文字」に変える:IF関数との組み合わせ
ISERROR関数を実務で最も使うパターンは、条件によって処理を分けるIF関数と組み合わせる方法です。
IF関数とISERROR関数の合わせ技の仕組み
=IF(論理式, 真の場合, 偽の場合)
この 「論理式」 の部分に、ISERROR関数を組み込むのがポイントです。
- 論理式:ISERROR(計算式)
- 計算結果がエラーなら TRUE が返る
- エラーでなければ FALSE が返る
- 真の場合:ISERROR の結果が TRUE(エラー)のときに実行したい処理
- 例:「-」を表示する、空白(””)にする
- 偽の場合:ISERROR の結果が FALSE(エラーではない)のときに実行したい処理
- 例:元の 「計算結果」 をそのまま表示する
こうすることで、「もしエラーなら(ISERRORがTRUE)、指定の文字(例:「-」)を表示し、そうじゃなければ(ISERRORがFALSE)、元の計算結果を表示する」という処理が完成するわけです。
【実例】エラーなら「-」を、そうでなければ計算結果を表示する
部署ごとの目標達成率を計算したいけれど、まだ実績のない部署があり、#DIV/0!エラーが出てしまうという状況を想定してみましょう。

D2セルに入力する関数は、次のようになります。
=IF(ISERROR(C2/B2), “-“, C2/B2)
- ISERROR(C2/B2):
C2(実績)をB2(目標)で割った結果がエラーかどうかを判定します。 - “-“:
もし ISERROR が TRUE(エラー)なら、達成率の代わりにハイフン(-)を表示します。 - C2/B2:
もし ISERROR が FALSE(エラーではない)なら、本来の計算結果を表示します。
D2セル:=IF(ISERROR(120/100), “-“, 120/100) → 1.2
→エラーではないので、計算結果を表示
D3セル:=IF(ISERROR(0/80), “-“, 0/80) → 0
→エラーではないので、計算結果を表示 (注: 0/80は0でエラーではない)
D4セル:=IF(ISERROR(45/50), “-“, 45/50) → 0.9
→エラーではないので、計算結果を表示
D5セル:=IF(ISERROR(0/10), “-“, 0/10) → 0
→エラーではないので、計算結果を表示
D6セル:=IF(ISERROR(100/0), “-“, 100/0) → –
→エラーなので、ハイフンを表示 (#DIV/0! 対策)


これで、エラー表示を消し、見やすい表が完成しました!
検索エラーを回避!VLOOKUP関数とISERROR関数の組み合わせ
IF関数との組み合わせに次いで、VLOOKUP関数とISERROR関数の組み合わせも実務でよく使用します。
VLOOKUP関数は、検索対象のデータが見つからない場合に #N/A エラーが出ます。
なぜVLOOKUPでISERRORが必要なのか?(#N/A問題)
VLOOKUPの #N/A エラーは、特に大きなデータや、手元のリストにはないIDを検索するときによく発生します。
「このIDはデータにありませんよ」という意味ですが、これもまた、エラーとして見た目を損ないます。
もし、VLOOKUPの結果をさらに SUMIF や AVERAGE などの計算に使っている場合、途中に #N/A が一つでもあると、最終結果までエラー(#N/A)になってしまうという厄介な側面もあります。
そのため、「VLOOKUPで該当データがなければエラーが出る。もしエラーが出たら、『データなし』と表示する」という処理が必要になるのです。
【実例】VLOOKUPで該当なしの場合に「データなし」と表示する
社員IDを入力したら氏名が自動で表示されるような表を作成するケースを考えます。検索対象のリストに存在しないIDを入力した場合の処理をISERRORで制御しましょう。

まず、元のVLOOKUP関数を作成します。
(例:A列に入力したIDを、社員リストというテーブルの2列目から検索する)
=VLOOKUP(A2, 社員リスト, 2, FALSE)
この数式全体を 値 として、IF・ISERROR関数に組み込みます。
=IF(ISERROR(VLOOKUP(A2, 社員リスト!A2:B6, 2, FALSE)), “データなし”, VLOOKUP(A2,社員リスト!A2:B6, 2, FALSE))
B3セル(ID:1005)に入力する数式:
=IF(ISERROR(VLOOKUP(A2, 社員リスト!A2:B6, 2, FALSE)), “データなし”, VLOOKUP(A2,社員リスト!A2:B6, 2, FALSE))

これで、IDが見つからない場合でも、スッキリと「データなし」と表示され、資料の品質がグッと上がります。
ISERROR関数を使う際の注意点:ISNA関数との違い
ISERROR関数は非常に便利ですが、使用上の注意点があります。それは、「すべてのエラーを判定してしまう」 という点です。
ISERRORとISNAの違い
ISERROR関数は、#DIV/0!、#VALUE!、そしてVLOOKUPで起こる#N/Aなど、すべてのエラーを TRUE と判定します。
一方で、ISNA関数 というものもあります。
=ISNA(値)
| 関数名 | 判定対象のエラー | 判定対象外のエラー |
|---|---|---|
| ISERROR | すべてのエラー(#N/Aを含む) | – |
| ISNA | #N/A のみ | #DIV/0!、#VALUE!、#REF! など |
どちらを使うべきか?
状況に応じて使い分けられるようになれば、あなたはもうエクセル中級者です!
処理を軽くするなら「IFERROR関数」も検討しよう
実は、エクセル2007以降のバージョンでは、IF(ISERROR(…)) という処理をたった一つの関数で実現できる IFERROR関数 が導入されています。
=IFERROR(値, エラーの場合に返す値)
値:計算式やVLOOKUPなどの元の関数を入れます
エラーの場合に返す値:エラーだった場合に表示したい文字(例:”-” や “データなし”)を入れます
【例】
| IF・ISERRORの組み合わせ | IFERROR関数 |
|---|---|
| =IF(ISERROR(A2/B2), “-“, A2/B2) | =IFERROR(A2/B2, “-“) |
IFERROR関数の方が圧倒的にシンプルで、数式を二回書かなくて済むため、処理も少し軽くなります。
まとめ
今回は、エクセル作業でよく使用されるISERROR関数について解説しました。
基本機能:指定した 「値」 がエラーかどうかを TRUE/FALSE で判定する
最も使う組み合わせ:=IF(ISERROR(元の計算), “エラーの場合”, “エラーではない場合”)
実務での活用:VLOOKUPのエラー(#N/A)や、計算エラー(#DIV/0!など)の非表示化
代替関数:IFERROR関数 を使えば、よりシンプルに記述できる
コメント