(Excel)千円単位に四捨五入する方法

 Excelで、金額を千円単位に四捨五入(百の位で四捨五入して千の位までの概数にする)する方法です。
 四捨五入した値を取得する方法と、値を変えず書式設定(表示形式)で四捨五入した結果を表示する方法について紹介します。

千円単位に四捨五入した数値を取得する方法

百以下の位を除かない数値を取得する場合

 次の画像では、C3セル以下に数式を入力し、B列の金額について千円単位に四捨五入した金額(数値)を取得しています。

 C3セル(下方にフィルコピー)

=ROUND(B3,-3)

 数値の四捨五入にはROUND関数を使います。
 第2引数(四捨五入する桁の指定)をマイナスにすることで十の位までの四捨五入(一の位で四捨五入して十の位までの概数にする)や百の位までの四捨五入にする、といったことができます。
 ここでの千円単位の四捨五入(千の位までの四捨五入)については第2引数を「-3」とすればOKです。

百以下の位を除いた数値を取得する場合

 次の画像では、千円単位に四捨五入したうえで下3桁の「000」を除いた金額を得ています。

 C3セル(下方にフィルコピー)

=ROUND(B3/1000,0)

 数値を1000で割ってからROUND関数を適用し、小数点以下第1位で四捨五入して整数にしています(第2引数=0)。

書式設定(ユーザー定義の表示形式)で四捨五入した結果を表示する方法

百以下の位を含めて表示させる方法

 まずはやりたいことの確認です。
 B列とC列に同じ金額が並んでいますが、このうちC列の金額についてユーザー定義の表示形式を適用し、値そのものを変えずに千円単位に四捨五入した結果を表示させるものとします。
 B列はC列の結果と比較するためにそのままとします。

 


 まずはC列(C3:C13)を選択し、そのまま右クリックしてメニューから「セルの書式設定」を選択します。

 


 ダイアログが現れますので、ここで「表示形式」タブを選択して左側にある欄から「ユーザー定義」を選択します。
 そして「種類」欄に次の文字列を入力します。

 種類欄の文字列

[>=500]0,"000";[>-500]0,;0,"000"

 次のような条件をセミコロン(;)で分割して指定しています。

  1. 数値が500以上の場合…四捨五入して百以下の位を除き末尾に「000」を加えた表示にする
  2. 上記1.に該当せず数値が-500より大きい場合、つまり数値が500未満かつ-500より大きい場合…四捨五入して百以下の位を除いた表示にする(結果的に「0」)
  3. 上記1.及び2.に該当しない場合、つまり数値が-500以下の場合…四捨五入して百以下の位を除き末尾に「000」を加えた表示にする

 2番目の条件「[>-500]0,」の部分は「[>-500]"0"」でもよさそうですが、0未満かつ-500より大きい場合に「-0」と表示されてしまいます。



 OKボタンをクリックすると書式が反映されます。
 数式バーの内容から、数値そのものは変更されていないことがわかります。

百以下の位を表示させない場合

 上記の要領で、種類欄の文字列を

0,

 とすることで、次の画像のように百以下の位が表示されなくなります。
 上記の例では500未満かつ-500より大きい値を(「0000」ではなく)「0」と表示させるために場合分けを行っていましたが、こちらは非常に簡単です。

カンマを入れる場合

 本題とは直接関係ありませんが、いざというときに迷うかもしれないので記しておきます。


 上記の要領で、種類欄の文字列を

[>=500]#,##0,",000";[>-500]0,;#,##0,",000"

 とすることで、次の画像のようにカンマを入りで表示されます。「#,##0,」の部分により千円単位で四捨五入して百の位以下を除き、カンマを入れた結果が得られます。さらに「",000"」により「,000」を加えています。

 


 最後に、百以下の位を表示させずにカンマを入れる例です。
 種類欄の文字列は次のようにしています。

#,##0,

 1つ上の例と異なり場合分けをせずに済んでいるので、短く済んでいます。

備考

 「千円単位」といいつつ上記の説明では単位(「¥」や「円」)の表示を省略しています。文字列として取得する場合は「="¥"&ROUND(~)」や「=ROUND(~)&"円"」のようにすればよく、書式設定の場合は「種類」欄の文字列中の適当な位置に「¥」や「"円"」を加えればOKです。