このページには広告が含まれる場合があります。
前回は、エクセル2007から追加された「IF」系の関数の内
「SUMIFS」関数を使って、リストから様々な検索データに基づく売上の合計金額を算出してみました。
今回は、算術処理というよりは、エラー処理を扱う関数になります。
数式や関数の結果にエラーが発生する場合に分岐処理ができる
「IFERROR」関数
について見ていきたいと思います。
Excel2007から追加された「IFERROR」関数
エクセルのバージョンアップで、最も変更の大きかった
「エクセル2003からエクセル2007へのバージョンアップ」
において、この「IFERROR」関数の追加も非常に興味を引く内容となりました。
それはなぜかと言うと、「IFERROR」関数の追加によって
「関数式の作成工程を減らせるようになった」
からです。
では、「IFERROR」関数の登場は、関数のヘビーユーザーにどのようなメリットを与えてくれたのでしょうか。
それには、エクセル2003までエラー処理を行う関数であった
「ISERROR」関数
も一緒に見ていく必要があるのです。
「ISERROR」関数の使い方
実際に、「ISERROR」関数を使ったデータを確認してみましょう。
上の表では、単純な計算式を作成しています。
A列の数字をB列の数字で除算しているだけですが、1行目は0で除算しているため結果としてエラーが表示されてしまいます(セルC1)。
このように、何かしらのエラーが表示される場合を見越してエラー処理をしておく場合に、
「ISERROR」関数
を使います。
セルD1には、「=ISERROR(C1)」という関数が入力されています。
つまり、計算結果となる「C1」のセルがエラーとなるか、ならないかを表示しているのです。
そして、E列には、「ISERROR」関数の結果から、「IF」関数で処理を分岐した値が表示されます。
=IF(D1,”式を確認してください”,”○”)
セル「D1」がTRUEなら(エラーなら)、メッセージを表示させ、
FALSE(エラーではない)であれば、「○」と表示させます。
シートに関数を埋め込んで、「ユーザーにシートを使わせる」ような場合は、
ユーザーの誤入力などに対する処理を行う工程は重要となるわけですが、その際にこの「ISERROR」関数はよく使われてきたわけです。
最後は以下のように関数を1つで記述するのが一般的でしょう。
「IF」関数の条件式に「ISERROR」関数を組み合わせるわけですね。
さて、この「ISERROR」関数を使う場合の難点は、やはり
「関数式が長くなる」
不便さでしょう。
2つの関数を組み合わせ、さらに条件分岐が多くなると、「IF」関数がネスト状態となり、数式が煩雑になります。
そこで登場した関数が、「IFERROR」関数なのです。
「IFERROR」関数の使い方
「IFERROR」関数は、引数に「正常な場合の値」と「エラーが出る場合の値」を記述できます。
=IFERROR(A1/B1,”式を確認してください”)
最初の引数に、「セルA1をセルB1で割る式」、
2番目の引数に「式がエラーになった場合、”式を確認してください”」というメッセージを出力するようにしています。
「ISERROR」関数を使って、同じ様に結果を表示した式を作成してみました。
上の「IFERROR」関数と見比べてみると式の長さが一目瞭然ですね。
「ISERROR」関数は、エラーの判定を「TRUE」か「FALSE」でしか結果を返せなかったので、
その判定を元に、最終的に「IF」関数で処理する必要があったのですが、
「IFERROR」関数は、求めたい結果もエラーの場合に処理したい結果もそのまま「値」で返せるようになったので、
関数式がコンパクトに記述できるようになったのです。
続きは次回
関数はもちろん、プログラミングの世界でもエラー処理を行う場面は必ず存在します。
「ISERROR」を始め「IS~」系のエラー処理をする関数は、とても効率が悪くて
私自身、自作で関数を作って処理していた頃もありました。
それに比べれば、「IFERROR」関数の登場で、関数でのエラー処理も少しは楽になったのかもしれませんね。
さてさて、次回はエクセル2010から追加された集計用の関数「AGGREGATE」関数にスポットを当ててみたいと思います。
どうぞお楽しみに!