スプレッドシートのMOD関数の使い方|余り

スポンサーリンク

スプレッドシートのMOD関数の使い方|余り

スプレッドシートで割り算をしたとき、「余り」だけを知りたい場面はありませんか?

12個のお菓子を5人で分けると「1人2個で、余りは2個」。こういう計算、手作業でやるのは面倒ですよね。

そんなときに使うのがMOD関数です。割り算の余りを一発で求めてくれます。しかも偶数・奇数の判定や、N行ごとの処理にも使えるんです。

この記事では基本の書き方から実務での活用パターンまで紹介します。

MOD関数とは?

MOD関数(読み方: モッド関数)は、割り算の余り(剰余)を返す関数です。

名前は英語の「modulo(剰余演算)」の略です。たとえば「10÷3」の余りは「1」。MOD関数を使うと =MOD(10, 3) で「1」が返ります。

割り算には「商」と「余り」がありますよね。MOD関数は「余り」の部分を取り出す関数です。「商」の整数部分を取り出すにはINT関数やQUOTIENT関数を使います。

MOD関数にできることをまとめると、次のとおりです。

  • 割り算の余りを求める
  • 偶数か奇数かを判定する
  • N行ごと・N個ごとに処理を振り分ける
  • 時刻データから端数の「分」を取り出す

NOTE

MOD関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。

MOD関数の書き方(構文と引数)

基本構文

=MOD(被除数, 除数)

カッコの中に「割られる数」と「割る数」の2つを入れます。

引数の説明

引数必須/任意説明
被除数必須割られる数(余りを求めたい数値やセル参照)
除数必須割る数(いくつで割るか)

引数は2つです。「被除数÷除数」の余りが返ります。

数式で書くと MOD(A, B) = A - B * INT(A/B) です。つまり「元の数から、商の整数部分×除数を引いた残り」が余りです。

MOD関数の基本的な使い方

数値を直接入力する

もっともシンプルな使い方です。

=MOD(10, 3)

結果は「1」です。10÷3は「商3、余り1」ですね。

=MOD(15, 5)

結果は「0」です。15は5で割り切れるので余りはありません。

セル参照を使う

A1に「17」、B1に「5」が入っているとします。

=MOD(A1, B1)

結果は「2」です。17÷5は「商3、余り2」です。セル参照を使えば、値が変わっても自動で余りが計算されます。

割り切れるかどうかを確認する

余りが0なら割り切れる、0以外なら割り切れないと判定できます。

=IF(MOD(A1, B1)=0, "割り切れる", "割り切れない")

たとえばA1が「20」、B1が「4」なら「割り切れる」です。A1が「21」なら「割り切れない」です。

小数の余りも求められる

MOD関数は整数だけでなく、小数にも対応しています。

=MOD(5.5, 2)

結果は「1.5」です。5.5÷2は「商2、余り1.5」です。

実務でのMOD関数活用例

偶数・奇数を判定する

もっとも使用頻度が高いパターンです。A2にチェックしたい数値が入っているとします。

=IF(MOD(A2, 2)=0, "偶数", "奇数")

2で割った余りが0なら偶数、1なら奇数です。シンプルですよね。

このテクニックは条件付き書式と組み合わせると便利です。1行おきに背景色を付けて見やすい表を作りたいとき、行番号の偶数・奇数で色を分けられます。

条件付き書式のカスタム数式に次のように入力します。

=MOD(ROW(), 2)=0

これで偶数行だけに色が付きます。データが増減しても自動で交互色が維持されます。

N行ごとに小計行を入れる

大量のデータに定期的な区切りを入れるパターンです。

=IF(MOD(ROW(A2), 5)=0, "--- 小計 ---", "")

5行ごとにTRUEになるので、区切り表示や小計の目印に使えます。

応用として、N個ごとにグループ番号を振ることもできます。

=INT((ROW(A2)-2)/5)+1

TIP

MOD関数とROW関数の組み合わせは応用範囲が広いです。「3行ごとに罫線を引きたい」「10件ごとにページ区切りを入れたい」など、定期的なパターンを作る場面で活躍します。

曜日を使ったシフト計算

WEEKDAY関数と組み合わせて、曜日を柔軟にカスタマイズするパターンです。A2に日付が入っているとします。

=MOD(WEEKDAY(A2, 2), 7)

WEEKDAY関数の種類2は月曜=1〜日曜=7です。MODで7の余りを取ると、月曜=1〜土曜=6、日曜=0になります。

日曜を「7」にしたいなら次のように書きます。

=IF(MOD(WEEKDAY(A2, 2), 7)=0, 7, MOD(WEEKDAY(A2, 2), 7))

曜日番号のカスタマイズはシフト管理で重宝します。

勤怠管理で端数の「分」を取り出す

時刻データから「時間」と「分」を分けるパターンです。C2に作業時間(例: 2:45)が入っているとします。

=INT(C2*24)            → 時間の整数部分(例: 2)
=MOD(C2*24, 1)*60      → 端数の分(例: 45)

C2*24で時間数に変換し、INT関数で整数部分(時間)を取り出します。MOD関数で1の余り(小数部分)を取り出し、60を掛けると「分」になります。

