商とあまり 負の数の除算

商とあまりを1つのセルに1発で表示する関数は残念ながらありません。

商とあまりを個別に計算して1つのセルに表示するしかないと思います。まずは、商の部分を計算してみます。

10割る3を計算すると答えは3.33333333という循環小数になります。今回は余りを出しますので小数点以下不要です。

使える関数としては
ROUNDDOWN関数、INT関数、TRUNC関数、QUOTIENT関数なんかが挙げられると思います。私の環境では、QUOTIENT関数がそのまま使えましたが開発タブを表示しないと、QUOTIENT関数は使えないかもしれません。

QUOTIENT関数は除算の商の整数部を返します。 商の余り (小数部) を切り捨てる場合に、この関数を使用します。
ROUNDDOWN関数は数値を指定された桁数で切り捨てます。
INT関数は指定された数値を最も近い整数に切り捨てます。
TRUNC関数は数値の小数部を切り捨てて、整数または指定した桁数に変換します。

ではエクセルで実際に比べてみたいと思います。

それぞれのセルには以下の数値、数式が入っています。

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関数忘れてましたね。時間計算3 FLOOR 関数四捨五入、切り上げ、切り捨て ROUND関数 ROUNDDOWN関数 ROUNDUP関数 TRUNC関数 INT関数

この表の割られる数(被除数)を9,8,7と減らしてみます。

INT関数だけが答えが違うところがあります。被除数がマイナスになってからほかの関数と答えが違ってきましたね。

では、商の部分はINT関数を使うかそれ以外の関数を使うかということで先にあまりに進みます。

MOD関数(エクセルでじゃんけんゲーム 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関数がおかいしいのでは?巻子のヘルプには以下のように書かれています。

コメントを残す

メールアドレスが公開されることはありません。