前回の記事ではINT関数の基本的な使い方を解説しました。今回は、INT関数の応用編として、INT関数による切り上げ、四捨五入、整数の端数処理を取り上げたいと思います。
え?INT関数は切り捨てしかできないでしょ?いいえ、できます。それでは、早速行ってみましょう。
解説を始める前に(長いので読み飛ばしても構いません)
今回解説する内容は、Excel実務に役立つかと言われれば微妙です。
その理由は、Excelには既に、切り上げ、四捨五入、整数の端数処理のためにROUND系関数が用意されているからです。無理にINT関数に固執せず、素直にROUND系関数を使用した方が実務的に無難です。
ではなぜ、INT関数による切り上げ、四捨五入、整数の端数処理を解説しようとするのか。それは、発想を柔軟にするのに適した題材だと思ったからです。
Excelには多種多様のあらゆる問題を解くために、実にたくさんの関数が用意されています。それらの関数をすべて知っていれば、鬼に金棒、Excel実務で発生するすべての問題が解けるとさえ思えてしまうほどです。
ですが、関数をたくさん覚えさえすれば万事OKなんてことは実際にはありません。なぜなら、関数には「一つの関数で一つの問題しか解けない」という特徴があるからです。
種類の異なる二つ以上の問題が複合的に絡み合った問題を解く場合、一つの関数だけでは太刀打ちできないのです。つまり、複数の関数を組み合わせる発想が必要になってきます。
また、端数処理系の関数の一つにROUND系関数が初めから用意されているお陰で、切り上げや四捨五入という問題を簡単に解くことができるわけですが、もし仮に、端数処理系の関数に切り捨て専門のINT関数しかなかった場合、INT関数の「マイナス方向に切り捨てる」という特徴を糸口に問題を解かなければいけなくなります。
Excel実務において、目的に合致する関数が見つからず、他の関数の特徴を利用して間接的に問題を解いていくことも全くのゼロではありません。
結局、何を申し上げたいかというと、関数が使える人とそうでない人の根本的な違いは、関数をどれだけ知っているかにあるのではなく、どういう発想で関数を使っているかにあるということです。
発想というのは、先述した「複数の関数を組み合わせる発想」と「関数の特徴を利用して間接的に問題を解く発想」の二つです。
この二つの発想がなければ、たとえどんなにたくさんの関数を覚えようとも、いつまで経っても本当の意味で関数が使える人にはなりません。関数をたくさん知っていることに越したことはありませんが、個々に無闇に知っているだけではただの関数マニアにしかなれません。
というわけで今回の記事の意図は、INT関数の応用テクニックを知ってもらうだけではなく、柔軟な発想で関数を使うとはどいうことなのかを事例を通して体感してもらうことでもあります。
INT関数による切り上げ
INT関数で切り上げる方法には二つあります。マイナスにする方法と0.9を加算する方法です。それぞれ解説します。
マイナスにする方法
INT関数はマイナス方向に切り捨てるので、引数がプラスであれば絶対値が小さくなるように処理され、引数がマイナスであれば絶対値が大きくなるように処理されます。
-1.3から-2へ
↓
0から遠ざかった
つまり、絶対値が大きくなった
1.3から1へ
↓
0に近づいた
つまり、絶対値が小さくなった
引数をマイナスにして、INT関数もマイナスにします。引数をマイナスにすると結果もマイナスになってしまうため、INTの前にマイナスを付けて元に戻します。
SIGN関数は、引数がプラスのときに1、ゼロのときに0、マイナスのときに-1を返してくれる関数です。引数をプラスに揃えて処理を行い、処理後に符号を元に戻します。
0.9を加算する方法
引数に0.9を加算することでも切り上げることができます。0.9を加算して整数に繰り上がるかどうかを利用して処理します。
さて、数値を1.3から1.03に変えたらどうなるでしょうか。
結果は1になります。0.9を加算しているのにもかかわらず切り上がりません。
1.03が2になるためには0.97が必要で、0.9では不足しているからです。
なので、小数第二位までの数値のときは、0.99を加算します。0.99を加算してはみ出した小数はどうせ切り捨てられますから問題ありません。小数第三位のときは0.999を加算します。以降、引数の小数点以下の桁が増えるごとに加算する数値の小数以下の桁も9で増やしていきます。
小数の桁によって加算する値を変更するのは手間がかかり現実的ではありません。数式で自動変更することも可能ですが、かなり面倒なことになります。
複雑すぎて全く実用的ではありません。
INT関数による四捨五入
0.5を加算する方法
引数に0.5を加算します。0.5を加算して整数に繰り上がるかどうかを利用して処理します。
但し、この方法では0.5が付くマイナスの数値は四捨五入にならず切り捨てられてしまいます。
上の画像の-1.5に注目すると、四捨五入にならずに-1になっています。-1.5+0.5=-1.0で小数点以下の端数が発生しないためです。
INT関数による整数の端数処理
INT関数は数値を整数に切り捨てる関数ですが、小数点の位置をずらしてあげれば整数の端数処理も可能になります。切り捨てたい整数部分を小数にして、処理後に整数に戻せばいいのです。
先述した切り上げや四捨五入の方法を組み合わせれば、整数の端数を切り上げることも四捨五入することも可能です。
まとめ
発想を変えれば、INT関数でも切り上げ、四捨五入、整数の端数処理は可能になります。
関数を使いこなすヒントになれば幸いです。
最後にちゃぶ台をひっくり返すようで申し訳ありませんが、Excelで端数処理するならROUND系関数を使いましょう。m(_ _)m