Menu

MOD関数とABS関数の使い方: 割り算の余りと絶対値

=MOD(A2,B2)はA2をB2で割った余りを返すので、=MOD(17,5)は2です。=ABS(A2)は符号を取った数を返すので、=ABS(B2-C2)はどちらが大きくても2つの値の差になります。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=MOD(A2,B2)はA2をB2で割った余りを返します。=MOD(17,5)は2です。17の中に5は3回入り、2が余るからです。=ABS(A2)は符号を取った数を返すので、-42は42になります。

MODで余りを求める
C2
ABCD
1NumberDivisorMODTimes it fits
217523
320504
47213
51007214
6-321-1
73-2-1-1
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

D列は割り算のもう半分を示しています。QUOTIENTは除数が何回入るかを整数で返すので、17は5の3倍と2です。B2を0に変えると、0で割ったときと同じようにMODは#DIV/0!を返します。

MOD関数の構文

=MOD(number, divisor)

MODは小数にも使えます。=MOD(7.5,2)は1.5で、=MOD(A2,1)は3.75から0.75のように数の小数部分だけを返します。時刻付きの日付なら、=MOD(A2,1)は日付を捨てて時刻を残します。

マイナスの数のMOD

上のシートの6行目と7行目がExcelの規則を示しています。結果は除数の符号になります。=MOD(-3,2)は-1ではなく1で、=MOD(3,-2)は-1です。ExcelはMODをnumber - divisor * INT(number / divisor)として計算し、INTは常に切り下げます。

ここでスプレッドシートとコードの結果が食い違います。JavaScript、Java、C、C#では-3 % 2は-1で、Pythonの-3 % 2はExcelと同じく1です。GoogleスプレッドシートはExcelと同じです。被除数の符号にしたいなら、=A2-B2*TRUNC(A2/B2)を使います。

偶数か奇数か、1行おき

MOD(number,2)が0なら偶数です。これで「Even」か「Odd」のラベルが作れ、ROWと組み合わせれば1行おきに色を付けるルールになります。ExcelにはTRUEかFALSEを直接返すISEVENとISODDもあります。

偶数か奇数か、縞模様の行
C2
ABC
1OrderQtyEven or odd
210014Even
310027Odd
4100310Even
510043Odd
610058Even
710065Odd
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

条件付き書式のルール=MOD(ROW($A2),2)=0は、偶数の行番号である2、4、6行目を強調します。Excelでは、ホーム > 条件付き書式 > 新しいルール >「数式を使用して、書式設定するセルを決定」で設定し、そこでは短い=MOD(ROW(),2)=0でも動きます。2を3に変えると、2行おきに色が付きます。

n行ごと: 3行ごとの値を合計する

MOD(ROW()-ROW(first),n)=0は、範囲の最初の行と、そこからn行ごとの行でTRUEになります。SUMPRODUCTの中で使えば、列から3つおきの値、たとえば各四半期の最後の月を取り出せます。

3行ごとに合計する
E2
ABCDE
1MonthSalesEvery 3rd
2Jan120310
3Feb135
4Mar150
5Apr110
6May125
7Jun160
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

行のずれは0から5で、=2はずれ2と5、つまり3月と6月を残し、150と160を足します。=2を=0に変えると、代わりに1月と4月を取ります。

分を時間と分に変換する

MODと整数の割り算で、合計を単位に分けられます。時間と残りの分、週と残りの日、箱とばらの品物です。

135分は2時間15分
B2
ABCD
1MinutesHoursMinutes leftLabel
21352152 h 15 min
3590590 h 59 min
4240404 h 0 min
51000164016 h 40 min
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

1000分は16時間40分です。本物の時刻の値(8:30、17:45)や、午前0時をまたぐ勤務には=MOD(end-start,1)が定番の数式です。時間の計算を参照してください。

ABS: 2つの数の差

=ABS(number)はマイナス記号を取ります。おもな使い道は、どちらの値が大きいかを気にしない差の大きさです。各予測が実績からどれだけ外れたか、測定値が許容範囲内かなどです。

各予測はどれだけ外れたか
D2
ABCDE
1WeekForecastActualOff byWithin 10?
2W11201128TRUE
3W29510914FALSE
4W31401382TRUE
5W4809313FALSE
6W51101046TRUE
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

B2-C2はW1では8、W2では-14です。ABSはどちらも距離に変えます。距離を合計するには、どのバージョンのExcelでも使える=SUMPRODUCT(ABS(B2:B6-C2:C6))を使います。ここではD列の合計の43になります。それを件数で割ると平均絶対誤差になります。

やってみよう: MODとABS

卵を12個入りのパックに詰める
C2
ABC
1EggsPer cartonLeft over
235012
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: C2に、A2の卵をB2の大きさのパックに詰められるだけ詰めた後、余る卵の数を計算してください。

気温の変化
D2
ABCD
1CityMorningEveningChange
2Oslo146
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: D2に、B2とC2の間で気温が何度変わったかを、どちらの値が高くてもプラスの数で表示してください。

MODとQUOTIENTとINTの違い

目的数式17と5の結果-17と5の結果
余り=MOD(A2,B2)23
入る回数の整数、0に向かって=QUOTIENT(A2,B2)3-3
入る回数の整数、切り下げ=INT(A2/B2)3-4
ふつうの割り算=A2/B23.4-3.4

プラスの数ではQUOTIENTとINT(A2/B2)は一致し、B2*INT(A2/B2)+MOD(A2,B2)で必ず元の数に戻ります。マイナスの数で元に戻るのはINTの組だけです。-4に5を掛けて3を足すと-17です。マイナスの数でQUOTIENTとMODを組み合わせるのが、スケジュールや分割で1ずれるよくある原因です。

よくある質問

ExcelのMODは何をしますか?

割り算の余りを返します。=MOD(17,5)は2です。17の中に5は3回入り、2が余るからです。割り切れるとMODは0を返します。

Excelで数が偶数かどうかを調べるには?

偶数ならTRUEになる=MOD(A2,2)=0か、=ISEVEN(A2)を使います。ラベルにするなら=IF(MOD(A2,2)=0,"Even","Odd")です。

マイナスの値でMODがプラスの数を返すのはなぜですか?

ExcelのMODは除数の符号を取ります。=MOD(-3,2)は1、=MOD(3,-2)は-1です。多くのプログラミング言語では-3 % 2が-1になるので、コードと結果が違うことがあります。

Excelで絶対値を求めるには?

=ABS(A2)を使います。-42は42になり、42は42のままです。差の大きさを符号なしで求めるには=ABS(B2-C2)を使います。

Excelで絶対値を合計するには?

どのバージョンでも使える=SUMPRODUCT(ABS(A2:A7))を使います。Excel 365と2021では=SUM(ABS(A2:A7))でも動きます。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める