【エクセル解説】ISERROR関数の使い方|エラーを非表示!IF・VLOOKUPとの組み合わせも徹底ガイド

この記事では、ISERROR関数の基本から、実務で出番の多い IF関数VLOOKUP関数 との組み合わせ方を解説します。

この記事で分かること
  • ISERROR関数の基本的な構造と使い方
  • エラーの種類と、ISERROR関数が何を判定しているのか
  • IF関数と組み合わせて、エラーを任意の文字や空白に置き換える方法
  • VLOOKUP関数で出る #N/A エラーを処理し、「データなし」と表示する方法
  • ISERROR関数を使う上での注意点と、IFERROR関数との違い

エクセル作業で「エラー」が出た!困った状況をどうにかしたい

なぜエクセルでエラーが表示されるのでしょうか?その主な原因と、ISERROR関数を使うメリットを見ていきましょう。

エクセルで表示されるエラーには様々な種類があります。

エラー表示意味主な発生原因
#DIV/0!ゼロ除算0で割り算をした、または空白セルを参照して計算した
#N/A該当なしVLOOKUPなどで検索したデータが見つからなかった
#VALUE!値エラー数値計算なのに、文字(テキスト)が混ざっていた
#REF!参照エラー参照していたセルやシートが削除されてしまった

これらのエラー自体は、「計算ができない状態ですよ」というエクセルからの親切な警告ではあります。

しかし、報告資料や顧客への提出資料にエラーが表示されたままにしておくわけにはいきませんよね。

ISERROR関数でできること

ISERROR関数とは

指定したセルや数式の結果が「エラーかどうか」を判定するための関数

  • エラーの場合: TRUE(真)を返す
  • エラーではない場合: FALSE(偽)を返す

これにより、「もしエラーなら、こうする」「エラーでなければ、こうする」という複雑な処理を組み立てられるようになります。

ISERROR関数のメリット
  • 見栄えの向上
    エラーを非表示にしたり、任意の文字に置き換えたりできる
  • 計算の回避
    エラーが出たセルを次の計算の対象から外せる
  • 汎用性の高さ
    #N/Aだけでなく、すべてのエラータイプをまとめて判定できる
でんちゃん
でんちゃん

まずは、基本の使い方から見ていきましょう!

ISERROR関数の基本的な使い方と構造

ISERROR関数は、数あるエクセル関数の中でも特にシンプルで分かりやすい構造をしています。

基本の書式:たった一つの引数

ISERROR関数の書式は、次の通りです。

=ISERROR()

:エラーかどうかを判定したいセル、または数式の結果を指定します。

でんちゃん
でんちゃん

「値」 の部分に、エラーが起こりそうな計算式や、他の関数の結果が入っているセルを指定するだけでOKです!

【例題で確認】シンプルなISERROR関数の使い方

具体的なデータで、ISERROR関数がどのように TRUE または FALSE を返すのかを確認してみましょう。

結果の確認
  • C2セル:A2/B2 の結果 10
    → エラーではないので、D2の結果は FALSE
  • C3セル:A3/B3 は 50÷0 で #DIV/0! エラー
    → エラーなので、D3の結果は TRUE
  • C5セル:A5/B5 は数値と文字の計算で #VALUE! エラー
    → エラーなので、D5の結果は TRUE
でんちゃん
でんちゃん

このように、ISERROR関数はエラーの種類に関係なく、エラーが出ていれば TRUE を返してくれます。

エラー表示を「非表示」や「任意の文字」に変える:IF関数との組み合わせ

ISERROR関数を実務で最も使うパターンは、条件によって処理を分けるIF関数と組み合わせる方法です。

IF関数とISERROR関数の合わせ技の仕組み

=IF(論理式, 真の場合, 偽の場合)

この 「論理式」 の部分に、ISERROR関数を組み込むのがポイントです。

  1. 論理式:ISERROR(計算式)
    • 計算結果がエラーなら TRUE が返る
    • エラーでなければ FALSE が返る
  2. 真の場合:ISERROR の結果が TRUE(エラー)のときに実行したい処理
    • 例:「-」を表示する、空白(””)にする
  3. 偽の場合:ISERROR の結果が FALSE(エラーではない)のときに実行したい処理
    • 例:元の 「計算結果」 をそのまま表示する

