関数を使っているとエラー表示になることがありますが、そのままだと見栄えが悪くなりますし、そのエラーになったセルを参照している他の関数までエラーになってしまうので困っています。
何か良い方法ないですかね?
エラー表示は確かに見栄えが悪いですし、複数の関数がエラーになると芋づる式にエラー続きになってしまいますね。
解決策は複数ありますが、今回はExcel2003以前のバージョンでも活用できるIF関数とISERROR関数の組み合わせをまずは説明したいと思います。
では、詳細を解説していきますね。
はじめに
本題に入る前に、この記事がおすすめな人を挙げてみます。
- 関数のエラー表示に困っている人
- エクセルを扱う機会がある人
- 事務職を目指している人
ちなみに、最低限「IF関数の基礎」を把握している想定での記事となります。
※自信がない方はこちらの記事で学んでください。
→【初心者向け】条件に応じてセルの値を変える!IF関数の使い方
数式・関数でエラー表示になってしまう!
たとえば、次のような単純な掛け算でも、数値ではない”-“などの文字列が入るだけで数式・関数はエラー表示になってしまうことがあります。
エラー表示は、数式や関数の入力間違いや参照誤りを気づかせてくれるアラート機能なので、基本的にはユーザーが不具合を認識するためになくてはならない便利な機能です。
しかし、単に数式や関数の計算対象に設定していたセルが未入力であっただけでもエラー表示になってしまうという、おせっかい機能になってしまうケースもあります。
こういった場合に、エラー表示をそのままにしておくと見栄えが悪いですし、そのエラー状態のセルを参照している他のセルの数式・関数の結果も連動してエラーになってしまいます。
ちなみに、エラー値の種類や原因については、以下の記事をご参照ください。
→Excel(エクセル)関数エラー7種類の原因と対策まとめ
引数「論理式」にISERROR関数を組み合わせる!
こういったエラー表示を回避するために、IF関数の引数「論理式」へISERROR関数を組み合わせます。
ISERROR関数とは?
このISERROR関数は情報関数の一種で、次の7種類のエラー値に該当する場合に”TRUE”を返してくれる関数です。(該当しない場合は戻り値が”FALSE”になります)
- #N/A
- #VALUE!
- #REF!
- #DIV/0!
- #NUM!
- #NAME?
- #NULL!
ISERROR(テスト対象)
試しに、このISERROR関数を単体で使ってみるとイメージが湧きやすいと思います。
たとえば、次の表のC5セルに「A2*B2」という掛け算を引数にしたISERROR関数を入れてみましょう。
まず、引数「テスト対象」にした「A2*B2」のうち、B2セルの値が”-“という文字列のために掛け算の結果は”#VALUE!”というエラー値になります。
”#VALUE!”はISERROR関数の対象になるエラー値のため、今回のISERROR関数の戻り値が”TRUE”になっているわけですね。
組み合わせるとはどういうことか?
組み合わせるとは、このISERROR関数をIF関数の引数「論理式」のところに入れるわけです。
こうして2つの関数を組み合わせて使うことで、引数「論理式」がISERROR関数によってエラー値になったか否かを判定できるようになるわけです。
なお、IF関数の引数「真の場合」は、エラー値に該当する場合に表示したい値を入力します。
私は”-“や””(ブランク)などを指定することが大半ですね。
最後のIF関数の引数「偽の場合」は、ISERROR関数の引数「テスト対象」と同じ内容にすることで、エラー値でない場合に当初の想定通りの計算や処理ができますよ。
サンプルファイルで練習しよう!
では、実際に今回のテクニックを使ってみましょう!
サンプルの条件
今回の題材は次のとおりです。
「金額計算」というシートに「単価」と「数量」があり、それらを掛け算した結果として「金額」を計算したいとします。
今回、「数量」が”-“という値になっているため、単純な掛け算の数式では”#VALUE!”というエラー値になってしまいます。
このエラー表示にならないよう、IF関数とISERROR関数を加えた数式をC2セルへ入れてみましょう。
なお、エラー値になった場合のIF関数の引数「真の場合」の値を今回は”-“にします。
実際に練習してみよう!
可能であれば、以下のサンプルファイルをダウンロードして実際に操作してみてください。
サンプルファイル_IF関数_ISERROR関数
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)
ファイルを開いたら次の手順を実施してください。
- 「金額計算」シートを選択
- C2セルへ「=IF(ISERROR(A2*B2),”-“,A2*B2)」を入力
※赤字の部分をコピーして貼り付けてください。
C2セルの値が以下のとおりになればOKです!
A2・B2セルの値を変えてみて、C2セルの値がどう変わるかもいろいろ試してみてくださいね。
もし、表や数式を加工してしまった場合は、上記手順を実施済みの「金額計算 (関数あり)」シートもサンプルファイル内に用意していますので、必要に応じてご活用くださいね。
さいごに
エラー表示が発生するケースは地味に多いもの。
その場合は、今回のテクニックを活用すれば解決できますので、しっかり練習しておきましょうね。
なお、他にもエラー表示を回避するテクニックとして、Excel2007以降はよりシンプルな数式で同じことができるIFERROR関数が用意されています。
【中級者向け】数式・関数のエラー表示の回避テクニック②【IFERROR関数】
IFERROR関数が使えないケースでIF関数+ISERROR関数を活用する、というスタンスがおすすめですね。
今回のような便利なIF関数の応用テクニックを知りたい方は、私の書籍で紹介しているので、こちらもご参考にしていただければと思います。
▼IF関数を基本から応用まで体系的に学びたい方向け
▼IF関数の応用テクニックに加えて、その他VLOOKUP関数なども学びたい方向け
ご参考になれば幸いですm(_ _)m
個人的には今回のテクニックはExcel2003の時代にお世話になった関数です。
今はExcel2010の環境がほとんどなので使用頻度がめっきり減りましたが、Excel2003以前のExcelブック(xlsファイル)を使うことがある人、またはそのファイルをやり取りする機会がある人は知っておくと良いですよ!