Excel ROUNDDOWN関数の使い方!切り捨てにならない対処法も!

Excel ROUNDDOWN関数の使い方!切り捨てにならない対処法も!
Excelの金額計算で、小数点以下を切り捨てたいときはないでしょうか。

けど、そんな中で悩むことは、

・ROUNDDOWN関数の使い方がいまいち分からない
・桁数の指定(0や-1)の意味が分からない
・負の数を切り捨てたら、思った値にならなかった

ですよね。

今回はそんなお悩みを解決する

・Excelで数値を切り捨てる方法(ROUNDDOWN関数)と「切り捨てにならない」ときの対処法

についてまとめます!

完成イメージ

金額のように小数点以下が出る計算では、そのままにしておくと端数が残って見づらく、合計もずれます。
今回は
・ROUNDDOWN関数で小数点以下を切り捨てる方法(=ROUNDDOWN(数値, 桁数))
をゴールにします。

桁数の指定を変えれば、小数第1位で切り捨てたり、十の位・百の位で切り捨てたりもできます。
完成イメージ
上の画像が完成形です。金額の小数点以下が切り捨てられ、切り上げ・四捨五入と並べて結果を比べられます。

さらに、
負の数で「切り捨てにならない」ときの原因と対処法や、
ROUND・ROUNDUP・INT・TRUNCとの違い、
VBAで一括処理する方法もあわせてご紹介します。

STEP1. 元データを用意する

まずは端数処理をしたい金額表を用意します。
A列が商品、B列が単価、C列が数量、D列が金額です。
金額は手入力ではなく =B2*C2 の数式にしておきます。
単価に 12,345.67 のような小数を入れると、金額にも小数点以下が出ます。
今回は8件のデータで試していきます。
端数処理したい金額表

下の表をコピーして、Excelのシートに貼り付けるとそのまま試せます。

商品 単価 数量 金額 切り捨て後 切り上げ後 四捨五入後
商品A 12345.67 3
商品B 8765.43 7
商品C 4321.99 12
商品D 23456.78 2
商品E 1234.56 15
商品F 6789.12 5
商品G 9876.54 4
商品H 3333.33 9

※ 数式で求める列は空にしています。すでに値が入っている列はそのまま残して試せます。

STEP2. ROUNDDOWN関数で切り捨てる

切り捨てた結果を出したいE列に、ROUNDDOWN関数を入力します。
E2セルを選んで、次のように入力します。

=ROUNDDOWN(D2, 0)

第1引数は切り捨てたい数値(D2)、第2引数は桁数(0)です。
桁数に0を指定すると、小数点以下をすべて切り捨てて整数にします。
入力できたら、E2セルをE9セルまでコピーしましょう。
実際の入力画面がこちらです。
ROUNDDOWN関数の入力画面

STEP3. 切り上げ・四捨五入と並べて比べる

同じ金額に対して、切り上げ(ROUNDUP)と四捨五入(ROUND)も出して比べてみます。
F2セルに =ROUNDUP(D2, 0)、G2セルに =ROUND(D2, 0) と入力して、下までコピーします。
すると、同じ金額でも関数によって結果が1円ずつ違うことが分かります。
たとえば1件目は、切り捨てが 37,037、切り上げが 37,038、四捨五入が 37,037 になりました。

5つの関数の違い

紛らわしい5つの関数を表にまとめました。
負の数の結果に注目すると違いがよく分かります。

関数 動き -123.5 の結果
=ROUNDDOWN(数値,0) 0に近づく方向へ切り捨てる -123
=ROUNDUP(数値,0) 0から遠ざかる方向へ切り上げる -124
=ROUND(数値,0) 四捨五入する(.5は0から遠ざかる方へ) -124
=INT(数値) 小さい方(マイナス方向)へ丸める -124
=TRUNC(数値,0) 0に近づく方向へ切り捨てる(ROUNDDOWNと同じ) -123
切り捨て・切り上げ・四捨五入の結果

STEP4. 桁数を変える(-1=十の位、1=小数第1位)

ROUNDDOWNは、桁数を変えれば切り捨てる位置を自由に選べます。
桁数は「残す小数の桁数」を表します。
下の表は、元の値 123.456 を各桁数で切り捨てた結果です。

桁数 意味 結果
2 小数第2位まで残す 123.45
1 小数第1位まで残す 123.4
0 小数点以下をすべて切り捨てる(整数) 123
-1 十の位で切り捨てる 120
-2 百の位で切り捨てる 100

桁数に負の数を指定すると、小数点の左側(十の位・百の位)で切り捨てられます。
実際の結果が下の画像です。
桁数を変えた切り捨て結果

STEP5. 「切り捨てにならない」原因と対処

ROUNDDOWNを使ったのに「思ったとおりに切り捨てにならない」と感じる原因は、負の数の丸め方にあります。
ROUNDDOWNは「小さい方へ切り捨てる」関数ではなく、0に近づく方向へ丸める関数です。
そのため =ROUNDDOWN(-123.5, 0) の結果は -123 になります。
「-124 になってほしい」と思っていると、ここでズレを感じてしまうのですね。
下の表で、各関数の結果を見比べてみましょう。
負の数の丸め方の違い

「-124」にしたいときの対処法

