INT関数は、整数値=Integerにする関数であり、小数点以下があればそれを切り捨てるものです。「=INT()」で囲むだけなので手軽に使えます。
ところが、INT関数で小数点以下を切り捨てにできるのは「0以上の数」だけです。マイナスの数は単なる切り捨てではありません。それは、INT関数が「元の数を超えない最大の整数」を返すからです。数学的にも「整数部分」とは元の数を超えない最大の整数であると定義されています。そうすることによって、規則性を保つことができるのです(詳しくは後述)。
そこで今回は、INT関数の入力と修正の練習、切り捨てのタイミングによる違い、マイナスの数とINT関数の関係など、INT関数の基本について出題します。
目次
1.INT関数の直接入力
(1)消費税の切り捨て
問題
各商品の税抜単価に10%の消費税を加算して税込単価を求め、個数を掛けて小計を求めなさい。ただし、INT関数を用いて、税込単価の小数点以下を切り捨てなさい。
解説
税抜単価に10%の消費税を加算するため、1.1倍します。小数になります。
- =B2*1.1
元の数値の1の位が0でない場合、0.1倍すると小数第1位になるため、小数となります。
INT関数は小数点以下を切り捨てて、整数にする関数です(参考:Excel関数の使い方と入れ子の基本を習得するのに最初に特訓すべきことは何か)。INT関数で囲むことによって小数点以下を無くすことができます。
INT関数で囲みます。
これで整数値になります。
整数と整数を掛けると整数になるため、小数点以下の切り捨ては不要です。
別解
はじめから小数点以下切り捨てであることが分かっている場合は、先にINT関数を挿入します。
INT関数の中に数式を記述します。これで完成です。
(2)切り捨てるタイミングによって合計が変わる
問題
設問(1)の小数点以下の端数について、税込単価を切り捨てするのと、各商品の小計を切り捨てするのと、総合計を切り捨てするのは同じと言えるか。
解説
総合計を求めます。16680となります。
1円未満の端数を何倍かすると、1円以上となることがあります。
そのため、掛け算をする前の値を切り捨てするとの、掛け算をした後の値を切り捨てするのでは異なる値となることがあります。
税込価格は小数のままで、小計を切り捨てにします。INT関数を挿入します。
総合計は16693となります。税込価格の端数と個数を掛け算した分だけ総合計が多くなります。
ところで、税込単価と小計の小数点以下を切り捨てにしなければ、総合計も小数になります。
関数の答えが小数で、その小数部分を切り捨てたいときは、その関数をINT関数で囲みます。このとき、最後のカッコを忘れてはいけません。
INT関数を挿入します。
これで完成です。16695となります。
足し算や掛け算を何回か行う途中のどこで切り捨てをするかによって、最後の総合計が変わります。消費税を計算するときにはどの段階で切り捨てをするのかを事前に確認し、どれか1つの方法に決定しておく必要があります(参考:Excelの関数で消費税抜き価格を10%の税込価格に変更する方法と端数処理【切り上げ・切り捨て】)。
2.INT関数の式を修正する
問題
(1)各商品の税抜単価に10%の消費税を加算して、さらに個数を掛けて小計を求めなさい。ただし、小数点以下を切り捨てなさい。
(2)設問(1)で「小計が少し大きいのではないか?」との指摘があった。何が原因と考えられるか。
解説
税抜単価を1.1倍して、さらに個数を掛けます。小数になります。
- =B2*1.1*C2
この小数点以下を切り捨てるため、INT関数を挿入します。これで完成です。
- =INT(B2*1.1*C2)
ここで、C2を掛ける計算を、INT関数の外側にします。
- =INT(B2*1.1)*C2
答えが変わります。
1.1倍をした時点で小数点以下がありますから、個数を掛けた後に小数点以下を切り捨てると、小計は大きくなります。
このように、INT関数の前後に計算を追加することができます。
そして、INTの中で掛け算する場合と外で掛け算する場合では計算結果が異なることがあることに注意します。どちらを採用するかは事前に確認し、どちらか1つの方法に決定しておく必要があります。
3.マイナスの数の場合
(1)元の数を超えない最大の整数とは何か
問題
INT関数を用いて、A列の数値の小数点以下を切り捨てると、マイナスの場合はどうなるか。また、このようになる理由を述べなさい。
解説
INT関数を挿入します。A列の数値を参照します。小数点以下が無くなって整数値になります。
プラスの数の場合は1の位と同じ整数値になっています。マイナスの場合も整数になりますが、1の位の値と異なる値になっています。
プラスの小数の場合、小数部分を切り捨てることによって、その数より小さい整数値になります。例えば、4.5より4のほうが小さいです。
4.5より小さい整数は無限にあります。
これらの整数の中で最大のものは4です。これを「4.5を超えない最大の整数」といいます。超えないとは以下と同じなので、4.5以下の整数で最大のものでもあります。
いっぱんに、元の数以下の整数の中で最大のものを「元の数を超えない最大の整数」と言います。元の数が小数の場合はそれよりも小さい整数の中で最大のもの、つまり直近の整数ということになります。
INT関数は、正確には「元の数を超えない最大の整数」を求める関数です。4.5を超えない整数の中で最大のものは4です。プラスの小数の場合、小数点以下を無くすことによって求めることができます。
ところが、マイナスの数の場合は大小関係が逆になります。-4.5より-4のほうが大きいので、元の数を超えています。このように、マイナスの数の場合は小数点以下を無くすと元の数より大きくなるため、「元の数を超えない最大の整数」にはなりません。
-4.5より小さい整数は無限にありますが、これらの整数の中で最大のものは-5です。これが「元の数を超えない最大の整数」です。
マイナスの数の場合、INT関数は小数点以下を無くすだけでなく、その整数より1小さい整数を返します。
(2)元の数が整数の場合
問題
さきほどの設問(1)で、B列の数値をINT関数で切り捨てなさい。
解説
B列の数値を、INT関数で切り捨てをします。プラスの数もマイナスの数も変わりません。
元の数が整数の場合は、プラスの数もマイナスの数も元の数を返します。-4は、-4自身を超えていないので、-4を超えない最大の整数は-4です。
(3)マイナスの数の小数点以下を無くす
問題
マイナスの場合も小数点以下を無くすにはどうすればよいか。また、このような処理は規則的と言えるか。
解説
INT関数ではなく、ROUNDDOWN関数を用いて切り捨てをします。桁数は0です(参考:【Excel関数】ROUNDUPとROUNDDOWN、切り上げ、切り捨て、四捨五入の練習問題)。
- =ROUNDDOWN(A1,0)
ROUNDDOWN関数は指定した桁数の左側を取り出し、右側を無くします。そのため、INT関数とは異なり、マイナスの数が、小数点以下を無くした整数値になります。
その結果、+0.5も-0.5も小数点以下がなくなり0になります。
INT関数の場合は、常に元の数より小さい整数を返すので、規則的であることが分かります。ROUNDDOWNの場合は、-1から1までの数が0となるため、この部分だけ不規則になります。グラフにすると、ROUNDDOWNの場合はずれていることが分かります。
4.マイナスの場所によって答えが変わる
問題
セルB1の値の10%をマイナスで表示したい。小数点以下を切り捨てる場合、INT関数の内側にマイナスをつけるのと、外側にマイナスをつけるのは同じと言えるか。
- =INT(-B1*10%)
- =-INT(B1*10%)
解説
セルB1の値の10%を求め、その先頭にマイナスをつけます。-1234.5となります。
- =-B1*10%
この数式をINT関数で囲みます。マイナスの数なので-1235となります。
ところが、先頭にマイナスを残して、INT関数で囲むと-1234となります。
それは、カッコの中を計算するとプラスの1234.5であり、それを切り捨ててからマイナスをつけているからです。
このように、INT関数の中をマイナスにするか、外にマイナスをつけるかによって結果が異なりますので注意が必要です。
解説は以上です。