Home丸め方の基礎最近接丸め五捨六入エクセル関数五捨五超入銀行丸め

1. 五捨五超入(小数部で場合分け)

1. 小数部で場合分け
2. 減算して切り上げ
3. 床・天井関数の変換
4. 天井関数の分解
5. 反復丸め

丸めのための関数

実数 x に対して,切り捨て,切り上げ,四捨五入,五捨五超入をする関数を F(x),C(x),R(x),Ř(x) とする。 \begin{align*} &F(x)=\begin{cases} \lfloor x\rfloor &x\ge 0\\\lceil x\rceil &x\le 0 \end{cases} &&C(x)=\begin{cases} \lceil x\rceil &x\ge 0\\\lfloor x\rfloor &x\le 0 \end{cases} \\ &R(x)=\begin{cases} \lfloor x+0.5\rfloor &x>-0.5\\\lceil x-0.5\rceil &x<0.5 \end{cases} &&\check{R}(x)=\begin{cases} \lceil x-0.5\rceil &x>-0.5\\\lfloor x+0.5\rfloor &x<0.5 \end{cases} \end{align*} 丸めの幅を d>0 として,切り捨て,切り上げ,四捨五入,五捨五超入をする関数を Fd(x),Cd(x),Rd(x),Řd(x) とする。 \begin{align*} &F^d(x)=F(x\div d)\times d,\qquad &&C^d(x)=C(x\div d)\times d \\ &R^d(x)=R(x\div d)\times d,\qquad &&\check{R}{}^d(x)=\check{R}(x\div d)\times d \end{align*}

小数部で場合分けする方法

非負の実数 x に対して,整数部を Int(x)=⌊x⌋,小数部を Frac(x)=x−⌊x⌋ とする。 五捨五超入をすると,x の小数部が0.5以下なら切り捨て,0.5超なら切り上げられる。 \[ \begin{cases} \lfloor x\rfloor &\text{Frac}(x)\le 0.5 \\ \lceil x\rceil &\text{Frac}(x)>0.5 \end{cases} \] 非負の数値に対して,次のEXCEL数式で五捨五超入をすることができる。

=IF(MOD(数値,1)<=0.5,FLOOR(数値,1),CEILING(数値,1))
=IF(MOD(数値,1)<=0.5,ROUNDDOWN(数値,0),ROUNDUP(数値,0))
負数を含む任意の実数 x に対して,整数部を Int(x)=F(x),小数部を Frac(x)=x−F(x) とする。 丸めの幅を d として五捨五超入をすると,x÷d の小数部が0.5以下なら切り捨て,0.5超なら切り上げられる。 \begin{equation} \check{R}^d(x)=\begin{cases} F^d(x) &|\text{Frac}(x\div d)|\le 0.5 \\ C^d(x) &|\text{Frac}(x\div d)|>0.5 \end{cases} \end{equation} 負数を含む任意の数値に対して,1000ごとに五捨五超入をする場合は,基準値=1000 または 桁数=−3 とする。
=IF(ABS(数値/1000−TRUNC(数値/1000))<=0.5,
  FLOOR.MATH(数値,1000,1),CEILING.MATH(数値,1000,1))
=IF(ABS(数値/1000−TRUNC(数値/1000))<=0.5,
  ROUNDDOWN(数値,−3),ROUNDUP(数値,−3))

次のページへ

1 2 3 4 5 Next

2. 五捨五超入(減算して切り上げ)

1. 小数部で場合分け
2. 減算して切り上げ
3. 床・天井関数の変換
4. 天井関数の分解
5. 反復丸め

ずらして切り上げる方法

非負の実数 x に対して,五捨五超入は天井関数で表すことができる。 \[ \lceil x-0.5\rceil \] 非負の数値に対して,次のEXCEL数式で五捨五超入をすることができる。

=CEILING.MATH(数値−0.5,1)
=MAX(0,ROUNDUP(数値−0.5,0))

次のように変形できるから, \[ \lceil x-0.5\rceil =\lceil x-0.5+1\rceil -1 =\lceil x+0.5\rceil -1 \] 非負の数値に対して,次のEXCEL数式で五捨五超入をすることができる。

=ROUNDUP(数値+0.5,0)−1
=CEILING(数値+0.5,1)−1

負数を含む任意の実数を丸める場合は,絶対値を丸めて符号を付ければよい。 \[ -34.5\xrightarrow{符号反転}34.5\xrightarrow{五捨五超入}34\xrightarrow{符号反転}-34 \] 負数を含む任意の数値に対して,1000ごとに五捨五超入をする場合は,基準値=1000 または 桁数=−3 とする。

=SIGN(数値)∗CEILING.MATH(ABS(数値)−500,1000)
=SIGN(数値)∗MAX(0,ROUNDUP(ABS(数値)−500,−3))
=SIGN(数値)∗(CEILING(ABS(数値)+500,1000)−1000)

次のページへ

1 2 3 4 5 Next

3. 五捨五超入(床・天井関数の変換)

1. 小数部で場合分け
2. 減算して切り上げ
3. 床・天井関数の変換
4. 天井関数の分解
5. 反復丸め

床関数・天井関数を相互に変換する方法

