IFとROUND関数の組み合わせ方と#VALUE!エラーへの対処

ここでは、IF関数とROUND関数の正しい組み合わせ方と、#VALUE!エラーになってしまう原因を解説します。

 

これで、IF関数とROUND関数の組み合わせでエラーが出なくなります。

1.まずはやりたいことを確認

始めに、やりたいことを例を含めて確認します。

 

1-1.やりたいことは?

やりたいことは、「IF関数とROUND関数の組み合わせ方を知る」ことです。

 

組み合わせることで、例えば「セルが空白なら空白で、それ以外は小数点以下四捨五入する」といったことができます。

 

1-2.例で確認

ひとつ例を見てみましょう。

上の例では、セルB2に「15」、セルD2に「4」と入力されています。

 

そしてセルF2に「セルB2が空白なら空白、それ以外は小数点第二位を四捨五入」という意味の数式が入っています。

 

結果、セルB2は空白ではないため、「15÷4」の答えである「3.75」が小数点第二位で四捨五入され、「3.8」となっています。

 

このようなことは、数式バーに表示されているように「IF関数とROUND関数の組み合わせ」でできます。

2.IF関数とROUND関数の組み合わせ方

IF関数とROUND関数の組み合わせ方は、ケースによって異なります。

 

2-1.IF関数で空白処理をしたい場合

空白処理とは、エクセルの特性上空白の場合に0が表示されるのを嫌い、「空白の場合には空白」という数式をIF関数で行うことです。

 

この場合、組み合わせ方は「IF関数の中でROUND関数を使う」形になります。

 

数式の形は、次の通りです。

=IF(対象セル="","",ROUND(値,桁数))

「IF(対象セル="","",~)」とすることで、空白処理ができます。

 

なお、先ほど見た例の数式は、次の通りです。

=IF(B2="","",ROUND(B2/D2,1))

 

2-2.条件の真偽によって数値や計算式を変えたい場合

条件の判定結果が真か偽かによって数値を変えたい場合には、ROUND関数の中でIF関数を使います。

 

数式の形は、次の通りです。

=ROUND(IF(論理式,真の場合,偽の場合),桁数)

ただしこの場合には、IF関数の結果が数値でないとエラーになります。

 

私はこの形で使ったことはありませんが、このような使い方もできます。

 

2-3.条件の真偽によって桁数を変えたい場合

判定結果が真か偽かによって桁数を変えたい場合にも、ROUND関数の中でIF関数を使います。

 

数式の形は、次の通りです。

=ROUND(値,IF(論理式,真の場合,偽の場合))

私はこの形でも使ったことがありませんが、このような使い方もできます。

3.空白処理で組み合わせが逆だとどうなる?

では、空白処理で組み合わせ方が逆だとどうなるのでしょうか?

 

例えば、先ほどの数式を逆に書いてみると以下のようになります。

=ROUND(IF(B2="","".B2/D2),1)

意外にも、正しく計算される時があります。しかし、正しく計算されないときもあって、やはりこの書き方は使えません。

 

この書き方で正しく計算されないのは、「セルB2に数値が入っていなかった場合」です。

この数式の場合、始めに「IF関数のB2が空白なら空白に」が計算されます。

 

すると、B2は空白なのでIF関数の結果は空白となります。

 

その後ROUND関数で「空白÷4」を求めようとするので、結果「分子に値がありませんよ」となって#VALUE!エラーが表示されるのです。

 

ですから、空白処理の場合には、「IF関数の中でROUND関数を使う」のが正解なのです。

 

以上、参考になれば幸いです。

Top