スプレッドシートで数式を組んでいると、条件によってエラー表示(#DIV/0!など)が出てしまうことがあります。このエラーを別の値に置き換えてくれるIFERROR関数について、使い方と内部のしくみを解説します。草野球の成績管理表で打率を計算する場面を例に、初心者向けに丁寧に説明します。
IFERROR関数とは
本来の数式がエラーになったとき、そのエラーの代わりに指定した値を表示してくれる関数です。成績管理表では「打率」「防御率」のような割り算を含む式で、分母が0になったときの表示崩れを防ぐ場面でよく登場します。
基本の書式はこうです。
=IFERROR(数式, エラーの場合に表示する値)
1つ目の引数には本来計算したい数式を、2つ目の引数にはエラーが出たときに代わりに表示したい値を指定します。
成績管理表での実例:打率表示のエラーを回避する
大阪グーニーズの個人成績集計シートでは、選手ごとに通算打数・通算安打を1行にまとめ、そこから打率を計算しています。仮に、B列に通算打数、C列に通算安打、D列に打率を表示する「個人成績集計」シートがあるとします。
| 選手名 | 通算打数 | 通算安打 | 打率(素の式) |
|---|---|---|---|
| SUZUKI | 30 | 9 | 0.3 |
| NAKATA | 25 | 6 | 0.24 |
| YAMADA(今季未出場) | 0 | 0 | #DIV/0! |
今季まだ一度も出場していないYAMADA選手は、通算打数(B列)が0のため「安打÷打数」の式がそのまま0で割る形になり、#DIV/0!エラーが表示されてしまいます。これをIFERRORで回避すると、式はこうなります。
=IFERROR(C2/B2, "-")
これで、打数が0の選手の行だけ自動的に「-」と表示され、エラーで表全体が見づらくなることがなくなります。
個人成績集計シートで、打率を表示したいセル(例:D2セル)をクリックして選択します。
「=IFERROR(C2/B2」のように、1つ目の引数として本来計算したい式(通算安打÷通算打数)を入力します。
続けて「,”-“」のように、エラーになったときに代わりに表示したい値を入力します。文字を表示する場合はダブルクォーテーションで囲みます。
式を確定すると、エラーが出ない選手はそのまま打率が、打数0の選手は代替値が表示されます。
しくみを理解する:IFERRORは何をしているのか
IFERRORは、まず1つ目の引数(本来の数式)を実際に計算してみます。そのうえで、次のどちらかを行っているだけです。
- 計算が問題なく成功した場合は、その計算結果をそのまま返す
- 計算がエラーになった場合は、その結果を捨てて2つ目の引数の値に差し替える
ここで重要なのは、IFERRORがエラーの種類を区別しないという点です。0で割ったときの#DIV/0!だけでなく、#N/Aや#REF!、#VALUE!など、どんな種類のエラーであっても同じように代替値に差し替えます。
よくあるミス:代替値で隠れてしまう本当の不具合
IFERRORで囲んでしまうと、0除算のような想定内のエラーだけでなく、セル参照のミスや数式の書き間違いによるエラーまで同じ代替値で隠れてしまいます。「表がきれいに見えるから」と安易に全部の式をIFERROR頼みにすると、本当の不具合に気づきにくくなるので注意してください。
複数の計算を含む長い数式をまとめてIFERRORで囲むと、式のどの部分でエラーが起きたのかが分からなくなります。まずは囲まずに数式を確認し、エラーの原因(分母が0になる箇所など)を把握したうえで、必要な範囲だけをIFERRORで囲むことをおすすめします。
- IFERRORは「本来の式がエラーになったときだけ、代わりの値を返す」関数
- 打率や防御率のような割り算を含む式の0除算対策との相性がよい
- エラーの種類を問わず一律で拾う仕組みのため、便利な反面、本当の不具合まで隠れてしまうことがある
次回予告
次回のテーマは「IFNA関数」です。IFERRORと似ていますが、拾えるエラーが#N/Aだけに限定されているのが特徴です。VLOOKUPで検索に失敗したときに「未登録」と表示する例をもとに、IFERRORとの使い分けを解説していきます。
▶︎ 次回:IFNA関数の使い方としくみ



コメント