勤怠管理で「2時間45分」を「2」と「45」に分けたいときに便利です。

割り算を「商」と「余り」に分解する

割り算の結果を完全に分解するパターンです。A2に総数、B2に1グループの個数が入っているとします。

=INT(A2/B2)     → 商の整数部分(いくつのグループができるか)
=MOD(A2, B2)    → 余り(端数として残る個数)

たとえば100個のお菓子を12個ずつ箱詰めするなら、INT関数で「8箱」、MOD関数で「余り4個」です。

TIP

QUOTIENT関数でも商の整数部分を求められます。=QUOTIENT(100, 12) は「8」です。INT(A2/B2)と同じ結果ですが、QUOTIENT関数のほうが「商を求めている」という意図が明確になります。次にQUOTIENT関数の記事も公開予定ですので、あわせてチェックしてみてください。

よくあるエラーと対処法

MOD関数は引数2つのシンプルな関数ですが、エラーが出ることもあります。

エラー原因対処法
#DIV/0!除数が0またはゼロに相当する空白セル除数が0でないか確認する
#VALUE!引数に文字列が入っているセル参照先が数値かどうか確認する
#ERROR!構文ミス(カッコ忘れ等)数式の入力内容を見直す
結果が想定と違う負の数での動作を誤解している次のセクションの説明を確認する

除数が0のとき

MOD関数で最もよくあるエラーです。0で割ることはできません。

=MOD(10, 0)

結果は#DIV/0!エラーです。除数に0が入る可能性がある場合は事前にチェックしましょう。

=IF(B1=0, "エラー: 0では割れません", MOD(A1, B1))

負の数のときの動作

MOD関数の結果の符号は、除数の符号に従います。ここが少し直感と異なるポイントです。

=MOD(10, 3)    → 1(正÷正 → 正の余り)
=MOD(-10, 3)   → 2(負÷正 → 正の余り)
=MOD(10, -3)   → -2(正÷負 → 負の余り)
=MOD(-10, -3)  → -1(負÷負 → 負の余り)

実務では正の数同士で使うことがほとんどです。負の数を扱う場面では、ABS関数で絶対値に変換してからMOD関数に渡すと安全です。

=MOD(ABS(A1), ABS(B1))

似た関数との違い・使い分け

MOD関数と関連する関数をまとめました。

関数動作引数戻り値
MOD割り算の余り2つ余り(剰余)
QUOTIENT割り算の商の整数部分2つ商の整数部分
INT整数に切り捨て1つ整数
ROUNDDOWN指定桁数で切り捨て2つ切り捨てた数値
FLOOR倍数で切り捨て2つ倍数に切り捨てた数値

MODとQUOTIENTの関係

MOD関数とQUOTIENT関数はセットで使うのが基本です。

=QUOTIENT(17, 5)  → 3(商の整数部分)
=MOD(17, 5)       → 2(余り)

検算すると「5 x 3 + 2 = 17」で元の数に戻ります。割り算を「商」と「余り」に完全分解するペアですね。

QUOTIENT関数の代わりに =INT(A1/B1) でも同じ結果です。ただしQUOTIENT関数のほうが「商を求める」意図が明確です。

MODとINTの補完関係

INT関数は「整数部分」、MOD関数は「余り部分」を取り出します。

=INT(7.5)      → 7(整数部分)
=MOD(7.5, 1)   → 0.5(小数部分 = 1で割った余り)

INT+MODで数値を「整数部分」と「小数部分」に分解できます。時間計算で「2時間45分」を分解するパターンがまさにこの応用です。

MODとFLOOR/CEILINGの違い

FLOOR関数は「倍数に切り捨てた値」を返します。一方MOD関数は「倍数で割った余り」を返します。実は両者には次の関係があります。

FLOOR(A1, B1) + MOD(A1, B1) = A1

たとえば=FLOOR(17, 5) は「15」、=MOD(17, 5) は「2」。15+2=17で元の数に戻ります。

TIP

関連する丸め関数の使い分けも確認してみてください。ROUNDROUNDUPROUNDDOWNMROUNDCEILINGFLOORINTで詳しく解説しています。

Excelとの違い

MOD関数はExcelとGoogleスプレッドシートで完全に同じ動作です。

項目ExcelGoogleスプレッドシート
構文=MOD(数値, 除数)=MOD(被除数, 除数)
動作割り算の余り割り算の余り
負の数除数の符号に従う除数の符号に従う
引数2つ2つ

引数名の表記が若干異なるだけで、機能は完全に同じです。ExcelとSheetsでファイルを共有しても、計算結果がずれることはありません。

まとめ

MOD関数は、割り算の余りを求めるシンプルで万能な関数です。

ポイントを整理します。

  • 構文は =MOD(被除数, 除数) の2引数。余りを返す
  • 偶数・奇数の判定は =MOD(A1, 2) で0か1かを確認
  • N行ごとの処理はROW関数と組み合わせて活用
  • INT関数やQUOTIENT関数と組み合わせて割り算を完全分解
  • 除数が0だと#DIV/0!エラーになるので事前チェック
  • ABS関数と組み合わせると負の数も安全に処理できる

まずは =MOD(A1, 2) で偶数・奇数の判定から試してみてください。

タイトルとURLをコピーしました