DESIGN / CODE / INFRA / AI

解説

エラーを空欄で隠す前に:GoogleスプレッドシートのIFERRORとIFNAを比べよう

どのエラーを代替値へ変えるかで結果が違う。#N/Aだけを扱うIFNAと、ほかのエラーも扱うIFERRORを、架空の小さな数式で比較する。

エラーを空欄で隠す前に:GoogleスプレッドシートのIFERRORとIFNAを比べよう
保存リストを見る →
この記事の道しるべ 5項目

表のエラーを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

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。