Excel IF関数で#VALUE!エラーが表示される

ExcelのIF関数は、条件に応じて計算方法を変更する時に使います。

計算式によっては、#VALUEエラーが表示されることがあります。

B列をA列で除算(割り算)し、100を乗算(掛け算)する例を考えます。

Case1

単純に計算する場合には、次のようになります。

A B C D
1 データ1 データ2 計算 数式
2 100 120 120 =B2/A2*100
3

Case2

IF関数を使い、除算する数値(分母)が、正、0、負の場合で分けます。

C列のセルには、次のように数式を入力します。

=IF(A2>0,B2/A2,IF(A2=0,””,(B2/ABS(A2))))*100

ABS関数は、数値を絶対値(負の数値を正の数値)で返す関数です。

A B C D
1 データ1 データ2 計算
2 100 120 120
3 -100 120 120
4 0 120 #VALUE!

上記の数式では、「0(ゼロ)」で除算した場合、#VALUE!エラーが表示されます。

通常、数値を「0(ゼロ)」で除算すると、#DIV/0!エラーが返されます。

上記数式の問題は、最後の「*100」です。

「0(ゼロ)」の場合、上記数式では、「””」を返します。

この「””」に100を乗算したため#VALUE”!エラーが表示されます。

「””」は空欄(セルに入力値がない)です。

試しに、=あ*100とセルに入力してみてください。

#VALUE! と表示されます。

上記数式は、次のようにします。

=IF(A2>0,B2/A2*100,IF(A2=0,””,(B2/ABS(A2))*100))

「0(ゼロ)」の場合は、「0」を返します。

「0(ゼロ)」の場合、空欄(セルに入力値はない状態)になります。

2011年5月20日に、「半角スペース(ASCII文字コード 32)を返します。」と記述しましたが、間違いです。

「””」と「” “」では、後者は半角スペースが「”(ダブルクォテーション)」の間に入っています。

後者の場合は、「半角スペース(ASCII文字コード 32)」を返します。

IF関数の結果に対して、四則演算する場合は注意が必要です。

数式に誤りがあったため修正しました。

広告


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中