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 引数の値を最も近い数値または小数点以下に丸めます。分母は切り上げられます。 |
TOWARDSZERO | Number to round 引数の値を 0 の方向に丸めます。 |
AWAYFROMZERO | Number to round 引数の値を 0 とは逆の方向に丸めます。 |
丸め方のキーワード
キーワード | 説明 |
NORMAL | Rounding method 引数を省略した場合のデフォルトのキーワードです。 一部の稀な入力値に対して NORMAL キーワードをした場合、ROUND 関数では最下位の数字で軽微な浮動小数点エラーが発生します。 |
EXACT | EXACT キーワードを使用すると、ROUND 関数では浮動小数点エラーの影響を最小限に抑えるための追加処理が実行されます。 |
計算エンジンの機能の違い
Polaris では、ROUND 関数で丸め方法として常に EXACT が使用されます。そのため、Rounding method 引数を指定することができません。Classic エンジンでは、Rounding method 引数で EXACT を指定している場合を除き、ROUND 関数で丸め方法として NORMAL が使用されます。
Polaris では、Number to round が 0 で、Number of decimal places が NaN (非数) の場合、ROUND 関数が 0 を返します。Classic エンジンでは NaN が返されます。
Polaris では、Number to round が 0 ではなく、Number of decimal places が NaN (非数) の場合、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 キーワードを使って浮動小数点エラーを最小限に抑えます。
例
一般的な例
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 |
通貨に対する ROUND の使用
外国為替では通常、為替レートに最大で小数点以下 5 桁まで使用されます。ただし、ユーロや米国ドル、ポンドなど、一部の通貨は小数点以下 2 桁の倍数でしか支払うことができません。
こちらの例では、米国ドルで支払う企業からユーロを使用する口座に支払いが行われています。列には「Transaction」リストがあり、行にはライン アイテムがあります。ライン アイテムには以下が含まれています。
- 支払い額 (米国ドル)
- 米国ドルからユーロへの詳細な為替レート (小数点以下 5 桁まで)
- 具体的な為替レートを米国ドルの金額に適用し、ROUND 関数を使って最終的な金額を小数点以下 2 桁まで切り上げて支払うための式。
Transaction 1 | Transaction 2 | Transaction 3 | Transaction 4 | Transaction 5 | |
Amount to be paid (USD) | USD 500 | USD 750 | USD 100 | USD 125 | USD 375 |
Exchange rate at time of payment | 0.84271 | 0.84037 | 0.82473 | 0.82829 | 0.85154 |
Amount paid (EUR)
| EUR 421.36 | EUR 630.28 | EUR 82.48 | EUR 103.54 | EUR 319.33 |