【Excel関数】INT関数の使い方 2/2 応用編:小数点以下の端数切り上げ、四捨五入、整数の端数処理

Excel関数

前回の記事ではINT関数の基本的な使い方を解説しました。今回は、INT関数の応用編として、INT関数による切り上げ、四捨五入、整数の端数処理を取り上げたいと思います。
え?INT関数は切り捨てしかできないでしょ?いいえ、できます。それでは、早速行ってみましょう。

解説を始める前に(長いので読み飛ばしても構いません)

今回解説する内容は、Excel実務に役立つかと言われれば微妙です。

 

その理由は、Excelには既に、切り上げ、四捨五入、整数の端数処理のためにROUND系関数が用意されているからです。無理にINT関数に固執せず、素直にROUND系関数を使用した方が実務的に無難です。

 

ではなぜ、INT関数による切り上げ、四捨五入、整数の端数処理を解説しようとするのか。それは、発想を柔軟にするのに適した題材だと思ったからです。

 

Excelには多種多様のあらゆる問題を解くために、実にたくさんの関数が用意されています。それらの関数をすべて知っていれば、鬼に金棒、Excel実務で発生するすべての問題が解けるとさえ思えてしまうほどです。

 

ですが、関数をたくさん覚えさえすれば万事OKなんてことは実際にはありません。なぜなら、関数には「一つの関数で一つの問題しか解けない」という特徴があるからです。

 

種類の異なる二つ以上の問題が複合的に絡み合った問題を解く場合、一つの関数だけでは太刀打ちできないのです。つまり、複数の関数を組み合わせる発想が必要になってきます。

 

また、端数処理系の関数の一つにROUND系関数が初めから用意されているお陰で、切り上げや四捨五入という問題を簡単に解くことができるわけですが、もし仮に、端数処理系の関数に切り捨て専門のINT関数しかなかった場合、INT関数の「マイナス方向に切り捨てる」という特徴を糸口に問題を解かなければいけなくなります。

 

Excel実務において、目的に合致する関数が見つからず、他の関数の特徴を利用して間接的に問題を解いていくことも全くのゼロではありません。

 

結局、何を申し上げたいかというと、関数が使える人とそうでない人の根本的な違いは、関数をどれだけ知っているかにあるのではなく、どういう発想で関数を使っているかにあるということです。

 

発想というのは、先述した「複数の関数を組み合わせる発想」と「関数の特徴を利用して間接的に問題を解く発想」の二つです。

 

この二つの発想がなければ、たとえどんなにたくさんの関数を覚えようとも、いつまで経っても本当の意味で関数が使える人にはなりません。関数をたくさん知っていることに越したことはありませんが、個々に無闇に知っているだけではただの関数マニアにしかなれません。

 

というわけで今回の記事の意図は、INT関数の応用テクニックを知ってもらうだけではなく、柔軟な発想で関数を使うとはどいうことなのかを事例を通して体感してもらうことでもあります。

INT関数による切り上げ

INT関数で切り上げる方法には二つあります。マイナスにする方法と0.9を加算する方法です。それぞれ解説します。

マイナスにする方法

INT関数はマイナス方向に切り捨てるので、引数がプラスであれば絶対値が小さくなるように処理され、引数がマイナスであれば絶対値が大きくなるように処理されます。

 

絶対値とは、0からどれだけ離れているかを表した数値。
 

 

-1.3から-2へ

0から遠ざかった

つまり、絶対値が大きくなった

 

1.3から1へ

0に近づいた

つまり、絶対値が小さくなった

 
この特徴を利用すれば、マイナスにするだけで切り上げることができます。
 
式:-INT(-引数)

 

引数をマイナスにして、INT関数もマイナスにします。引数をマイナスにすると結果もマイナスになってしまうため、INTの前にマイナスを付けて元に戻します。

 

INT関数 応用編1.png

 

