見出し画像

0 を表示させたくないけど、 IF 関数だと数式の重複が気になるとき: IFERROR 関数+逆数の逆数をとる

Excel で 0 を表示させたくないときがあると思います。あらかじめ数式は入力しておきたいけれども、まだ数式の元となるデータが入力されていないときとか、表のなかに 0 ばかりがならんでしまってビジュアル的によろしくないときとか。そんなときによく使用される解決策は、IF 関数を使用して 0 を非表示にするものだと思います。たとえば、次のような感じです。

【改良前】
 =SUM(A1:A10)

【改良後】
 =IF(SUM(A1:A10)=0"", SUM(A1:A10))

A1 から A10 までのセルを合計したいけど、合計した結果が 0 ならば表示されないようにしたいというとき、【改良後】のように変更するのは定石ですよね。

「A1 から A10 まで合計する」のような短い数式ならいいですけど、たとえば COUNTIFS やら SUMIFS やらが登場して、複数の条件が記述されて長くなってくると大変ですし、IF 関数のなかで目的の数式を 2 回登場させなくてはいけないのがなんだか申し訳なくなってきます。もっとスマートに記述できないだろうか……。そんなとき、私は IFERROR 関数を使用することにしています。次のような感じです。

【改良前】
 =SUM(A1:A10)

【改良後】
 =IF(SUM(A1:A10)=0"", SUM(A1:A10))

【さらに改良後】
 =IFERROR(1/(1/SUM(A1:A10)), "")

IFERROR 関数は、

IFERROR(引数, 引数がエラーのときにどうするか)

という構造になっています。エラーでない場合には引数がそのまま表示され、エラーの場合にはカンマの後ろで指定したエラーのときにどうするかが適用されます。

あとは 0 のときにエラーになり、それ以外の数値のときにはエラーにならないような式を考えてあげればよいのですが、一番簡単なのは「 ÷ 0 はできない 」という数学のルールを使うことだと思います。「 1 ÷ 0 」はエラーになります。Excel なら「 #DIV/0! 」というエラーが返ってきますし、電卓でもエラー表示になると思います。

もう少しです。0 以外の数値のときにはその数値自体が表示されるようにしたいのですが、このままだとたとえば 2 という数値のときに 1 ÷ 2 = 0.5 が表示されてしまいます。そこで、もう一度「 1 ÷ 」の計算をしてやることにします。そうすれば、1 ÷ 0.5 = 2 でもとの数値に戻ります。逆数の逆数をとっているわけですから、当然の結果です。もとの数値が 0 の場合だけ、計算の途中でエラーが発生し、IFERROR 関数によって振り分けられるという仕組みです。

IFERROR 関数を使用することによって、数式の重複を避けることができました。書式を変更することによっても 0 を表示させなくすることはできるのですが、その方法だと見えなくなるだけで、セルには 0 という数値が割り当てられているため、条件付き書式などが適用されてしまい、思いどおりの出力が得られないことがあります(0 のときにもセルに背景色が適用されてしまうなど)。

0 を表示させたくないけど、 IF 関数だと数式の重複が気になるとき、ぜひ「IFERROR 関数」と「逆数の逆数をとる」の合わせワザを使ってみてください。

この記事が気に入ったらサポートをしてみませんか?