INT関数は、余りのある割り算の答え(商)を整数値で求めるときに使うことがあります。商を整数値で求める事例のうち、次の3つは特に重要なので、しっかりと練習しておいたほうが良いです。
- 一定金額を基準にしてポイントに換算する
- 複数のものをセットにする場合のセット数
- 大きい数値の上位の桁だけを取り出す
そこで今回は、INT関数の応用事例演習として、割り算の答えを整数値で求める文章問題を出題します。
目次
1.INT関数の基本
INT関数の基本についてはこちらの記事をご覧ください。
2.ポイント換算
(1)1ポイントの場合
問題
40ポイントを上限として、注文金額300円ごとに1ポイントを付与する場合、付与するポイント数を求めなさい。
解説
注文金額300円ごとに1ポイントを付与する場合、299円以下の端数に対してポイントが付与されることはありません。このように、一定の金額や基準でポイントを加算する場合、その区切りで端数が出た場合は切り捨てるのが一般的です。
300円ごとに1ポイントを付与する場合は、注文金額を300円で割ってポイント数を求め、小数点以下をINT関数で切り捨てます。
INT関数を挿入します。
注文金額を300で割ります。これでポイント数を求めることができます。
40ポイントを超えているものがあります。
上限を設定する場合は、MIN関数を使います(参考:【Excel関数】最大なのに下限のMAX、最小なのに上限のMIN)。
- =MIN(数式,上限)
MIN関数を挿入します。
40を上限とします。これで完成です。
- =MIN(INT(A2/300),40)
(2)複数ポイントの場合
問題
5回来店するごとに2ポイント(プレミアム会員は3ポイント)を付与する場合、付与するポイント数を求めなさい。
解説
5回来店するごとに2ポイントまたは3ポイントとする場合、とりあえず、2ポイントまたは3ポイントではなく、1ポイント加算するものとして考えます。
5回で1ポイントとする場合、来店回数を5で割って切り捨てます。
- =INT(A2/5)
通常会員は2ポイント、プレミアム会員は3ポイントなので、プレミアムであれば3倍、それ以外は2倍と考えます。
IF関数を掛けます(参考:【Excel】IF関数の共通部分を外に出す、ある条件のときだけ計算を追加する)。
プレミアムの場合は3倍、それ以外は2倍とします。これで完成です。
- =INT(A2/5)*IF(B2="プレミアム",3,2)
一定の金額や基準でポイントを加算する場合、1ポイントを付与するものと仮定して考えたうえで、実際に付与するポイント数を掛けます。このとき、かけるポイント数はINT関数の外側であることに注意します。
3.料金の場合はINTを使ってはいけない
問題
駐車時間30分ごとの駐車料金が150円の場合、駐車料金を求めなさい。
解説
時間超過のたびにかかる料金は、時間が1分でも超えたら料金がかかるので、端数の部分は切り捨てではなく切り上げです。
一定の金額や基準で料金を加算する場合、原則としてINT関数を使ってはいけません。
ROUNDUPを挿入します(参考:【Excel関数】ROUNDUPとROUNDDOWN、切り上げ、切り捨て、四捨五入の練習問題)。
さきほどと同じように30で割って、小数点以下を切り上げます。
150倍します。これで完成です。
4.セット数
問題
ある商品を4個セットにして箱詰めするものとする。3つの工場A、B、Kの商品在庫数が次の表のとおりであるとき、各工場で作れるセット数をそれぞれ求めなさい。
解説
複数個を1つのセットとしてカウントするとき、その端数はセットにできないので切り捨てとなります。この場合もINT関数を使います。
INT関数を挿入します。
4で割ります。これで完成です。
5.セット数の最小値
問題
部品Xを2個、部品Yを4個、部品Zを7個、あわせて13個の部品を使用して組み立てて作る製品があるとする。3つの工場A、B、Kの部品在庫数が次の表のとおりであるとき、各工場で作れる製品の個数をそれぞれ求めなさい。
解説
1つの製品を作るのに部品Xが2つ必要なのであれば、その製品数は、部品X2つをセットにした場合のセット数と同じです。
INT関数を使います。各工場の部品在庫数を、必要部品数で割ります。
- =INT(B2/$E2)
Xのセット、Yのセット、Zのセットがそれぞれあったとしても、すべてが揃わなければ製品を作ることができないので、作れる製品の数はその最小値となります。
MIN関数を挿入します。
Yのセット数・Zのセット数を求めます。
- =MIN(INT(B2/$E2),INT(B3/$E3),INT(B4/$E4))
これで完成です。
6.上位の桁を取り出す
(1)Xの位以上の桁を取り出す
問題
A列に5桁の整数を入力した。万の位から百の位までの部分を取り出しなさい。
解説
プラスの数の場合、INT関数で小数点以下の部分をなくすことができます。
この性質を利用して、小数点を動かすことによって任意の桁の右側を無くすことができます。
INT関数を挿入します。
100で割ります。これで100の位以上の桁を取り出すことができます。
- =INT(A1/100)
長い数値が入力されていて、その上の位の数字を取り出すにはINT関数を使います。
(2)10の累乗
問題
A列に数値を入力した。10万の位以上の部分を取り出しなさい。ただし、10万未満の場合は0とする。
解説
INT関数を挿入します。
10万で割ります。10万以上の場合はその部分が取り出され、10万未満の場合は0になります。
- =INT(A1/100000)
別解
10万は、10の5乗です。桁数が大きい場合は累乗で表したほうが良いです。
- =INT(A1/10^5)
5乗は10万についている0の個数であると同時に、切り捨てた桁数でもあります。
7.年月日
問題
A列に8桁の数値で表される年月日を入力した。年月の6桁を取り出しなさい。また、年度を4桁で求めなさい。
解説
先頭の6桁を取り出すのは、百の位以上の部分を取り出すのと同じですから、100で割ればよいです。INT関数を挿入します。
100で割ります。これで完成です。
4月から始まる年度の場合、1月から3月までの場合は前の年となります。ここで、さきほど取り出した6桁の数値から4を引きます。
下2桁が01、02、03の場合、4を引くことによって繰り下がりとなり、上4桁の数が1だけ少なくなります。下2桁が04~12の場合は4を引いても繰り下がりにならないため、上4桁は変わりません。これで上4桁が年度になります。
INT関数を挿入します。
4を引いて100で割ります。これで完成です。
- =INT((B2-4)/100)
別解
元の8桁の数値から400を引きます。
下4桁が0101~0331の場合、下4桁が400未満なので400を引くことによって繰り下がりとなり、上4桁の数が1だけ少なくなります。下4桁が0401~1231の場合は400を引いても繰り下がりにならないため、上4桁は変わりません。これで上4桁が年度になります。
INT関数を挿入します。
400を引いて、10000で割ります。これで完成です。
- =INT((A2-400)/10000)
8桁の年月日から年度を求めるには400を引いてから、10000で割って切り捨てることによって、上の4桁を取り出します。
解説は以上です。