【Excel】IFERRORの書き方と空欄・0・要確認を返す式の使い分け

【Excel】IFERRORの書き方と空欄・0・要確認を返す式の使い分け
🛡️ 超解決

ExcelのIFERROR関数は、計算式がエラーになった場合に、別の値や文字を表示する関数です。既存の式を包むだけで使えますが、空欄・0・「要確認」では、その後の集計で意味が変わります。見た目だけで置換する値を決めないことが重要です。

この記事では、単価を求める割り算と商品コードの検索を例に、コピーして使える式、その前提、結果の確認方法をまとめます。既存の計算列を残し、確認用の別列から試してください。

ADVERTISEMENT

1. 元の式を確認してからIFERRORで包む

構文は=IFERROR(元の計算式,エラー時に返す値)です。元の計算が正常ならその結果を返し、エラーなら後ろに指定した値を返します。元の式の誤りを修正したり、なぜ失敗したかを判定したりする関数ではありません。

例えばA列に金額、B列に数量があるとき、C2に=A2/B2を入れると単価を求められます。まずA2=120、B2=3として40になるか確認します。次に、数量0や文字の入力など、想定する例と想定外の例を用意して、どのエラーが出るかを見ます。

IFERRORが扱うエラーには#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!があります。このため「商品が未登録だった」場合だけでなく、参照範囲が壊れた場合まで同じ表示に変わり得ます。正常行で動いたことだけを確認して全体へ広げないようにします。

式の結果を確認しやすくするには、C列に元の式、D列にIFERRORを加えた式を置いて並べます。エラー時の表示を試している間は、C列を削除せず残してください。

※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. 空欄・0・確認メッセージのテンプレート

まずは「計算結果を返す。エラーのときは確認対象にする」という形です。D2へ次の式を入れます。

=IFERROR(A2/B2,"要確認")

120÷3なら40、120÷0なら「要確認」です。「数量未入力」と決めつけず広い表現にしているのは、文字の混入などでもエラーになるためです。対象行を見つけたらA列とB列、元の計算式を見直します。

入力待ちの行を空表示にしたい場合は、次の形があります。ただし計算不能な行も見えなくなるため、確認列や未処理件数を別に残す用途に限って使います。

=IFERROR(A2/B2,"")

""は空の文字列で、セルに何も入っていない状態とは異なります。数式バーには式が残ります。なお金額A2が本当の空欄で数量B2が3なら、割り算の結果が0となり、IFERRORの置換対象にならない場合があります。「未入力なら必ず空欄にしてくれる」式ではありません。

ゼロを返す形は次のとおりです。これは書き方の例であり、計算できない単価を一律0円として扱う勧めではありません。業務上0とみなしてよいことが明確な場合だけ選びます。

=IFERROR(A2/B2,0)

数値0と文字の"0"も別物です。計算へ使う0を返すときは引用符を付けません。分母0が「まだ入力していない」なのか「数量が実際に0」なのかを確認し、集計に含める規則を決めてください。

3. 0へ置き換えると平均の対象件数が変わる

3行のデータを使うと、置換の影響が分かります。A2:B4に、120と3、120と0、200と4を入れます。単価は40、計算不能、50です。エラーを0にした列をAVERAGEで集計すると、0も1件として含まれます。

エラー時の結果 AVERAGEで列を集計
数値0 (40+0+50)÷3=30
空文字 数値2件だけが対象で45
「要確認」 文字は対象外となり、数値2件で45

この違いはExcelの計算ミスではなく、集計に渡した値の違いです。0へ変えれば「後の計算がエラーにならない」というだけで、平均の意味が正しく保たれるわけではありません。

40・エラー・50のうちエラーを0へ置き換えると平均は90÷3で30。要確認の文字へ置き換えるとAVERAGEの対象は数値2件で45。正常2件・要確認1件の表示も必要。
エラー時の0は平均の件数に含まれます。文字や空文字へ置き換える場合も、対象外になった件数を別に確認してください。

