Excelで数式を使っていると、思わぬエラーが表示されて困った経験はありませんか?
そんなときに活躍するのが、**「IFERROR関数」や「IF関数」などの“エラー回避用関数”**です。
どちらもエラーを避けたり、見た目を整えたりするのに便利な関数ですが、
実は「仕組み」や「処理のタイミング」が異なるため、使いどころに違いがあります。
たとえば…
-
すべてのエラーに一括対応したいときは IFERROR
-
特定の条件だけで処理を分けたいときは IF関数
といったように、目的や状況に応じて使い分けることで、Excelの処理速度や安定性も向上します。
本記事では、IFERROR関数とIF関数の基本から違い・使い分けのポイント、
そして実務でよくある具体例まで、初心者にもわかりやすく解説します。
IFERROR関数とは?使い方と基本の書式
◆ IFERROR関数とは
IFERROR
関数は、数式の結果がエラーだった場合に、代わりの値を返す関数です。
たとえば、VLOOKUP
で検索に失敗したときや、数値を 0 で割ったときなど、
本来であればエラーが表示されてしまう場面でも、**「見た目を整えて処理を続ける」**ことができます。
◆ 基本の書式
-
数式
:通常の計算式(例:A1/B1
やVLOOKUP(...)
) -
エラー時に表示する値
:#REF!
などのエラーが出た場合に代わりに表示する内容
◆ 使用例1:0除算を防ぐ
→ B1が0のときは #DIV/0!
ではなく「空白」を返す
◆ 使用例2:検索に失敗しても空欄もしくは任意の値にする
【エラーの際に空欄表示】
【エラーの際に任意の値を指定する】
=IFERROR(VLOOKUP(D2, 顧客リスト, 2, FALSE), "該当なし")
→ 検索値が見つからなかったときに "該当なし"
と表示される
◆ IFERRORで対応できる主なエラー
-
#N/A
(検索値が見つからない) -
#DIV/0!
(ゼロ除算) -
#REF!
(無効な参照) -
#VALUE!
(データ型エラー) -
#NAME?
(関数名や名前の誤り)
など、ほぼすべてのエラーに対応可能
※エラーコードについて詳しくは以下の記事をご参考ください。
→エクセルのエラー一覧と対処法まとめ|#N/A・#NAME?・#REF!などの意味をわかりやすく解説
◆ 注意点:数式は常に一度実行される
IFERROR
は便利ですが、裏側では**「数式を一度実行 → エラーなら代替値へ」という処理**になっています。
つまり、たとえエラーだったとしても、処理負荷の高い関数(例:VLOOKUP, MATCHなど)は一度動くため、
大量のデータを扱うときにはやや重く感じることがあります。
IF関数による条件分岐でエラーを防ぐ方法
◆ IF関数とは?
IF
関数は、ある条件を満たすかどうかで処理を分けるための関数です。
特に、**「そもそもエラーになりそうな場面を先に判断して回避する」**用途で使われることが多く、
計算の前提条件を満たしていないときは、関数自体を実行させないようにできます。
◆ 基本の書式
-
条件
:TRUE(真)か FALSE(偽)になる判定式 -
値1
:条件が TRUE の場合の結果 -
値2
:条件が FALSE の場合の結果
◆ 使用例1:0除算を事前に防ぐ
→ B1が0のときは空白を返し、0で割る式そのものを実行しない
◆ 使用例2:空白のときはMATCHを実行しない
→ A1が空白の場合は MATCH関数を評価せず、空白を返します。
◆ IF関数のメリット
-
条件を満たすときだけ関数を実行できるため、余計な計算負荷を避けられる
-
MATCHやVLOOKUPなど、重い関数の処理回数を減らせる
-
見た目だけでなく、パフォーマンス面でも有利
◆ 注意点
-
エラーの種類までは識別できない(
#N/A
なのか#DIV/0!
なのかなど) -
複雑な条件が増えると
IF
がネストして読みづらくなる
※Excelにおけるネストとは、関数の中で別の関数を使用することです。
-
条件が合っていないと、逆に処理をスキップしてしまう恐れも
「エラーになる前に止める」スタイルがIF関数の強み。
条件が明確な場合は、IFERROR
よりも効率よく制御できる場面が多くなります。
IFERRORとIFの違いと使い分けの考え方
IFERROR
も IF
もエラー回避や表示制御に使える関数ですが、仕組み・処理の順序・得意な場面が異なります。
ここでは両者の違いを明確にし、どちらを使えばよいか迷ったときの判断基準を紹介します。
◆ 比較①:処理の流れが違う
項目 | IF関数 | IFERROR関数 |
---|---|---|
処理のタイミング | 先に条件を判定 → 式を実行するか決定 | まず式を実行 → エラーなら代替値 |
無駄な計算 | 条件を満たさなければ式は実行されない | 式が一度は実行される(重い場合に注意) |
条件の柔軟性 | 条件を細かくコントロールできる | エラーかどうかだけで判定 |
◆ 比較②:どんな場面に向いているか
シーン | おすすめ関数 | 理由 |
---|---|---|
計算式が重い(MATCHやVLOOKUP) | IF |
事前に回避できれば処理が速い |
多様なエラーを一括で処理したい | IFERROR |
書式が簡単、すっきり書ける |
条件が明確に決まっている | IF |
「空欄なら計算しない」などが簡単 |
細かいエラーの原因を特定したい | IF + ISNA / ISERR |
エラーの種類を分岐できる |
表示を整えたいだけ(見た目優先) | IFERROR |
エラーを空欄や「—」にできる |
◆ まとめ:使い分けのポイント
-
事前に「エラーになる条件」が明確なら
IF
-
条件がわからない/柔軟に制御したいなら
IFERROR
-
場合によっては、両者を組み合わせて使うのも有効
次章では、実際の業務でよくある具体的な使い分け例をご紹介します。
「MATCH・除算・VLOOKUP」など、場面ごとの選び方がわかります!
実務での使い分け例【MATCH・VLOOKUP・除算など】
ここでは、実際の業務でよく使われる関数において、
**「IFでの事前回避」と「IFERRORでのエラー処理」**を比較しながら紹介します。
それぞれのパターンを把握しておけば、状況に応じた最適な書き方ができるようになります。
◆ MATCH関数:空白セルの事前チェック
IFを使った例(推奨)
-
A1が空白のときはMATCHを実行せず、空白を返す
-
無駄な検索を避けるため、処理が軽くなる
IFERRORを使った例
-
A1が空でもMATCHは一度実行される(やや重くなる)
-
手軽に書きたいときに便利
◆ 除算(0で割る式)の回避
IFを使った例(推奨)
-
B1が0なら計算せず、空白を返す
-
#DIV/0!の発生を事前に防げる
IFERRORを使った例
-
B1が0だと
#DIV/0!
が出るが、それを空白に置き換える -
式は常に実行されるため、軽さは劣る
◆ VLOOKUP関数:検索失敗時の対応
IFNAを使った例(VLOOKUP特化)
-
#N/A
専用。検索値が見つからなかったときだけ制御
IFERRORを使った例(すべてのエラーに対応)
-
#N/A
だけでなく、範囲ミスや参照エラーにも対応可能
◆ 応用:関数の入れ子で使い分ける
-
空白のときは計算しない
-
値があるときは検索して、見つからなければ「未登録」
-
IFとIFERRORを併用することで、処理効率と柔軟性を両立
ポイントは「どこで分岐させるか」「重たい処理をどう制御するか」。
次章では、こうした知識をまとめて整理します。
まとめ|エラー処理を理解して使い分けよう
Excelでは、IFERROR
と IF
のどちらもエラー回避や見た目の整備に役立つ便利な関数です。
しかし、それぞれの仕組みや使いどころを理解しておくことで、パフォーマンスや処理効率に大きな差が出ることもあります。
本記事のまとめ
-
IFERROR
は「式を実行 → エラーなら処理を切り替える」-
手軽に使えて見た目の整備にも便利
-
ただし、処理は常に実行される点に注意
-
-
IF
は「エラーになる条件を事前にチェックして回避」-
重い処理を事前に止めることができ、高速・軽量
-
条件が明確な場面で特に効果的
-
実務での使い分けのコツ
状況 | おすすめ |
---|---|
空白セルならスキップしたい | IF |
すべてのエラーを簡単に非表示にしたい | IFERROR |
特定のエラー(#N/A )だけ対応したい |
IFNA |
処理が重い関数を複数回使う | IF で無駄な処理を避ける |
エラーでも強制的に表示を整えたい | IFERROR (見た目優先) |
大切なのは、「なぜエラーが起きるのか」を理解し、目的に合った方法で対応すること。
適切に使い分けることで、見やすく・速く・ミスの少ないExcelシートが実現できます。