会計の基礎知識

ExcelのIFERROR関数でエラーを非表示に!基本からVLOOKUPとの組み合わせまで解説

公開日:

イフエラー

もう「#N/A」で悩まない!エラー表示をスマートに処理して、誰が見ても分かりやすい資料を作成する秘訣を学びましょう。

せっかく時間をかけて作成したExcelの資料に、「#N/A」や「#DIV/0!」といったエラーが表示され、見栄えが悪くなってしまった経験はありませんか。

これらのエラーは、計算ができないだけでなく、資料全体の信頼性を損ないかねません。しかし、たった一つの関数をマスターするだけで、この悩みは劇的に改善されます。それがIFERROR(イフエラー)関数です。

この記事を最後まで読めば、あなたはIFERROR関数を完全に理解し、エラー表示を自在にコントロールできるようになります。その結果、誰が見ても分かりやすく、プロフェッショナルで信頼性の高い資料を、自信を持って作成できるようになるでしょう。

この記事では、IFERROR関数の基本的な使い方から、実務で頻出するVLOOKUP関数との組み合わせ、さらには類似関数との使い分けまで、具体的な例を交えて丁寧に解説します。

Excelに不慣れな方でも、この記事を読み終える頃には、エラー処理をスマートに行えるようになっているはずです。

IFERROR関数とは?その役割と基本を徹底解説

IFERROR関数は、数式の結果がエラーになった場合に、あらかじめ指定した値や文字列を表示させることができる、Excelの論理関数です。まずは、なぜエラー処理が重要なのか、そしてIFERROR関数の基本的な仕組みについて理解を深めましょう。

なぜエラー表示の管理が重要なのか?

Excelシート上に表示されるエラー値は、単に見栄えが悪いという問題だけではありません。より深刻なのは、エラー値が一つでもあると、そのセル範囲を含む他の計算式(例えばSUM関数やAVERAGE関数)までエラーになってしまう点です。これにより、意図しない計算ミスが連鎖的に発生し、データ全体の正確性が失われる危険性があります。

また、エラーがそのまま残された資料は、見る人に「未完成」あるいは「不正確」という印象を与えかねません。データの信頼性を担保し、プロフェッショナルな成果物を作成するためにも、エラーを適切に管理することは非常に重要なスキルです。

IFERROR関数の基本的な構文

IFERROR関数の構造は非常にシンプルです。2つの情報(引数)を指定するだけで機能します。

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

1つ目の引数「値」には、エラーかどうかをチェックしたい数式やセル参照を指定します。これは必須の引数です。

2つ目の引数「エラーの場合の値」には、「値」で指定した数式がエラーになった場合に、代わりに表示させたい値を指定します。これもExcelでは必須の引数です。

この関数の動作は、「もし(IF)数式がエラー(ERROR)になったら、指定した値を表示して。そうでなければ、数式の計算結果をそのまま表示して」というものです。

例えば、=IFERROR(A1/B1, “計算エラー”) という式は、A1をB1で割る計算を行います。もしB1が0でエラーになった場合は「計算エラー」という文字を表示し、問題なく計算できればその結果を表示します。

IFERRORが対応できる主なエラーの種類

IFERROR関数の強力な点は、Excelで発生するほとんどすべての種類のエラーを一つの関数で処理できることです。これにより、エラーの原因を細かく特定しなくても、一括で表示を整えることが可能です。

IFERROR関数が対応できる主なエラーには「#DIV/0!(ゼロ除算エラー)」があります。これは、数値を0(ゼロ)や空白セルで割ろうとした場合に発生します。

また、「#N/A(値なしエラー)」も対象です。これはVLOOKUP関数などで検索値が見つからなかった場合に表示されます。

その他にも、「#NAME?(名前エラー)」は関数名を間違って入力した場合に発生します。例えば、「VLOOKUP」を「VLLOKUP」と入力するとこのエラーが出ます。

「#REF!(参照エラー)」は、数式が参照していたセルを削除してしまった場合などに発生します。

「#VALUE!(値エラー)」は、数値が期待される場面で文字列が入力されているなど、引数の種類が違う場合に発生します。

「#NUM!(数値エラー)」は、計算結果がExcelで扱える数値の範囲を超えてしまった場合に表示されます。

