らくらくIT活用術

PC活用講座 - Excel

「Excelの便利機能活用術」
数式のエラー値を表示させず、わかりやすいメッセージに変換してエラーチェックする

ITライター 立山秀利

セルの数式がエラーの場合、エラー値(#VALUE!、#DIV/0!など)そのものを表示させずに、「正しく入力してください」などのメッセージを表示したいケースがある。そのような機能を作成するには、ISERROR関数を使うと便利だ。

エラーの場合のみ表示したいが・・・

例えば図1のように、商品の売値(B2~B5セル)と原価(C2~C5セル)から、原価率をD2~D5セルにそれぞれ算出したいとする。原価率を求める数式は、D2セルなら「=C2/B2」だ。その場合、売値のセルにデータが未入力だと、エラーとなり、セルに「#DIV/0!」と表示されてしまう。

そのようにエラーが表示されることを防ぐには、IFERROR関数を用いるのが一般的だ。図1では、エラーの場合は「-」を表示するようIFERROR関数をD2~D5セルに用いていた例だ。例えばD5セルなら、「=IFERROR(C5/B5,"-")」と入力している。図1ではB5セルが未入力のため、D5セルには通常ならエラーが表示されるが、IFERROR関数によって「-」が表示されるようになった。

図

図1
(画像をクリックすると拡大表示します)

ここで、もしD2~D5セルがエラーの場合のみ、E2~E5セルに「データを正しく入力してください。」と表示したいとする。この機能も一見、IFERROR関数で作れそうだが不可能だ。例えばE2セルなら、下記の数式を入力すればよさそうに思える。

----------------------------------------------------
=IFERROR(C2/B2,"データを正しく入力してください。")
----------------------------------------------------

しかし、IFERROR関数はエラーでない場合は数式の結果を表示するので、エラーでない場合にデータが表示されてしまうのだ(図2)。

図

図2
(画像をクリックすると拡大表示します)

ISERROR関数とIF関数の組み合わせで作成

このような機能はISERROR関数とIF関数の組み合わせなら作成できる。ISERROR関数は数式がエラーかどうか判定する関数だ。引数に指定した数式がエラーならTRUE、エラーでなければFALSEを返す。

---------------------------------
ISERROR(数式)
---------------------------------

数式の結果によるエラー値は、以下の表に示す。

エラー値   理由
---------------------------------------------------------------
#DIV/0!    割り算の割る値が0、または空白のセルで割られている
#VALUE!    引数の種類が間違っている
#NAME?     Excelでは存在・利用できない名前が使われている
#N/A       データが存在しない
#REF!      無効なセルを参照している
#NUM!      不適切な数値を指定している
#NULL      セル範囲に共通部分がない
---------------------------------------------------------------

例えば、A1セルを0で割る数式「A1/0」をISERROR関数の引数に指定したとする。0で割るのでエラーとなり、ISERROR関数はTRUEを返す(図3)。

図

図3
(画像をクリックすると拡大表示します)

このISERROR関数を使い、原価率の計算式がエラーかどうかを判定する。その判定式をIF関数の条件に指定し、条件が成立するなら(エラーなら)、「データを正しく入力してください。」と表示し、成立しなければ(エラーでなければ)、何も表示しないよう指定すれば、目的の機能を作成できる。例えばE2セルなら、以下の数式になる。

----------------------------------------------------------
=IF(ISERROR(C2/B2),"データを正しく入力してください。","")
----------------------------------------------------------

IF関数で条件が成立しない場合は何も表示しないよう、空の文字列「""」を指定する。これで、エラーの場合のみ、E2~E5セルに「データを正しく入力してください。」と表示されるようになった。

図

図4
(画像をクリックすると拡大表示します)

このようにISERROR関数を用い、IF関数を組み合わせれば、数式がエラーの場合のみ指定した値をセルに表示できるようになる。その結果、表のデータも見やすくなり、確認作業も効率的になるだろう。

その他の【Excel】を見る

PC活用講座 一覧へ

立山秀利(たてやま・ひでとし)

カーナビのソフトウェア開発、Webプロデュース業務を経て、現在は、システムやネットワーク、Microsoft Officeを中心に執筆中。 主な著書に『Excel VBAのプログラミングのツボとコツがゼッタイにわかる本』などがある。

(監修:日経BPコンサルティング)