スプレッドシートの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
関連する丸め関数の使い分けも確認してみてください。ROUND・ROUNDUP・ROUNDDOWN・MROUND・CEILING・FLOOR・INTで詳しく解説しています。
Excelとの違い
MOD関数はExcelとGoogleスプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =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) で偶数・奇数の判定から試してみてください。
