ROUND 関数は小数点以下の指定した桁数、整数、または 10 の塁乗に値を丸めます。

たとえば、ROUND を使用して、特定の数の部品で作れる商品数を計算できます。

ROUND(Number to round [, Number of decimal places] [, Rounding direction] [, Rounding method])

注記:必須なのは最初の引数だけです。オプションの引数を使用する場合は、先行するすべての引数が必須になります。

引数データ型説明
Number to round (必須)数値丸める数値
Number of decimal places数値

丸める小数点以下の桁数

この引数を省略した場合、最も近い整数に丸められます。

Rounding directionキーワード

丸める方向

キーワードは UP、DOWN、NEAREST、TOWARDSZERO、AWAYFROMZERO です。以下の「丸め方のキーワード」セクションにはさらに詳しい情報があります。

Number of decimal places 引数を指定してこの引数を省略した場合、デフォルトでは NEAREST キーワードが使用されます。

Rounding methodキーワード

使用する丸め方

キーワードは NORMAL と EXACT です。

Rounding method 引数を省略した場合は NORMAL がデフォルトです。

以下の「丸め方のキーワード」セクションにはさらに詳しい情報があります。

ROUND 関数は結果を数値形式で返します。

キーワード説明
UP

Number to round 引数の値を正の無限大の方向に切り上げます。

0 とは逆の方向に切り上げる Excel 関数 ROUNDUP とは動作が異なります。

DOWN

Number to round 引数の値を負の無限大の方向に切り下げます。

0 の方向に切り下げる Excel 関数 ROUNDDOWN とは動作が異なります。

NEAREST

Rounding direction 引数を省略した場合のデフォルトのキーワードです。

Number to round 引数の値を最も近い数値または小数点以下に丸めます。分母は切り上げられます。

TOWARDSZERONumber to round 引数の値を 0 の方向に丸めます。
AWAYFROMZERONumber to round 引数の値を 0 とは逆の方向に丸めます。
キーワード説明
NORMAL

Rounding method 引数を省略した場合のデフォルトのキーワードです。

一部の稀な入力値に対して NORMAL キーワードをした場合、ROUND 関数では最下位の数字で軽微な浮動小数点エラーが発生します。

EXACTEXACT キーワードを使用すると、ROUND 関数では浮動小数点エラーの影響を最小限に抑えるための追加処理が実行されます。

Polaris では、ROUND 関数で丸め方法として常に EXACT が使用されます。そのため、Rounding method 引数を指定することができません。Classic エンジンでは、Rounding method 引数で EXACT を指定している場合を除き、ROUND 関数で丸め方法として NORMAL が使用されます。

Polaris では、Number to round が 0 で、Number of decimal placesNaN (非数) の場合、ROUND 関数が 0 を返します。Classic エンジンでは NaN が返されます。

Polaris では、Number to round が 0 ではなく、Number of decimal placesNaN (非数) の場合、ROUND 関数が NaN を返します。 Classic エンジンでは、Rounding method が NORMAL の場合は NaN が返され、Rounding method が EXACT の場合は Number to round が返されます。

Polaris では、Number of decimal places が整数ではない場合、Number of decimal places が最も近い整数に丸められます。Classic エンジンでは、このケースではRounding methodとして NORMAL がサポートされていません。Rounding methodが EXACT の場合には 0 の方向に丸めまられます。

Polaris では、Number of decimal places が負の無限大か -308.5 未満の場合、想定通りに 0、負の無限大、又は無限大が返されます。Number of decimal places が無限大か 308.5 より大きい場合、想定通りに Number to round、負の無限大、または無限大が返されます。Classic エンジンでは、いずれの場合も NaN (非数) が返されます。

Polaris では、Rounding direction が UP、DOWN、AWAYFROMZERO、又は TOWARDSZERO で、表現できないほど結果が小さい場合は、可能ななかで最も小さい数字が返されます。同様のケースで、Classic エンジンでは、Rounding methodが EXACT の場合に 0 が返されます。

Polaris では、Number to round が負、Rounding direction が NEAREST、Number of decimal places が負の場合に 0 とは逆の方向に丸められます。同様のケースで、Classic エンジンでは 0 の方向に丸められます。

ROUND((Payment amount * Exchange rate), 2, UP, EXACT)

この式では支払い金額に為替レートを掛け、結果を小数点以下 2 桁まで丸めます。この式では UP キーワードを使って正の無限大方向に切り上げ、EXACT キーワードを使って浮動小数点エラーを最小限に抑えます。

Number of decimal places 引数には負の数字を使用できます。これを行った場合、Number to round 引数は 10 の塁乗に丸められます。MROUND 関数でも同じ処理を実行できます。この関数では 10 の塁乗ではない数字に丸めることもできます。

非常に大きい数値、又は小数点以下の桁数が多い数値を丸めると、浮動小数点演算によりわずかな精度誤差が発生する場合があります。精度誤差と大きな数値の計算についてはこちらを参照してください。

Formula (式)説明結果
ROUND(12.344)丸められる値のみ。12.344 が指定されています。この式ではデフォルトの引数 (小数点以下 0 桁、NEAREST 方向、NORMAL 丸め方) が使用されています。12.0
ROUND(12.399, 1, DOWN)この式には小数点以下 1 桁、DOWN 方向の引数が含まれています。つまり、12.399 は小数点以下 1 桁まで切り捨てられます。12.3
ROUND(-12.5)この式には ROUND と丸められる値しかないため、デフォルトの引数 (小数点以下 0 桁、NEAREST 方向、NORMAL 丸め方) が使用されます。-12.5 は負の数値であるため切り捨てられます。-13
ROUND(532.8399, 2, TOWARDSZERO)この式には小数点以下 2 桁、TOWARDSZERO 方向の引数が含まれています。つまり、532.8399 は 0 方向に小数点以下 2 桁まで切り捨てられます。ROUND をこのように使用することで商品価格を計算できます。0 方向に丸めることで利益率が最大化されます。532.83
ROUND(28.135, 1, UP)この式には小数点以下 1 桁、UP 方向の引数が含まれています。つまり、28.135 は小数点以下 1 桁まで切り上げられます。28.2
ROUND(2.509, 2, NEAREST, NORMAL)これは、NORMAL の丸め方によってわずかな誤差を生む例です。2.5100000000000002
ROUND(2.509, 2, NEAREST, EXACT)EXACT の丸め方によって実行される追加処理で、前の例のわずかな誤差が修正されます。2.51

外国為替では通常、為替レートに最大で小数点以下 5 桁まで使用されます。ただし、ユーロや米国ドル、ポンドなど、一部の通貨は小数点以下 2 桁の倍数でしか支払うことができません。

こちらの例では、米国ドルで支払う企業からユーロを使用する口座に支払いが行われています。列には「Transaction」リストがあり、行にはライン アイテムがあります。ライン アイテムには以下が含まれています。

  • 支払い額 (米国ドル)
  • 米国ドルからユーロへの詳細な為替レート (小数点以下 5 桁まで)
  • 具体的な為替レートを米国ドルの金額に適用し、ROUND 関数を使って最終的な金額を小数点以下 2 桁まで切り上げて支払うための式。

Transaction 1Transaction 2Transaction 3Transaction 4Transaction 5
Amount to be paid (USD)USD 500USD 750USD 100USD 125USD 375
Exchange rate at time of payment0.842710.840370.824730.828290.85154

Amount paid (EUR)

ROUND(('Amount to be paid (USD)' * 'Exchange rate at time of payment'), 2, UP, EXACT)

EUR 421.36EUR 630.28EUR 82.48EUR 103.54EUR 319.33