例えばD2:D4に「要確認」を返す式を入れたら、=AVERAGE(D2:D4)は正常な数値2件の平均です。別セルで=COUNT(D2:D4)が2、=COUNTIF(D2:D4,"要確認")が1と確認し、「3件中1件が未確認」と分かる状態を残します。平均45だけを掲載すると、全件が計算できたと誤読されます。

さらに、行ごとの単価の単純平均と、金額合計を数量合計で割る全体単価は別の指標です。今回の計算不能行をどう扱うか決めないまま、合計や平均を完成値として使わないようにします。

4. 商品検索では「未登録」と断定しない

別の例として、A2の商品コードをE2:F4のマスタから検索し、F列の商品名を返すとします。E2:E4にはP01、P02、P03、F2:F4にはペン、ノート、封筒を入れます。入力側とマスタ側のコードはどちらも文字列です。

=IFERROR(VLOOKUP(A2,$E$2:$F$4,2,FALSE),"検索を確認")

FALSEは完全一致を指定し、ドル記号でマスタ範囲を固定しています。A2がP02なら「ノート」、P99なら「検索を確認」です。ただし、マスタの列数を誤った場合も同じメッセージになるため、この式だけを根拠に「未登録」と断定できません。

#N/Aだけを置き換えたい場合はIFNAを使います。ほかのエラーは表示を残せるので、未一致と式の異常を分けやすくなります。

=IFNA(VLOOKUP(A2,$E$2:$F$4,2,FALSE),"未一致")

「未一致」は、マスタにないことが確定したという意味ではありません。コードの前後の空白、数値と文字列の違い、マスタの入力間違いも確認します。また検索先のセル自体が#N/Aなら、そのエラーもIFNAの対象です。関数が拾うエラーの種類と、業務上の原因を区別してください。

検証用のコピーでは、正常なP02、存在しないP99、返す列番号を3にした式を試します。マスタは2列なので、列番号3は#REF!です。IFERRORは「検索を確認」に置き換え、IFNAは#REF!を残します。本番のマスタを削除して試す必要はありません。

5. 未入力や分母0だけを先に分ける書き方

金額と数量のどちらかが未入力なら空表示にし、数量0なら説明を返す目的では、条件を明記したIFの方が読みやすい場合があります。A2とB2は数値または空欄で入力される前提なら、次のように書けます。

=IF(OR(A2="",B2=""),"",IF(B2=0,"数量0を確認",A2/B2))

この式では未入力と数量0を分け、金額0・数量3は正当な0として返します。一方、文字が入ったことによる#VALUE!などは隠しません。入力値を調べる段階では、このように予想した状態だけを扱う方が原因を見つけやすくなります。

数値以外を受け付けない運用なら、入力規則や確認列も合わせて使います。IFERRORだけを後からかけても、文字列を数値へ修正したことにはなりません。エラーを確認して入力を直す役割と、読み手向けに表示を変える役割を分けて考えましょう。

「要確認」の行が残っている間は、正常な行だけで算出した平均なのか、全件が揃った確定値なのかを集計結果の近くで説明します。エラーを別の表示へ置き換えることと、確認作業を完了することは同じではありません。

6. テンプレートを適用した後に確認する4点

最初に正常な入力で元の式と同じ答えになるか、次に想定したエラーで決めた値を返すかを確認します。さらに、参照の誤りまで同じ表示へ隠れていないか、平均や件数が想定どおりかを見ます。今回の3行例なら、正常2件・要確認1件を維持できているかが確認点です。

結果がおかしいときは、元の式を残したC列を見ます。元の列がない場合は別セルでIFERRORの内側の式だけを試し、エラーの種類を確認してください。いきなり全範囲からIFERRORを削除するより、1行ずつ原因を追う方が安全です。数式が文字として表示される場合は、先頭のアポストロフィやセルの表示形式も確認します。

修正をやり直すときは保存済みの元の列またはブックのコピーへ戻します。下へコピーする式では、マスタ範囲の固定と各行の参照先を確認してください。...などの説明用の省略記号は、実際の数式へ入れないようにします。

仕様はMicrosoftのIFERROR、IFNA、平均の扱いはAVERAGEを参照できます。原因の切り分けは#DIV/0!の対処も確認し、表を空欄で埋めることより、未確認の行が分かる状態を優先しましょう。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】