AさんAさん

関数を使っているとエラー表示になることがありますが、そのままだと見栄えが悪くなりますし、そのエラーになったセルを参照している他の関数までエラーになってしまうので困っています。
何か良い方法ないですかね?

森田森田

エラー表示は確かに見栄えが悪いですし、複数の関数がエラーになると芋づる式にエラー続きになってしまいますね。
解決策は複数ありますが、今回はExcel2007以降のバージョンで活用できるIFERROR関数について説明したいと思います。
では、詳細を解説していきますね。

はじめに

本題に入る前に、この記事がおすすめな人を挙げてみます。

  • 関数のエラー表示に困っている人
  • エクセルを扱う機会がある人
  • 事務職を目指している人

ちなみに、最低限「IF関数の基礎」を把握している想定での記事となります。
※自信がない方はこちらの記事で学んでください。
【初心者向け】条件に応じてセルの値を変える!IF関数の使い方

数式・関数でエラー表示になってしまう!

たとえば、次のような単純な掛け算でも、数値ではない”-“などの文字列が入るだけで数式・関数はエラー表示になってしまうことがあります。

エラー表示は、数式や関数の入力間違いや参照誤りを気づかせてくれるアラート機能なので、基本的にはユーザーが不具合を認識するためになくてはならない便利な機能です。

しかし、単に数式や関数の計算対象に設定していたセルが未入力であっただけでもエラー表示になってしまうという、おせっかい機能になってしまうケースもあります。

こういった場合に、エラー表示をそのままにしておくと見栄えが悪いですし、そのエラー状態のセルを参照している他のセルの数式・関数の結果も連動してエラーになってしまいます。

ちなみに、エラー値の種類や原因については、以下の記事をご参照ください。

これらのエラー表示については、IFERROR関数を使うことで回避することができます。

IFERROR関数とは?

読み方はイフ・エラー関数と読みます。関数名の”IFERROR”は「もしも~」を意味する英単語と”ERROR”(エラー)の英単語の組み合わせだと推測されます。(Microsoftの公式見解がないので)

数式ライブラリ上のカテゴリは「論理」です。

IFERROR関数は、ある値や数式がエラーか否かを判定し、エラーであれば予め指定した値を、エラー以外はその値や数式の計算結果が表示してくれる関数です。

ちなみに、IFERROR関数はExcel2007から実装された関数ですが、登場以来エラー回避で使用される頻度がなかなか高い関数でもありますよ。

また、エラーか否かの判断は、次の7種類のエラー値が対象です。

  1. #N/A
  2. #VALUE!
  3. #REF!
  4. #DIV/0!
  5. #NUM!
  6. #NAME?
  7. #NULL!

IFERROR関数の構文を理解しよう!

IFERROR関数を記述する際の構文は次のとおりです。

※引数名を[]で囲っているものは省略可能

=IFERROR(値,エラーの場合の値)

引数

引数名 必須 データ型 説明
どの型でも可 エラーかどうかをチェックする対象の値や数式を指定します。
エラーでない場合は指定している値や数式の計算結果がIFERROR関数の戻り値になります。
エラーの場合の値 どの型でも可 エラーの場合に返す値を指定します。

なお、「データ型」とは、その引数に指定できるデータの形式を指します。

指定外のデータ形式を指定すると、関数の戻り値(返り値)はエラーとなりますのでご注意ください。

IFERROR関数の補足説明

IFERROR関数の処理の流れをフローチャートにまとめると以下のとおりです。

まず、引数「値」に指定した値や数式がエラーでないかどうかの判定が行われます。

その結果、エラーでなければ引数「値」に指定した値や数式がそのまま適用された結果がIFERROR関数の戻り値になります。

逆にエラーの場合は、引数「エラーの場合の値」に指定した値や数式がIFERROR関数の戻り値になるというわけですね。

実際にIFERROR関数を使ったものが以下の内容です。

