• 締切済み

Excel 関数について、教えて下さい

J70セルの値が小数点以下(例えば7427.1)の場合に、切り下げてK70セルに表示させるため=ROUNDDOWN(J70,0)と設定し7427と表示されうまくいったのですが、J70セルの値が2606.0の場合K70セルに、なぜか2605と表示されてしまいます。 要はJ70セルの値が小数点第1位が「0」の場合(例えば2606.0)、K70セルの表示は2606、小数点第1位が「1~9」の場合(例えば2606.1)、K70セルの表示は2606としたいのですが、設定が解りません。 お知恵を拝借させて下さい。

みんなの回答

noname#204879
noname#204879
回答No.5

=ROUNDDOWN(J70,0) を例えば次式に書き替えてみてください。 =ROUNDDOWN(ROUND(J70,8),0) 小数点を含む計算の際に行なう私の常套手段です。 貴方の場合は「8」は 7 以下の数値でもOKかも。取り扱う数値の有効桁数以上の数値であればよろしい。

neko2828hira
質問者

お礼

mike g 様 有難うございました。 早速試したところうまくゆきました。 このような解決方法は私も頭に入れ、使用するように致します。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.4

元の数字が 「2606.0」と表示されているけど、実は「2605.9・・・・・」で、 セルの幅(あるいは表示形式による小数点以下表示桁数操作)などによって 小数第2位で四捨五入されて「2606.0」と“見えているだけ”状態のような気がします。 <検証内容> ・任意セルに「=ROUNDDOWN(2606.0,0)」   =>「2606.0」が返る=>正常 ・A1セルに「2606.0」(直接入力)、B1セルに「=ROUNDDOWN(A1,0)」   =>B1セルに「2606.0」が返る=>正常 ・A1セルに「2605.999」(直接入力し、表示形式で小数1位まで表示)  画面での表示値「2606.0」(数式バー上は「2605.999」)  B1セルに「=ROUNDDOWN(A1,0)」   =>B1セルに「2605.0」が返る=>関数としては正常 つまり今回、エクセルのROUNDDOWN関数は正常な挙動を見せている・・という事。 まずはデータの見直しをしてみましょうね。

回答No.3

=CEILING(J70,1) コレに近いと思うが、 例えば、J70の書式が数値で少数1桁になっている場合、実数が1.05でも1.1に見えているわけだね。 そのアタリの細かいところは調整が必要かも?

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 尚、もしも、「小数点以下を切り捨てる」のではなく、「小数点以下が○○.95以上の場合は小数点以下第1位を切り上げ、○○.95未満の場合は小数点以下第1位を切り捨て」の様にされたいのでしたら、次の様な関数となります。 =ROUNDDOWN(ROUND(J70,1),0) =ROUNDDOWN(J70+0.05,0) =int(ROUND(J70,1)) =int(J70+0.05)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

>J70セルの値が2606.0の場合K70セルに、なぜか2605と表示されてしまいます。  それは、J70セルの本当の値が2605.95~2605.99999999・・・・の範囲内の数値であったものが、J70セルの表示可能桁数が小数点以下第1位までであったため、小数点以下第2位の処で四捨五入した値である2606.0が表示されていただけで、実際の値は2606.0未満なので、K70セルには小数点以下を切り捨てた2605が表示されたものと思われます。  ですから、それはその設定のままで、 >J70セルの値が小数点第1位が「0」の場合(例えば2606.0)、K70セルの表示は2606、小数点第1位が「1~9」の場合(例えば2606.1)、K70セルの表示は2606としたい というという条件を満たしている事になります。  試しに、J70セルの関数や値をどこか適当なセルに、バックアップとしてコピーして取っておいた上で、J70セルに2605.95などと入力してみて下さい。  おそらく、2605.9ではなく、2606.0と表示される筈です。

関連するQ&A