解説
エラーを空欄で隠す前に:GoogleスプレッドシートのIFERRORとIFNAを比べよう
どのエラーを代替値へ変えるかで結果が違う。#N/Aだけを扱うIFNAと、ほかのエラーも扱うIFERRORを、架空の小さな数式で比較する。

表のエラーをIFERRORで空欄へ変えたら、見た目はすっきりした。でも、式の間違いまで気づけなくなっていないかな。エラーを表示しなくすることと、原因を解決することは別だよ。
今回は通常のGoogleスプレッドシートで、IFERRORとIFNAを比べる。新しい練習シートを用意し、本番の集計や個人情報は使わない。
IFERRORは、エラーなら代替値を返す
=IFERROR(1/0,"計算を確認")
1を0で割る式はエラーになるため、この例では「計算を確認」と表示する。元の計算が正しい値へ直ったわけではなく、表示する結果を代替値へ変えているんだ。
数式の参照ミスなどを、空文字列の""や数値0へ一律に変えると、正常な空欄や本当の0との区別が難しくなる。何を隠したか分かる表示を、まず練習で使ってみよう。
IFNAは#N/Aだけを対象にする
=IFNA(1/0,"対象なし")
IFNAは、値が#N/Aのエラーの場合に代替値を返す。今回のゼロ除算は#N/Aではないので、「対象なし」に置き換わらず、#DIV/0!が残る。
似た名前でも、受け持つ範囲が違うんだ。検索の該当なしを表す#N/Aだけを扱いたい場面と、それ以外のエラーも代替表示する場面を分けよう。
わざと#N/Aを作って比べる
NA()は、練習用に#N/Aを返すためにも使える関数。次の四つの式を別々の空いているセルへ入力してみよう。
| 数式 | 今回の期待する表示 |
|---|---|
| =IFERROR(NA(),"計算を確認") | 計算を確認 |
| =IFNA(NA(),"対象なし") | 対象なし |
| =IFERROR(1/0,"計算を確認") | 計算を確認 |
| =IFNA(1/0,"対象なし") | #DIV/0! |
通常の数値なら、その値が返る。例えば=IFNA(42,"対象なし")は42。エラーを直すために、常に文字列へ変換する関数というわけでもないよ。
まず、包む前の式を読む
期待と違う場合、IFERRORなどで包む前の式が何を返しているかを見る。該当するデータがないのか、範囲を間違えたのか、割る数が0なのかで、必要な対応が変わる。
同じエラー記号でも、発生した式やデータの状態まで説明しているわけではない。画面のエラー詳細と、参照範囲を確認しよう。
検証した範囲
編集部ではGoogleの公式条件と、通常値・#N/A・ゼロ除算に対する分岐を独立した確認プログラムで照合した。Googleの実アカウント上で入力操作を行った記録ではないので、手元でも表の四つの結果を確かめよう。
確認後は練習用の式を削除して戻せる。実際の集計へ入れる場合は、エラーを別に記録・点検する方法も考えよう。
空欄と0の扱いはCOUNT・COUNTA・COUNTBLANK、条件付き合計はSUMIFとSUMIFSも参考になるよ。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。