元の数値がマイナスの場合、絶対値が小さくなるように処理されるので、マイナスの数値を取り扱う際には注意が必要です。
 
 
SIGN関数を組み合わせれば、元の数値がマイナスのときに絶対値が小さく処理されることを回避できます。
 
式:-INT(-引数*SIGN(引数))*SIGN(引数)

 

SIGN関数は、引数がプラスのときに1、ゼロのときに0、マイナスのときに-1を返してくれる関数です。引数をプラスに揃えて処理を行い、処理後に符号を元に戻します。

 

INT関数 応用編2.png

 

 
ちなみに、INT(引数*SIGN(引数))*SIGN(引数)と入力すると、絶対値が小さく処理される切り捨てになります。

 

INT関数 応用編3.png

0.9を加算する方法

引数に0.9を加算することでも切り上げることができます。0.9を加算して整数に繰り上がるかどうかを利用して処理します。

 

式:INT(引数+0.9)

 

INT関数 応用編4.png

 

但し、この方法もマイナスにする方法と同様、元の数値がマイナスの場合、絶対値が小さくなるように処理されます。マイナスの数値を取り扱う際には注意が必要です。
 
 
SIGN関数を組み合わせれば、元の数値がマイナスのときに絶対値が小さく処理されることを回避できます。
 
式:INT(引数*SIGN(引数)+0.9)*SIGN(引数)

 

INT関数 応用編5.png

 

さて、数値を1.3から1.03に変えたらどうなるでしょうか。

 

INT関数 応用編6.png

 

結果は1になります。0.9を加算しているのにもかかわらず切り上がりません。

 

1.03が2になるためには0.97が必要で、0.9では不足しているからです。

なので、小数第二位までの数値のときは、0.99を加算します。0.99を加算してはみ出した小数はどうせ切り捨てられますから問題ありません。小数第三位のときは0.999を加算します。以降、引数の小数点以下の桁が増えるごとに加算する数値の小数以下の桁も9で増やしていきます。

 

INT関数 応用編7.png

 

小数の桁によって加算する値を変更するのは手間がかかり現実的ではありません。数式で自動変更することも可能ですが、かなり面倒なことになります。

 

INT関数 応用編8.png

 

複雑すぎて全く実用的ではありません。

INT関数による四捨五入

0.5を加算する方法

引数に0.5を加算します。0.5を加算して整数に繰り上がるかどうかを利用して処理します。

 

式:INT(引数+0.5)
 

INT関数 応用編9.png

 

但し、この方法では0.5が付くマイナスの数値は四捨五入にならず切り捨てられてしまいます。

 

上の画像の-1.5に注目すると、四捨五入にならずに-1になっています。-1.5+0.5=-1.0で小数点以下の端数が発生しないためです。

 

0.5が付くマイナスの数値のみ、通常の四捨五入とは違った処理結果になります。マイナスの数値を取り扱う際には注意が必要です。
 
 
SIGN関数を組み合わせれば、0.5が付くマイナスの数値でも通常の四捨五入になります。
 
式:INT(引数*SIGN(引数)+0.5)*SIGN(引数)

 

INT関数 応用編10.png

INT関数による整数の端数処理

INT関数は数値を整数に切り捨てる関数ですが、小数点の位置をずらしてあげれば整数の端数処理も可能になります。切り捨てたい整数部分を小数にして、処理後に整数に戻せばいいのです。

 

INT関数 応用編11.png

 

先述した切り上げや四捨五入の方法を組み合わせれば、整数の端数を切り上げることも四捨五入することも可能です。

 

INT関数 応用編12.png

まとめ

発想を変えれば、INT関数でも切り上げ、四捨五入、整数の端数処理は可能になります。

関数を使いこなすヒントになれば幸いです。

 

最後にちゃぶ台をひっくり返すようで申し訳ありませんが、Excelで端数処理するならROUND系関数を使いましょう。m(_ _)m

 

連載記事【Excel関数】INT関数の使い方 1/2 基本編:小数点以下の端数切り捨て

タイトルとURLをコピーしました