全体をAとBのふたつの部分に分け,Aの割合が 34.5% とすると,Bの割合は 65.5% になる。 Aの割合 34.5% を五捨五超入すると 34% になり,残りのBの割合は 65.5% から 66% に丸められる。 Bの割合の丸め方は四捨五入になっている。 \[ 34.5\xrightarrow{五捨五超入}34,\qquad 100-34.5\xrightarrow{四捨五入}100-34 \] あらかじめ上限(100% 等)が分かっている数値を五捨五超入するには,数値の補完部分を求めて四捨五入し,再び補完部分を求めればよい。 \[ 34.5\xrightarrow{補完部分}100-34.5\xrightarrow{四捨五入}100-34\xrightarrow{補完部分}34 \] 一般に ⌈x⌉=−⌊−x⌋ が成り立つから, 五捨五超入を四捨五入で表すことができる。Zは十分大きい整数とする。 \[ \lceil x-0.5\rceil =-\lfloor -x+0.5\rfloor =Z-\lfloor Z-x+0.5\rfloor \] 非負の数値に対して,次のEXCEL数式で五捨五超入をすることができる。 1000000 は十分大きい整数に置き換えてもよい。

=1000000−ROUND(1000000−数値,桁数)
負数を含む任意の数値に対して,次のEXCEL数式で五捨五超入をすることができる。 上のEXCEL数式において,1000000 を ROUNDUP(数値,桁数) または ROUND(数値,桁数) に置き換えたものである。
=ROUND(数値,桁数)−ROUND(ROUND(数値,桁数)−数値,桁数)

次のページへ

1 2 3 4 5 Next

4. 五捨五超入(天井関数の分解)

1. 小数部で場合分け
2. 減算して切り上げ
3. 床・天井関数の変換
4. 天井関数の分解
5. 反復丸め

天井関数の分解

床関数 ⌊x⌋ や ⌊x+0.5⌋ の値は,x が1増加するごとに1ずつ増加するのに対して, 床関数 ⌊2x⌋ の値は,x が0.5増加するごとに1ずつ増加する。 区間 [0.0, 0.5) は 0.0≤x<0.5 を満たす実数 x の集まりである。

xの範囲⌊x⌋⌊x+0.5⌋⌊2x⌋
[0.0, 0.5)0+0=0
[0.5, 1.0)0+1=1
[1.0, 1.5)1+1=2
[1.5, 2.0)1+2=3

天井関数 ⌈x⌉ や ⌈x−0.5⌉ の値は,x が1増加するごとに1ずつ増加するのに対して, 天井関数 ⌈2x⌉ の値は,x が0.5増加するごとに1ずつ増加する。 区間 (0.0, 0.5] は 0.0<x≤0.5 を満たす実数 x の集まりである。

xの範囲⌈x⌉⌈x−0.5⌉⌈2x⌉
(0.0, 0.5]1+0=1
(0.5, 1.0]1+1=2
(1.0, 1.5]2+1=3
(1.5, 2.0]2+2=4

床関数 ⌊2x⌋ や天井関数 ⌈2x⌉ について,次の性質が成り立つことから, \begin{gather*} \lfloor x\rfloor+\lfloor x+0.5\rfloor =\lfloor 2x\rfloor,\qquad \lfloor x+0.5\rfloor =\lfloor 2x\rfloor -\lfloor x\rfloor \\ \lceil x\rceil+\lceil x-0.5\rceil =\lceil 2x\rceil,\qquad \lceil x-0.5\rceil =\lceil 2x\rceil -\lceil x\rceil \end{gather*} 五捨五超入 Ř は切り上げ C の差で表現できる。 \[ \check{R}(x)=C(2x)-C(x) \] 負数を含む任意の数値に対して,次のEXCEL数式で五捨五超入をすることができる。

=ROUNDUP(数値∗2,桁数)−ROUNDUP(数値,桁数)

次のページへ

1 2 3 4 5 Next

5. 五捨五超入(反復丸め)

1. 小数部で場合分け
2. 減算して切り上げ
3. 床・天井関数の変換
4. 天井関数の分解
5. 反復丸め

繰り返し丸める方法

丸めの幅を0.5として切り上げ,その結果を丸めの幅を1として切り捨てると,五捨五超入になる。

xの範囲切り上げ(0.5)切り捨て(1)
(−0.5, 0.0]→ 0.0→ 0
(0.0, 0.5]→ 0.5→ 0
(0.5, 1.0]→ 1.0→ 1
(1.0, 1.5]→ 1.5→ 1

五捨五超入は,切り上げと切り捨ての繰り返しで表現できる。 \[ \check{R}{}^1(x)=F^1(C^{0.5}(x)),\qquad \check{R}{}^1=F^1C^{0.5} \] 負数を含む任意の数値に対して,次のEXCEL数式で五捨五超入をすることができる。

=ROUNDDOWN(ROUNDUP(数値∗2,桁数)/2,桁数)
=FLOOR.MATH(CEILING.MATH(数値,基準値/2,1),基準値,1)
1000ごとに五捨五超入をするときは,基準値=1000 または 桁数=−3 とする。
=ROUNDDOWN(ROUNDUP(数値∗2,−3)/2,-3)
=FLOOR.MATH(CEILING.MATH(数値,500,1),1000,1)

最後のページです

1 2 3 4 5 Home

エクセル関数による五捨五超入

Home丸め方の基礎最近接丸め五捨六入エクセル関数五捨五超入銀行丸め

2012.12.24 作成 / 2020.4.23 更新

Home › エクセル関数による五捨五超入