引数「値」に指定した「A2*B2」のうち、B2セルの値が”-“という文字列のために掛け算の結果は”#VALUE!”というエラー値になります。

”#VALUE!”はIFERROR関数の対象となるエラー値のため、今回のIFERROR関数の戻り値は引数「エラーの場合の値」に指定していた”-“が返っているというわけですね。

ちなみに、引数「エラーの場合の値」に指定する内容ですが、私は”-“や””(ブランク)などを指定することが大半です。

サンプルファイルで練習しよう!

では、実際に今回のテクニックを使ってみましょう!

サンプルの条件

今回の題材は次のとおりです。

「金額計算」というシートに「単価」と「数量」があり、それらを掛け算した結果として「金額」を計算したいとします。

今回、「数量」が”-“という値になっているため、単純な掛け算の数式では”#VALUE!”というエラー値になってしまいます。

このエラー表示にならないよう、IFERROR関数をC2セルに入れてみましょう。

なお、引数「エラーになった場合の値」を今回は”-“にします。

実際に練習してみよう!

可能であれば、以下のサンプルファイルをダウンロードして実際に操作してみてください。

サンプルファイル_IFERROR関数
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ファイルを開いたら次の手順を実施してください。

  1. 「金額計算」シートを選択
  2. C2セルへ「=IFERROR(A2*B2,”-“)」を入力
    ※赤字の部分をコピーして貼り付けてください。

C2セルの値が以下のとおりになればOKです!

A2・B2セルの値を変えてみて、C2セルの値がどう変わるかもいろいろ試してみてくださいね。

もし、表や数式を加工してしまった場合は、上記手順を実施済みの「金額計算 (関数あり)」シートもサンプルファイル内に用意していますので、必要に応じてご活用くださいね。

【参考】IF関数+ISERROR関数の数式よりも短い数式で済む!

ちなみに、Excel2003まではIFERROR関数と同じことをしようとした場合は、IF関数とISERROR関数の組み合わせを使うしかありませんでした。

しかし、この方法は数式が長くなってしまうので、先ほどのサンプルファイルの内容を対応するための数式を比較すると、以下のとおりとなります。

いかがでしょうか?

上記の例では、10文字も違います。

  • IFERROR関数:19文字
  • IF関数+ISERROR関数:29文字

ちなみに、今回は「A2*B2」というシンプルな数式なので、この程度の差で済んでいますが、VLOOKUP関数などの長めな数式のエラー回避を行なう際は、もっと数式の文字数の差異は広がりますよ。

もちろん、数式が短い方がもちろん可読性が良いので、Excel2007以降の人はIFERROR関数の方を優先的に覚えると良いでしょう。

さいごに

IFERROR関数はIF関数を使える人なら間違いなく使える関数です。

エラー回避は数式を扱う方なら遭遇する確率は非常に高いので、活用シーンも上位クラスですね。

私もIFERROR関数は数式を組む際に必ず使用する関数のひとつなので、使えていない方は練習して使えるようになることを強くおすすめします。

ただし、IFERROR関数はすべてのエラー値が対象のため、あるエラー値のみに絞って表示を変えたい場合は、IF関数とISERR関数・ISNA関数を活用した方が良いですね。

その他、IF関数の応用テクニックを知りたい方は、私の書籍で紹介しているので、こちらもご参考にしていただければと思います。

ご参考になれば幸いですm(_ _)m

森田森田

私は職場がExcel2010に切り替わってからIFERROR関数を実際に使うようになりましたが、あまりの便利さにあっけに取られてしまいました(笑)
「こんな短い数式でエラー回避できちゃっていいの?」という感じでしたね。

この記事が気に入ったら
いいね ! しよう

無料メルマガはじめました!(特典あり)

メールアドレスを登録すればブログではお伝えできない情報を無料で受信できます。
今なら特典として、サンプルファイルを無料でプレゼント中!
もっとエクセルをスキルアップしたい方は、ぜひご登録くださいm(__)m

ご案内

おすすめ記事