わえなび ワード&エクセル問題集

当サイトはWordとExcelの実力を鍛える最高水準の特訓問題集です。リンクを張るのは自由です。みんなで勉強しましょう!

【Excel】IFERROR関数を用いてエラーを回避する方法、ISERRORとの違いについて

IFERROR関数は、数式にエラーが無い場合はその計算結果をそのまま表示し、エラーが発生した時は指定した値を返す関数です。

  • =IFERROR([エラーが出そうな数式],[エラー時に表示する値])

Excel2007から導入された関数なので、すでに10年以上が経過しているのですが、あまり定着しているとは言えません。それは、IFERROR関数は何らかの計算をしてその結果を返すのではなく、エラーであることを判定する関数であり、どのような場合にエラーが発生するのかを知っていなければ使えないからです。

そこで、今回は、IFERROR関数の基本的な使い方について出題します。

目次

1.IFERROR関数でエラーを回避する

問題

D列に単価×個数、E列にその1.1倍を求めなさい。ただし、商品名が空白の場合またはエラーの場合は空白にしなさい。

f:id:waenavi:20201004092340j:plain

 

解説

単価×個数を求めます。

f:id:waenavi:20201004093204j:plain

 

オートフィルをします。空白の行は0になります。

f:id:waenavi:20201004093208j:plain

 

これを表示しないようにするために、IF関数を挿入します。

f:id:waenavi:20201004093211j:plain

 

商品名が空白の場合は空白を返すようにします。

f:id:waenavi:20201004093213j:plain

 

小計の1.1倍を求めます。

f:id:waenavi:20201004093217j:plain

 

空白の行はエラーになります。

f:id:waenavi:20201004093220j:plain

 

IF関数によって空白を返した場合(正確には空白文字列)は、何も入力していない空白セルとは異なり、0とはみなされません(参考:【Excel】空白セルの判定をして、IF関数で「空白文字列」を返す方法と注意点)。

f:id:waenavi:20201004093224j:plain

 

そのため、足し算や引き算などの四則演算はエラーとなります。

f:id:waenavi:20201004093227j:plain

 

この場合も商品名が空白の場合は空白を返せばよいですが、ここではIFERROR関数を挿入します。

f:id:waenavi:20201004093230j:plain

 

IFERROR関数とは、エラーになった場合に表示する値を指定することができる関数です。

f:id:waenavi:20201004093233j:plain

 

カンマを入力します。エラーの場合は空白を返します。

f:id:waenavi:20201004093237j:plain

 

IFERROR関数は初めから使うものではなく、計算式を入力してエラーがでそうになったらそれを回避するために用いる関数です。

f:id:waenavi:20201004093239j:plain

 

2.ゼロ除算の回避

(1)#DIV/0!エラー

問題

各店舗で昨年度と今年度の実績を比較して、対昨年度比を求めたところ、今年度開店した店舗Eがエラーとなった。エラーの原因とその対処法を述べなさい。

f:id:waenavi:20201004093304j:plain

 

解説

対昨年度比は、変化した後の数値である今年度の実績を、変化する前である昨年度の実績で割って求めます。

f:id:waenavi:20201004101814j:plain

 

しかし、今年度開店した店舗は昨年度の実績がないため、昨年度の実績が0となっています。

f:id:waenavi:20201004101817j:plain

 

このような比率は変化前を何倍すれば変化後になるかを求めているので、元の数が0であれば、何倍しても0のままです。したがって求めることができないのでエラーとなるのです。

f:id:waenavi:20201004101820j:plain

 

いっぱんに、0で割り算することをゼロ除算division by zero)といい、エラーとなります。

f:id:waenavi:20201004101824j:plain

 

割られる数をそのままにして、割る数を0に近づけていくと、答えは大きくなります。割る数を10分の1にすると、答えは10倍になります。

f:id:waenavi:20201004101827j:plain

 

これを続けていくと割る数が0の時、答えは無限大となります。

f:id:waenavi:20201004101831j:plain

 

また、マイナスの場合はマイナス無限大となり、無限に小さくなります。

f:id:waenavi:20201004101835j:plain

 

したがって、この昨年度比を正しく表示するなら「無限大」とするべきであり、これを無理やり、0%や100%などと表記するのは間違いです。

f:id:waenavi:20201004101839j:plain

f:id:waenavi:20201004101843j:plain

 

もともと昨年度比は昨年度に営業していたことを前提として評価する数値であり、今年度新たに開店した店舗を評価する数値ではありません。

f:id:waenavi:20201004101845j:plain

 

何らかの数値を表示して、同列に評価するのは間違いです。数値データではない文字列か空白にするべきです。

f:id:waenavi:20201004101850j:plain

 

IF関数を挿入します。昨年度がゼロ又は空欄であることを判定して、そうでなければ昨年度比を求め、計算できない場合は空白を返すか、別の文字列を表示します。

f:id:waenavi:20201004101853j:plain

 

別解

IFERROR関数を挿入します。

f:id:waenavi:20201004102421j:plain

 

エラーを回避して、エラーが表示される場合は空白を返すか、別の文字列を表示します。

f:id:waenavi:20201004102425j:plain

 

(2)平均もエラーになる

問題

A列~C列の平均を求めなさい。ただし、エラーの場合は空白にしなさい。

f:id:waenavi:20201004093316j:plain

 

解説

平均を求めます。

f:id:waenavi:20201004111153j:plain

 

すべて空欄のときはエラーになります。

f:id:waenavi:20201004111157j:plain

 

AVERAGE関数は空白セルを除いて計算するため、合計を0で割ることになります。割る数が0の場合、エラーとなります(参考:【Excel関数】平均AVERAGEは、数値の個数COUNTを意識して使うこと)。

f:id:waenavi:20201004111201j:plain

 

IFERROR関数を挿入します。

f:id:waenavi:20201004111209j:plain

 

カンマを入力します。エラーの場合は空白を返します。

f:id:waenavi:20201004111205j:plain

 

これで完成です。

f:id:waenavi:20201004111211j:plain

 

3.補足:IFERRORとISERRORの違い

ISERROR関数は計算式がエラーかどうかを判定して、その結果をTRUEまたはFALSEで返す関数です。判定するだけなので引数は1個です。

  • =ISERROR([エラーが出そうな数式])

エラーであればTRUE、エラーでなければFALSEが返ってきますので、そのままIF関数の論理式に使うことも可能です。エラーでないときに別の値を表示したい場合は、ISERROR関数を使わなければなりません。

  • =IF(ISERROR(~),[エラーの場合],[エラーでない場合])

また、TRUE・FALSEは四則演算等では数値の1と0とみなされますから、例えば「1-ISERROR(~)」とすれば、エラーのときは0、エラーでなければ1とすることも可能です(参考:【Excel】IF関数が使えない原因は「比較演算」の練習不足である)。

  • =1-ISERROR(~)

一方、IFERROR関数はエラーの判定をするだけでなく、エラー時の値を指定する関数なので引数は2個です。エラーでないときは計算結果を表示します。

  • =IFERROR([エラーが出そうな数式],[エラー時に表示する値])

 


解説は以上です。


4.動画版はこちら(無料)

この記事は、わえなび実力養成講座「ファンダメンタルExcel13」Program 13-20-2、13-20-3 のYoutube動画を書き起こして、加筆修正したものです。

 


Copyright(C)2018-2020 waenavi, All rights reserved. [www.waenavi.com 定礎 平成三十年八月]
Youtube | 公式サイト | twitter | 著作権 | 運営者情報 | お問い合わせ