プロが教えるわが家の防犯対策術!

お世話になっております。

セルに入っている数値を表示形式で切り上げ表示する方法はございますでしょうか。

基本的に任意の桁で四捨五入や切り上げ、切り下げをしたい場合はROUND関数などを使うと思うのですが、
関数では無く、表示形式で切り上げを行いたいと思っております。

表示形式ですと、四捨五入しか設定が出来なく、少数第二位を切り上げ表示すると言ったような設定ができません。
もしExcel自体の機能ではできないとのことでしたら、マクロもほんの少しは書くことができますので、マクロでの対応があればそちらを教えて頂けると幸いです。

よろしくお願いいたします。

A 回答 (6件)

間違ったことを言っているつもりはないのですが、ちょっと突飛な回答なので、無理なら読み捨てて下さい。



>そもそも表示形式でできるのは「見た目」だけです。
マクロを使ったとしてその場合 実数をいじらざるを得ません。

→確かに表示形式で出来るのは「見た目」だけです。ただ、実数をいじらなくても、書式設定をいじることはできます。

ということで、マクロで書式設定をいじってみました。
こんな感じです。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim n As Variant
On Error GoTo fin
n = WorksheetFunction.RoundUp(abs(Target.Value), 2)
Target.NumberFormatLocal = """" & n & """"
fin:
End Sub

ただ、ここまでやっちゃうとお遊び的な要素が強すぎます。いろいろ問題も出てきそうなので、本当に、ここまでする必要があるのか、よく考えみて下さいね!!
    • good
    • 0
この回答へのお礼

なるほど!

そういう遊び的な要素があった方が、自分のVBAとしてスキルも広がる気もしますし、ありがとうございます!

お礼日時:2020/12/19 13:51

どうゆうこと?


表示形式で切り上げたけど?
こういうこと?
「Excel 表示形式で数値切り上げをした」の回答画像5
    • good
    • 0

> 表示形式ですと、四捨五入しか設定が出来なく


そもそも表示形式でできるのは「見た目」だけです。
マクロを使ったとしてその場合 実数をいじらざるを得ません。
マクロならどうにかなるという問題の話ではありません。

どうせ実数をいじるしかないなら 数式やクエリで 切り上げたデータ
を別シートに読み込んだ方がいいかと思います。
    • good
    • 0

表示形式のみで切り上げをしたいのなら無理では?


入力された数値そのままにしておくのなら、表示形式では四捨五入
するExcelの既定の動作だけになります(数値の丸め)
https://support.microsoft.com/ja-jp/office/%E6%9 …
https://www.hello-pc.net/howto-excel/shisyagonyu/
マクロで処理をするとしても、表示形式で対応したのではなく、数値
そのものを切り上げすることになります(入力された数値は残らない)

数値そのものを残すのなら、表示形式ではなく、別列にCEILING関数
などを使って切り上げすることをお勧めします(元列には数値が残る)
 =CEILING(A1,0.1)
    • good
    • 0

マクロ云々言うならば


ワークシートの関数でいいのでは?
    • good
    • 0

マクロになってしまうと思います。



入力値に0.5を加算するようにすれば四捨五入設定で必ず切り上げになります。

セル値の変化はWorksheet_Changeで拾う事ができます。
選択されていたセルを引数として渡されているので、切り上げ対象の範囲かどうかはこれで判断可能です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!