• 締切済み

ご親切な方お願いします

セルに直接数字を入力します例:124.921最後の下一桁1~9数字(例:1)を切り上げを自動でできないでしょうか?例結果:124.930と言う感じです。 VBAの式があるならコピーで使えるように教えて欲しいです。どなたか親切か方お願いします。

みんなの回答

回答No.4

ご質問の処理は関数でできないこともないですが、式は割と難しいです。6つのセルに次のとおり式を入力してください。まとめて1本の式にしたければ、適当に入れ子にしてください。 B1 =trunc(a1)  (整数部分) C1 =len(substitute(b1,"-",))  (整数部分の桁数) D1 =len(substitute(substitute(a1,".",),"-",))  (全体の桁数) E1 =d1-c1  (小数部分の桁数) F1 =e1-1  (ROUNDUPで指定する位置) G1 =roundup(a1,f1)  (切り上げ) ※数値がA1に入力される場合 なお、MOD関数を使えば整数部分の桁数を求めずにいきなり小数部分の桁数を求められそうにも思えるかもしれませんが、計算誤差の関係でうまく行かないケースがあるので、整数同士の引き算により小数部分の桁数を求めています。

回答No.3

切り上げの対象が、必ず小数点第3位なのでしたら =ROUNDUP(A1,2) でいけると思います。しかし、切り上げの対象が、「今回は第2位」「今回は第1位」のように A1に入力する数値により毎回変化する場合はこの数式は使えません。 第3位が0となる時に、それを表示したい場合は、 セルの書式設定には「表示形式」→「数値」、「小数点以下の桁数」→「3」とすればOKです。 A1に入力する数値により切り上げ桁位置が毎回異なる場合は、やはりVBAを利用することになります。 質問内容の情報量が少ないので、親切ではないようですが不要になるかも知れないVBAまで書くのはやめておきますね。

noname#192382
noname#192382
回答No.2

元の数がA1にあるとすると、A2に次の式を入れてください。そうすると希望の数が得られます。 =ROUNDUP(A1/10,0)*10

  • m_inoue222
  • ベストアンサー率32% (2251/6909)
回答No.1

丸めた桁位置に 0 を表記するのはダメだったのでは? 小学校の時に習ったような気がします...50年前 124.93...なら簡単に表示できるはず

関連するQ&A

専門家に質問してみよう