- ベストアンサー
Excelで数字の表示に関して、任意の桁数で四捨五入させて表示させたい
Excelで数字の表示に関して、任意の桁数で四捨五入させて表示させたいのですが、ROUND関数だと別のセルに表示となってしまいます。元のセルのままで表示させ方だけ変えるような方法はありますか?※関数でもいいのですが、とにかくセルは元のセルを使いたいです。Excel2007です。※但し、2003とかでも使うので2007のみの機能は不使用でお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
少数以下の四捨五入は簡単です。 [セルの書式設定]→[表示形式]→[数値] で少数以下の表示桁数を変更できます。 このとき、自動的に四捨五入になります。 整数で任意の桁数での四捨五入は難しいですが、 1000単位ならば可能です。 [セルの書式設定]→[表示形式]→[ユーザー定義]で #,"000" と入力します。 このあたりはジェダイ・アカデミーで学習できます。
その他の回答 (2)
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
元のセルのままかぁ。132456とタイプすると132000となって欲しい わけですよね。 環境設定の「計算方法」だったかな、「表示桁数で計算する」とい うスイッチがあります。これをONにしてください。そして、千円の 桁までしか表示しないセルの書式設定を #,###, のようにします。 するとあら不思議、132456とタイプしたら表示は132となり、数式 バーを見ると132000と変化していますね。これでオッケー。 この方法はセルの幅次第で勝手に桁が切り詰められる可能性がある ので、使用はくれぐれも慎重にして下さい。
お礼
ご回答ありがとうございます。 わかりやすいご回答ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
ROUND関数とセルの書式設定とは全くセル内容が相違します。 表示だけなら#1様の回答ですので省略しますが、ROUND関数の様な振る舞いで入力セルにという事ならば、マクロ(VBA)記述が必要です。 サンプルコードをシートタブ上で右クリック→コードの表示→コード貼り付けでお試し下さい。 A1:A5範囲で入力後に桁数補正します。 Private Sub Worksheet_Change(ByVal Target As Range) 桁 = 2 'ROUND関数の桁数 If Intersect(Target, Range("A1:A5")) Is Nothing Then Exit Sub Application.EnableEvents = False Target.Value = WorksheetFunction.Round(Target.Value, 桁) Application.EnableEvents = True End Sub
お礼
ご回答ありがとうございます。 VBAは知識がほぼゼロなのでこれをきっかけに勉強してみます。
お礼
ご回答ありがとうございます。 >少数以下の表示桁数指定→自動的に四捨五入 知らなかったです。 >1000単位ならば[ユーザー定義]#,"000" こちらも参考になりました。