数値を除数で割ったときの剰余を返します。 戻り値は除数と同じ符号になります。正の数の3で割ったときのあまりに-1が使えないということです。なのでエクセル関数に反抗するのもいささか大変なので長いものには巻かれまして商とあまりの計算は 商はINT関数を使う。あまりはMOD関数を使う ということにしておきましょう。 では、確認です。今度は割る数を負の数にしてみます。-3で割ってみます。
商はINT関数を使う。あまりはMOD関数を使うということでE列とH列で確認します。
10 ÷ -3 =-4あまり-2 検算 -3 × -4 -2= 10
-10 ÷ -3 = 3あまり-1 検算 -3 × 3 -1= -10
正しい結果が表示されているようです。余りの表示を文字列結合の&を使って
=INT(A2/B2)&"あまり"&MOD(A2,B2)
としてあげればいいと思います。ただどうしても10の中に符号が変わるだけで商の絶対値
-10 ÷ 3 =-3あまり2
-10 ÷ 3 =-4あまり2
3と4が気持ち悪いという方にはMOD関数を使わずに計算する方法で対応してください。(数学的のどちらが正しいのかはわかりません。)
INT関数の代わりにTRUNC関数(ROUNDDOWN関数でもQUOTIENT関数でも同じですが)を使います。個人的にはQUOTIENT関数のほうがそれらしい気もしますが、エクセルのバージョンによっては面倒なことになるかもです。
余りは割られる数から(割る数×商)を引いて計算します。
=TRUNC(A2/B2,0)&"あまり"&A2-(B2*TRUNC(A2/B2,0))
もありかもしれません。
それぞれのセルには以下の数値、数式が入っています。
A2 10
B2 3
C2 =A2/B2
D2 =ROUNDDOWN(A2/B2,0)
E2 =INT(A2/B2)
F2 =TRUNC(A2/B2,0)
G2 =QUOTIENT(A2,B2)
ROUNDDOWN関数、INT関数、TRUNC関数、QUOTIENT関数いずれも同じ答えが出ています。(FLOOR関数忘れてましたね。
INT関数だけが答えが違うところがあります。被除数がマイナスになってからほかの関数と答えが違ってきましたね。
では、商の部分はINT関数を使うかそれ以外の関数を使うかということで先にあまりに進みます。
MOD関数(
H列にあまりを計算する数式
=MOD(A2,B2)
を入力しました。
余りが規則正しく繰り返されていますね。
これで答えが出たようです。検算しますね。2行目は10を3で割ったら何あまり何ですか。ということなので
10 ÷ 3 = 3あまり1
10割る3は3あまり1ですね。割る数の3と商である3を掛けて余りの1を足してあげれば10になりますよね。ほかの行、割られる数が負の場合を見てみましょう。被除数がマイナスの時はINT関数の答えはほかの関数の答えと違っていましたね。
被除数が-10の時を見てください。
-10 ÷ 3 =-3あまり2
-10 ÷ 3 =-4あまり2
の2通りの答えが出ているように思います。どちらが正しいのでしょうか
-10 ÷ 3 =-3あまり2 検算 3 × -3 +2 = -7
-10 ÷ 3 =-4あまり2 検算 3 × -4 +2 = -10
なので-10 ÷ 3 = は-4 あまり 2 となります。なんかしっくりこないような気がします。計算結果はあってますが、-10 の中に 3 がマイナス4回あるのか?ってとこですよね。日常の感覚から言えば-10 の中に 3 がマイナス3回あるので 3 × -3で-9になり、あと-1を足してあげればいいと思いますね。
-10 ÷ 3 =-3あまり-1 検算 3 × -3 -1 = -10
これが納得いきそうな答えに思えます。ということはMOD関数がおかいしいのでは?巻子のヘルプには以下のように書かれています。
