MOD関数は、割り算をした時の余り(剰余)を求める関数です。余りのある割り算は小学校の算数で習いますが、正確に覚えている人は少ないと思います。また、日常生活において「余りを求めなさい」と言われる機会も少ないと思います。
ところで、余りのある割り算は通常、プラスの数をプラスの数で割ったときの余りを求めますが、マイナスの数の場合も定義することは可能です(ただし、言語やソフトによって扱いは異なる)。ExcelのMOD関数は、マイクロソフトの仕様により、
- 除数(割る数)と余りの符号は一致する
- 余りは、被除数(割られる数)から「除数*商」を引く
とされています。
そこで、今回はMOD関数の基本として、余りのある割り算を復習しながら、MOD関数の使い方、INT関数との違い、INT関数との関係、マイナスの場合の余りについて出題します。
目次
1.MOD関数の基本(剰余)
問題
A列に1万円未満の金額を入力した。この金額を千円札と硬貨で支払うとき、千円札の枚数と硬貨の金額を求めなさい。
解説
1000円札の枚数は、1000円を1枚としてカウントするので、INT関数を使います(参考:【Excel】INT関数で割り算の答えを整数値で求めることを利用した応用問題)。
INT関数を挿入します。1000で割ります。
1000円札で支払うことができないのは、1000円で割ったときの余りの金額です。
MOD関数は割り算をした時の余りを求める関数です。余りのことを、剰余(じょうよ)ということもあります。MOD関数は必ず、割られる数と割る数の2つを指定します。
例えば、9430を1000で割ったときの余りは、MOD(9430,1000)と記述します。
MOD関数を挿入します。
金額を1000で割ったときの余りを求めます。
これで完成です。
2.INTとMODの違い、INTとMODの関係
問題
さきほどの問題で、A列の金額を2996円~3005円とした。INT関数は引数が1つであるのに対し、MOD関数が引数が2つである理由を述べなさい。また、この表を見てMOD関数の特徴を述べなさい。
解説
2996を1000で割ったときの商は2、余りは996です。
割り算をしたときの商は通常、INT関数を使って求め、余りはMOD関数で求めます。INT関数はセルA2を1000で割っていますが、MOD関数はセルA2と1000をカンマで区切っています。
- =INT(A2/1000)
- =MOD(A2,1000)
INT関数はもともと小数点以下を切り捨てる関数であって、INT関数の中身は割り算である必要はありません。掛け算であっても、その答えが小数であればその小数部分を切り捨てます。
INT関数は、答えが小数となる計算式を引数として指定します。
これに対してMOD関数は割り算をした時の余りを求める関数であり、掛け算で余りが出てくることはありません。MOD関数を使う時点で、割り算であることが分かっているため、割られる数と割る数の2つを引数として指定します。
金額が増えると、INT関数は増えるのに対して、MOD関数は999円の次が0円になっています。元の金額が増えると、支払うのに必要な千円札の枚数は増えます。
しかし、1000円以上の金額は紙幣で支払うことができるため、硬貨は999円以下になります。
MOD関数で求められる余りは、必ず0以上であり、割る数として指定した値より小さくなります。=MOD(A2,1000)の場合は、0以上1000未満となります。
ところで、元の金額から枚数の1000倍を引くとMOD関数で求めた値と一致します。
- =A2-1000*B2
MOD関数は、割られる数から、INT×割る数を引いた数と一致します。
3.0を割ったときの余り
問題
MOD関数の割られる数を「0」にすると答えはいくつになるか。
解説
さきほどの問題で元の金額を0にすると余りは0になります。
MOD関数で割られる数を0にすると、割り算の答えは0であり、元の数が0であれば余るものも無いので、余りも0になります。
4.割られる数<割る数の場合
問題
MOD関数の割られる数を、割る数より小さくすると答えはいくつになるか。
解説
さきほどの問題で元の金額を1000円未満にすると、1000円札で支払うことはできないので枚数は0枚となり、支払うことができなかった金額(=余り)は、元の金額と一致します。
元の数が割る数より小さければ、割り算の答えは0となり、元の数がそのまま余りとなります。
5.マイナスの数を割ったときの余り
(1)割られる数をマイナスにした場合
問題
A列に1万円未満の金額をマイナスで入力した。この金額を1000で割ったときの商と余りを求めなさい。
解説
INT関数を挿入します。
- =INT(A2/1000)
-3500を1000で割ると、小数の-3.5となりますが、INT関数によって-3.5を超えない最大の整数となるので、-4となります(参考:【Excel】INT関数の入力と修正、元の数を超えない最大の整数とは何か)。
MOD関数を挿入します。-3500を1000で割ったときの余りは、500となります。
- =MOD(A2,1000)
1000円札4枚を出した時のお釣りが500円です。
元の金額から枚数の1000倍を引くとMOD関数で求めた値と一致します。MOD関数は、元の数から、INT×割る数を引いた数と一致します。
3500は3000と4000の間の数なので、3500より小さい3000のほうを考えて余りを500とします。-3500は、-4000と-3000の間の数なので、-3500より小さい-4000のほうを考えて余りを500とします。
MOD関数で求められる余りは、必ず0以上、割る数未満になります。割られる数がプラスかマイナスかを問いません。
1000で割ったときの余りは、元の数がプラスかマイナスかにかかわらず、必ず0以上1000未満となります。
(2)割る数がマイナスの場合
(注)割る数をマイナスにすることはめったにありませんので、そんなに気にする必要はありません。MOD関数の仕様ということで簡単に説明しておきます。
問題
さきほどの問題で、-1000で割ったときの商と余りを求めなさい。
解説
割る数をマイナスにします。マイナスをマイナスで割っているので、答えはプラスになります。
- =INT(A2/-1000)
MOD関数は割り切れる場合を除いてマイナスになります。
-3500を-1000で割ると小数の3.5となり、切り捨てで3となります。
MOD関数の値は、割られる数から、INTかける割る数を引いた数と一致します。-3500を-1000の3倍を引くと-500となりますから、余りは-500となります。
割る数がプラスの時、余りもプラスになります。割る数をマイナスにすると、余りもマイナスになります。
解説は以上です。