「#NULL!(無効な共通範囲エラー)」は、SUM(A1:A5 B1:B5)のように、セル範囲の間に必要な演算子がない場合に発生します。

これらのエラーは、計算ロジックそのものが間違っている場合(例:#NAME?)と、データが不完全なために発生する場合(例:#DIV/0!や#N/A)があります。IFERROR関数は、後者の場合に特に有効です。

実践編 IFERROR関数の具体的な使い方をマスターする

実践編 IFERROR関数の具体的な使い方をマスターする

IFERROR関数の基本を理解したところで、次は実務でよく使われる具体的なパターンを見ていきましょう。エラーを非表示にしたり、分かりやすいメッセージに置き換えたりする方法をマスターすれば、資料のクオリティが格段に向上します。

エラーを空白(非表示)にする最もシンプルな方法

エラー表示を完全に見えなくしたい場合、つまり空白として表示させたい場合が最も多いでしょう。その場合は、「エラーの場合の値」にダブルクォーテーションを2つ(””)指定します。

例えば、売上達成率を計算する表で、予算が未入力の箇所にエラーが表示されているとします。

=IFERROR(B2/C2, “”)

この数式をセルに入力すると、C2セルが空白や0で#DIV/0!エラーが発生する場合でも、セルには何も表示されなくなり、表全体がすっきりと見やすくなります。

これは、数式をあらかじめ下の行までコピーしておく際に非常に便利なテクニックです。

エラーを「該当なし」などの特定の文字に置き換える

空白にするだけでは、データが存在しないのか、それとも計算ができなかったのかが分かりにくい場合があります。そのような時は、エラーの理由を示す特定の文字列に置き換えると、より親切な資料になります。

例えば、前年比を計算する際に、前年のデータがない新商品でエラーが出たとします。

=IFERROR(C4/B4, “前年実績なし”)

このように設定すれば、エラーセルに「前年実績なし」と表示され、見た人が状況を一目で理解できます。

文字列の代わりに、数値を表示させることも可能です。例えば、エラーの場合は一律で「0」と表示したい場合は、=IFERROR(C3*D3, 0)のように指定します。

ゼロ除算エラー(#DIV/0!)を未然に防ぐ

実務で最も頻繁に遭遇するエラーの一つが、ゼロ除算によって発生する#DIV/0!エラーです。

特に、進捗率や達成率、前年比などを計算する際に、分母となる数値が0や空白であるケースは少なくありません。

=IFERROR((今年の売上 – 前年の売上)/ 前年の売上, “-”)

上記のように、IFERROR関数で計算式全体を囲むだけで、前年の売上が0の場合でもエラー表示を回避し、「-」などの記号で代替表示できます。

これにより、計算ができない箇所があっても表全体の体裁を崩さずに済みます。IFERROR関数は、単にエラーを隠すだけでなく、このようにデータの不完全性を管理し、資料の見た目と機能性を両立させるための重要なツールと言えます。

応用編 VLOOKUP関数との組み合わせで業務を劇的に効率化

応用編 VLOOKUP関数との組み合わせで業務を劇的に効率化

IFERROR関数の真価が最も発揮されるのが、VLOOKUP関数との組み合わせです。この「黄金パターン」を使いこなせば、データ照合やレポート作成の業務効率が飛躍的に向上します。

なぜVLOOKUP関数で「#N/A」エラーが頻発するのか

VLOOKUP関数は、指定した範囲の中から特定のデータを探し出し、対応する値を取り出す非常に便利な関数です。しかし、検索したい値が表の中に存在しない場合、必ず#N/A(Not Available/該当なし)エラーを返します。

これは数式のミスではなく、「探したけれど見つからなかった」という正しい結果報告です。

しかし、レポート上ではこの#N/Aが大量に表示されると、非常に見づらく、未処理のデータのように見えてしまいます。この「仕様通りのエラー」をスマートに処理するために、IFERROR関数が活躍します。

IFERRORとVLOOKUPを組み合わせた黄金パターン

VLOOKUP関数で#N/Aエラーが発生するのを防ぐには、VLOOKUP関数全体をIFERROR関数の「値」の引数として指定します。これが最も基本的で強力な使い方です。

=IFERROR(VLOOKUP(検索値, 範囲, 列番号, FALSE), “該当なし”)

例えば、商品コード(検索値)を元に商品マスター(範囲)から商品名(列番号)を検索するケースを考えます。もし入力された商品コードがマスターに存在しない場合、VLOOKUP関数は#N/Aを返しますが、IFERROR関数がそれを検知し、代わりに「該当なし」という分かりやすいメッセージを表示します。

空白にしたい場合は、=IFERROR(VLOOKUP(検索値, 範囲, 列番号, FALSE), “”)のように、””を指定します。

このパターンは、単にエラーを隠すだけでなく、「マスターに存在しないデータである」ということを明確に示す役割も果たします。これにより、データクレンジングやマスターメンテナンスの必要性に気づくきっかけにもなります。

複数の範囲を検索する高度なテクニック

さらに応用的な使い方として、IFERROR関数を入れ子(ネスト)にすることで、複数の範囲を順番に検索するという高度な処理が可能です。

=IFERROR(VLOOKUP(A2, 表1, 2, FALSE), VLOOKUP(A2, 表2, 2, FALSE))

この数式は、まず VLOOKUP(A2, 表1, 2, FALSE) を実行し、「表1」の中からA2の値を検索します。

もし値が見つかれば、その結果を表示します。もし値が見つからずエラー(#N/A)になった場合、IFERROR関数の「エラーの場合の値」に指定された2つ目のVLOOKUP関数 VLOOKUP(A2, 表2, 2, FALSE) が実行されます。

これにより、「表2」の中からA2の値が検索され、その結果が表示されます。

このテクニックは、例えば「まず現役社員リストを検索し、見つからなければ退職者リストを検索する」といった、段階的なデータ検索を一つの数式で実現します。

これはもはや単なるエラー処理ではなく、データの検索ロジックそのものを組み立てる高度なデータハンドリング技術であり、スプレッドシートで簡易的なシステムを構築する第一歩と言えるでしょう。

類似関数との使い分け IFNA、ISERRORとの違い

IFERROR関数は非常に万能ですが、特定の状況では他のエラー処理関数を使った方が適切な場合があります。特に、IFNA関数と、旧来から使われているISERROR関数との違いを理解することで、より精度の高いエラー処理が可能になります。

IFERRORとIFNAの違い #N/Aエラーだけを処理したい場合

IFNA関数は、Excel 2013から導入された、エラー処理に特化した関数です。IFERROR関数との最大の違いは、IFNA関数が#N/Aエラーのみを対象とする点です。

IFERROR関数は、すべての種類のエラー(#N/A, #REF!, #VALUE!など)を処理します。一方で、IFNA関数は#N/Aエラーのみを処理し、それ以外のエラーはそのまま表示します。

この違いは、エラーの原因を特定したい場合に非常に重要です。VLOOKUP関数を使う際、#N/Aは「データが見つからない」という想定内の結果です。

しかし、もし数式の参照範囲がおかしくなって#REF!エラーが出たり、関数名を打ち間違えて#NAME?エラーが出たりした場合、これらは想定外の重大なミスです。

IFERROR関数を使うと、これらすべてのエラーが一括で「該当なし」などと表示されてしまい、本来修正すべき数式のミスを見逃してしまう危険性があります。

一方、IFNA関数を使えば、想定内の#N/Aエラーだけをきれいに処理しつつ、想定外の#REF!や#NAME?エラーはそのまま表示してくれるため、ミスの発見が容易になります。

VLOOKUP関数のエラー処理には、IFNA関数を使う方がより安全でプロフェッショナルなアプローチと言えるでしょう。

IFERRORとIF(ISERROR)の違い 新旧手法の効率性

IFERROR関数が登場するExcel 2007以前は、ISERROR関数とIF関数を組み合わせてエラー処理を行うのが一般的でした。

=IF(ISERROR(数式), エラーの場合の値, 数式)

ISERROR関数は、対象がエラーかどうかを判定し、TRUE(真)かFALSE(偽)を返す関数です。その結果をIF関数で判定し、表示を分岐させていました。

この手法の最大の欠点は、同じ「数式」を2回も記述する必要があることです。これにより、数式が長くなり読みにくくなるだけでなく、修正時に片方を直し忘れるといったミスも起こりやすくなります。

また、Excelが内部的に2回計算を行う可能性があり、処理効率の面でも劣ります。

IFERROR関数は、この問題を解決するために開発されました。数式の記述が1回で済み、シンプルで効率的です。現在では、特別な理由がない限り、IF(ISERROR(…))の組み合わせではなく、IFERROR関数(またはIFNA関数)を使用することが推奨されます。

各エラー処理関数の比較まとめ

IFERROR関数は、すべてのエラーを対象とし、構文が非常に簡潔で処理効率も高いのが特徴です。あらゆるエラーを一括で処理したい場合に適しています。

IFNA関数は、#N/Aエラーのみを対象とします。構文は簡潔で処理効率も高く、VLOOKUPなど#N/Aエラーを意図的に処理したい場合に最適です。

IF(ISERROR(…))の組み合わせは、すべてのエラーを対象としますが、数式が冗長になり処理効率も劣ります。旧バージョンのExcelとの互換性が必要な場合に使われることがあります。

IFERROR関数を使う上での注意点とベストプラクティス

IFERROR関数は非常に便利ですが、使い方を誤るとかえって問題を引き起こす可能性もあります。最後に、専門家として知っておくべき注意点と、より良い資料を作成するためのベストプラクティスを紹介します。

最大の注意点 安易な使用はエラーの原因隠蔽につながる

IFERROR関数の最大の注意点は、その万能さゆえに、本来修正すべき数式のエラーまで隠蔽してしまうリスクがあることです。

例えば、関数名を間違えた#NAME?エラーや、参照範囲がずれた#REF!エラーが発生しているにもかかわらず、安易にIFERROR関数で全体を囲ってしまうと、エラーは消えますが、計算結果は正しくないままです。

見た目はきれいでも、中身は間違っているという、最も危険な状態に陥ります。

ベストプラクティスは、まずIFERROR関数を使わずに数式を作成し、正しく動作することを確認することです。

そして、どのようなエラーが、どのような条件で発生するかを把握した上で、最後の仕上げとしてIFERROR関数(またはIFNA関数)を追加するようにしましょう。IFERROR関数はデバッグツールではなく、プレゼンテーションツールであると心得るべきです。

ExcelとGoogleスプレッドシートでの挙動のわずかな違い

IFERROR関数は、ExcelだけでなくGoogleスプレッドシートでも利用できますが、一つだけ重要な違いがあります。

Googleスプレッドシートでは、IFERROR関数の2番目の引数「エラーの場合の値」を省略できます。省略した場合、エラーが発生すると自動的に空白が返されます。

例えば、Googleスプレッドシートでは =IFERROR(A2/B2) と記述すると、エラーの場合に空白が表示されます。

一方、Excelでは2番目の引数は必須であり、省略するとエラーになります。両方のプラットフォームで作業する方は、この違いを覚えておくと混乱を防げます。

まとめ IFERROR関数を使いこなし、信頼性の高い資料作成を

本記事では、IFERROR関数の基本から応用までを網羅的に解説しました。最後に、重要なポイントを再確認しましょう。

IFERROR関数は、数式のエラー表示を空白や指定した値に置き換えることで、資料の見栄えと信頼性を向上させる強力なツールです。

最も効果的な使い方は、VLOOKUP関数との組み合わせです。#N/Aエラーをスマートに処理することで、データ照合業務を劇的に効率化できます。

VLOOKUP関数のエラー処理には、#N/Aエラーのみを対象とするIFNA関数を使うと、意図しない数式のミスを見逃しにくくなり、より安全です。

最も重要な心構えは、エラーの原因を特定せずに安易にIFERROR関数を使わないことです。エラーを隠蔽するのではなく、管理するという意識を持ちましょう。

エラー処理は、単なるテクニックではありません。それは、データの正確性を担保し、受け手にとって分かりやすい情報を提供するという、資料作成における根本的な姿勢の表れです。

IFERROR関数をはじめとするエラー処理のスキルを身につけることは、あなたのビジネスパーソンとしての信頼性を高める確実な一歩となるでしょう。

この記事の投稿者:

hasegawa

会計の基礎知識の関連記事

会計の基礎知識の一覧を見る

\1分でかんたんに請求書を作成する/
いますぐ無料登録