負の数でも「絶対値の小数を切り捨てて、より小さい方向へ丸めたい」ときは、INT関数を使います。
=INT(-123.5) の結果は -124 になります。
INTは「その数以下で最大の整数」を返すため、負の数では0から遠ざかる方向へ丸まります。
一方、TRUNC関数は ROUNDDOWN と同じく0に近づく方向へ切り捨てる関数です。
なお、符号をはっきりさせたいときは =SIGN(A1)*ROUNDDOWN(ABS(A1),0) のように書く手もあります。
SIGNは符号(+1/-1/0)、ABSは絶対値を返す関数です。

POINT

「切り捨て」と一口にいっても、
ROUNDDOWN・TRUNCは0に近づく方向、INTは小さい方向へ丸めます。
負の数を扱うときは、どちらの動きにしたいかを先に決めてから関数を選ぶと迷いません。

消費税や手数料の端数処理に使う

実務では、消費税や手数料の1円未満の端数を切り捨てる場面がよくあります。
税抜金額から税込金額を出すときは、=ROUNDDOWN(金額*1.1, 0) とすると1円未満を切り捨てられます。
手数料を差し引いた金額を出すときも、=ROUNDDOWN(金額*0.99, 0) のように端数を処理できます。
合計を出す前にセル単位で切り捨てておくと、帳票の金額がぴったり合いやすくなります。

VBAでまとめて切り捨てる

毎回数式を入れるのが手間なときは、VBAで一括処理するのもおすすめです。
VBAでは Application.WorksheetFunction.RoundDown を使います。

Sub RoundDownAll()
    Dim r As Long
    For r = 2 To 9
        Cells(r, 5).Value = Application.WorksheetFunction.RoundDown(Cells(r, 4).Value, 0)
    Next r
End Sub

実行すると、E列に切り捨てた金額が一括で入ります。
ボタンに登録しておけば、クリック1つで処理できてラクですね。

タカヒロ

タカヒロ
「Application.WorksheetFunction.RoundDown」は、ワークシートのROUNDDOWN関数をVBAから呼び出す書き方です。
RoundDownは先頭が大文字になっている点にだけ気をつけてくださいね。

うまくいかないときの対処法(トラブルシュート)

実際に試すと、思ったように動かないこともあるかもしれません。
よくあるつまずきと対処法をまとめました。

症状 原因 対処
負の数が切り捨てにならない ROUNDDOWNは0に近づく方向へ丸める(-123.5→-123) より小さい方向へ丸めたいときはINTを使う(-124になる)
0桁指定の意味が分からない 桁数は「丸める位置」ではなく「残す小数の桁数」 0で整数、1で小数第1位、-1で十の位、-2で百の位を切り捨てる
計算結果が表示と一致しない 表示形式で小数を隠しているだけで、実際の値には端数が残っている 合計に使うなら、表示形式ではなくROUNDDOWNで実際の値を丸める
#VALUE!になる 数値でないセル(文字列)を参照している 余分な空白や文字を消す/=VALUE()で数値に変換する

関数の説明

今回使う3つの関数の概要です。
どれも端数処理の基本になる関数なので、違いを押さえておきましょう。

ROUNDDOWN関数(ラウンドダウン)

書式 =ROUNDDOWN(数値, 桁数)
できること 数値を指定した桁数で切り捨てます。桁数は残す小数の桁数で、負の数なら左側(十の位・百の位)で切り捨てます。
戻り値 切り捨てた数値
こんなときに 金額や数量の端数を切り捨てたいとき。0に近づく方向へ丸めます。
注意 負の数では「より小さい方向」ではなく0に近づく方向へ丸まります(-123.5→-123)。
=ROUNDDOWN(D2, 0)

INT関数(イント)

書式 =INT(数値)
できること 数値を小さい方(マイナス方向)の整数に丸めます。その数以下で最大の整数を返します。
戻り値 整数
こんなときに 負の数も含めて、常に小さい方向へ切り捨てたいとき。
注意 正の数ではROUNDDOWNと同じ結果ですが、負の数では結果が変わります(-123.5→-124)。
=INT(A1)

TRUNC関数(トランク)

書式 =TRUNC(数値, [桁数])
できること 数値を指定した桁数で切り捨てます。桁数を省略すると整数になります。
戻り値 切り捨てた数値
こんなときに ROUNDDOWNと同じ動きで切り捨てたいとき。
注意 ROUNDDOWNと同様、0に近づく方向へ丸めます。負の数で「-124」にしたいときはINTを使います。
=TRUNC(A1, 0)

完成

金額の小数点以下がきれいに切り捨てられました。
思ったとおりに動きましたか?
切り捨て後・切り上げ後・四捨五入後を並べると、関数による違いがひと目で分かります。
負の数を扱うときだけは、ROUNDDOWNではなくINTを使う場面があることも覚えておきましょう。
完成した端数処理の表

さいごに

いかがでしょうか。

今回は、

・Excelで数値を切り捨てる方法(ROUNDDOWN関数)と「切り捨てにならない」ときの対処法

についてまとめました。

まずは今回のサンプル表で、ぜひ一度試してみてください。
桁数を変えれば十の位・百の位でも切り捨てられるので、消費税や手数料の端数処理にも応用できます。
また、他にも便利なExcelの時短テクニックがありますので、よろしければご参照頂ければと思います。

ぜひ試してみてください。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。






コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA ImageChange Image