こうすることで、「もしエラーなら(ISERRORがTRUE)、指定の文字(例:「-」)を表示し、そうじゃなければ(ISERRORがFALSE)、元の計算結果を表示する」という処理が完成するわけです。

【実例】エラーなら「-」を、そうでなければ計算結果を表示する

部署ごとの目標達成率を計算したいけれど、まだ実績のない部署があり、#DIV/0!エラーが出てしまうという状況を想定してみましょう。

例題:部署ごとの目標達成率
D6セルが#DIV/0!エラーとなってしまうためエラー処理をしていきます。

D2セルに入力する関数は、次のようになります。

=IF(ISERROR(C2/B2), “-“, C2/B2)

  1. ISERROR(C2/B2)
    C2(実績)をB2(目標)で割った結果がエラーかどうかを判定します。
  2. “-“
    もし ISERROR が TRUE(エラー)なら、達成率の代わりにハイフン(-)を表示します。
  3. 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! 対策)

ISERRORとIF関数を組み合わせた結果
でんちゃん
でんちゃん

これで、エラー表示を消し、見やすい表が完成しました!

検索エラーを回避!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))

  • VLOOKUP
    ID「1005」はリストにないため、結果は #N/A
  • ISERROR
    #N/Aはエラーなので、結果は TRUE
  • IF関数
    論理式が TRUE なので、「データなし」 が表示される。
結果
結果

これで、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! など

どちらを使うべきか?

  • VLOOKUPやMATCHなど、検索系の関数で「データがないこと」による #N/A だけを処理したい場合は、ISNA関数の方がより正確です。
    • 例: 意図しない#VALUE!エラーが発生した場合、ISNAなら処理を止めてエラーを表示してくれるため、デバッグしやすい。
  • 計算系で発生する #DIV/0! など、どんなエラーでもまとめて非表示にしたい場合は、ISERROR関数が簡単で便利です。

状況に応じて使い分けられるようになれば、あなたはもうエクセル中級者です!

処理を軽くするなら「IFERROR関数」も検討しよう

実は、エクセル2007以降のバージョンでは、IF(ISERROR(…)) という処理をたった一つの関数で実現できる IFERROR関数 が導入されています。

=IFERROR(, エラーの場合に返す値)

:計算式やVLOOKUPなどの元の関数を入れます

エラーの場合に返す値:エラーだった場合に表示したい文字(例:”-” や “データなし”)を入れます

【例】

IF・ISERRORの組み合わせIFERROR関数
=IF(ISERROR(A2/B2), “-“, A2/B2)=IFERROR(A2/B2, “-“)

IFERROR関数の方が圧倒的にシンプルで、数式を二回書かなくて済むため、処理も少し軽くなります。

まとめ

今回は、エクセル作業でよく使用されるISERROR関数について解説しました。

ISERROR関数のポイント

基本機能:指定した 「値」 がエラーかどうかを TRUE/FALSE で判定する

最も使う組み合わせ=IF(ISERROR(元の計算), “エラーの場合”, “エラーではない場合”)

実務での活用:VLOOKUPのエラー(#N/A)や、計算エラー(#DIV/0!など)の非表示化

代替関数IFERROR関数 を使えば、よりシンプルに記述できる

この記事を書いた人
でんちゃん

一児の父。人事として6年、採用・教育・労務・人事制度などを経験してきました。これまで200名ほどの方と面接を実施してきたので就職・転職に関するノウハウがあります。またExcelを用いたデータ分析が得意です。
娘が生まれ日々のすさまじい成長を目の当たりにしています。
人事やExcel、子育てに関してのお役立ち情報を伝えるブログを作っていきます!

でんちゃんをフォローする
Excel
シェアする
でんちゃんをフォローする

コメント

タイトルとURLをコピーしました