「Excelで1行おきに色を付けたい」「作業時間を時・分に分割して表示したい」「番号から担当班を自動で循環させたい」——こういった周期的な処理の悩みを一手に引き受けるのがMOD関数とINT関数です。
MOD関数は割り算の「余り」、INT関数は小数を切り捨てた「整数部分」を返します。どちらもシンプルな構文ですが、条件付き書式・SUMPRODUCT・CHOOSE・TEXT関数と組み合わせることで、行着色・N行おき集計・時間分解・グループ循環割り当てなど、幅広い業務処理に応用できます。
本記事では、MOD・INT関数の基本構文・動作原理・実務シナリオ別の活用パターン・よくある落とし穴・QUOTIENT関数との比較・MOS Excel試験の出題ポイントを体系的に解説します。
MOD関数の基本構文と動作
MOD関数は、被除数を除数で割った余り(剰余)を返します。
=MOD(数値, 除数)
| 数式例 | 計算内容 | 結果 |
|---|---|---|
| =MOD(10, 3) | 10 ÷ 3 = 3 余り1 | 1 |
| =MOD(9, 3) | 9 ÷ 3 = 3 余り0 | 0 |
| =MOD(7, 2) | 7 ÷ 2 = 3 余り1 | 1 |
| =MOD(ROW(), 2) | 行番号が奇数か偶数かで1または0 | 0または1 |
重要な性質として、除数が2のときはMODの結果が0(偶数行)か1(奇数行)になります。これが「交互行着色」に使われる理由です。除数を3にすれば3行おきのグループ分け、4にすれば4行おきのパターンが作れます。
また、MOD関数は負の数にも対応します。Excelのモジュロ演算は除数の符号に従うため、=MOD(-10, 3) は 2 を返します(数学的な剰余:-10 = (-4) × 3 + 2)。業務で負の数が出る場合は挙動を事前確認してください。
INT関数の基本構文と動作
INT関数は、数値を最も近い整数(小数点以下を切り捨て)に丸めます。
=INT(数値)
| 数式例 | 結果 | 補足 |
|---|---|---|
| =INT(7.8) | 7 | 小数を切り捨て |
| =INT(7.1) | 7 | 同じく切り捨て |
| =INT(-7.8) | -8 | 負の数は「より小さい方向」へ丸め |
| =INT(90/60) | 1 | 90分 ÷ 60 → 1時間(端数切り捨て) |
負の数での動作に注意しましょう。INT(-7.8) = -8 となるのは、数直線上でより左(負の無限大方向)に丸めるからです。一方、TRUNC関数はゼロ方向に丸めるため、TRUNC(-7.8) = -7 になります。正の数ではINTとTRUNCの結果は同じですが、負の数を扱う場合はどちらを使うか意識してください。
また、Excelは時刻を「1日=1.0」として小数で管理しています。日付と時刻が同一セルに入っている場合にINTを適用すると日付部分(整数部分)だけが残るため、「日付だけ取り出す」用途にも活用できます。
PR
できるExcel関数 Copilot対応 Office 2024/2021/2019&Microsoft 365版(インプレス)
関数の基本から応用まで手順つきで解説する定番シリーズ。似た関数の使い分けに迷ったときの早見表としても使えます。
実務シナリオ別の活用パターン
シナリオ1:条件付き書式でゼブラ縞(交互行着色)を実現する
長い一覧表を読みやすくする1行おき背景色は、テーブル機能でも実現できますが、条件付き書式+MOD関数ならより細かい制御が可能です。
手順(奇数行に色を付ける例)
- 色を付けたいセル範囲(例:A2:F100)を選択する
- 「ホーム」→「条件付き書式」→「新しいルール」→「数式を使用して書式設定するセルを決定」を選択
- 数式欄に
=MOD(ROW(),2)=1と入力 - 書式で背景色を指定し「OK」
ROW()関数は現在の行番号を返すため、奇数行ではMOD(ROW(),2)=1になり条件が成立します。偶数行に色を付けたい場合は =MOD(ROW(),2)=0 を使います。
3行ごとにグループ色を付けるパターンも同様に作れます。
' 3行ごとに色分け(2行目をデータ先頭とする場合)
=MOD(INT((ROW()-2)/3),2)=0
INT((ROW()-2)/3) は「2行目を起点として3行ごとのグループ番号」を返し、それをMOD(,2)で0/1に変換します。ヘッダーが複数行ある場合は -2 の部分をヘッダー行数分調整してください。
シナリオ2:N行おきのデータだけを合計する
週次データが縦に並んでいる場合に「毎週月曜日(B2・B9・B16…行目)だけを合計する」といった処理もMOD+SUMPRODUCTで実現できます。
' B2:B100の中で7行おき(B2, B9, B16...)のみを合計
=SUMPRODUCT((MOD(ROW(B2:B100)-ROW(B2),7)=0)*B2:B100)
MOD(ROW(B2:B100)-ROW(B2), 7) は各行の「先頭B2からの距離を7で割った余り」を計算します。余りが0になる行(7行おき)のB列値だけを合計する仕組みです。
月次データを4週ごとに集計したい場合も同様のパターンで対応できます。集計したい間隔に合わせて除数(7の部分)を変えてください。
シナリオ3:INT+MODで経過分数を「時・分」に分割する
作業記録で「経過時間(分)」を「〇時間〇分」形式で表示したい場合、INT関数とMOD関数を組み合わせます。
A2セルに「135」(分)が入っている場合を例にします。
' 時間部分(切り捨て)
=INT(A2/60) → 2(時間)
' 分の余り
=MOD(A2, 60) → 15(分)
' テキスト結合で「2時間15分」と表示
=INT(A2/60)&"時間"&MOD(A2,60)&"分"
Excelに「135:00」のような時間超え時刻形式で入力されている場合はHOUR関数とMINUTE関数が使えます。しかし数値(分)で管理しているデータの場合はINT+MODの組み合わせが有効です。現場集計表や工数管理シートでよく使われるパターンです。
シナリオ4:INT関数で日付と時刻を分離する
「2026/06/27 14:30」のように日付と時刻が同一セル(A2)に入っているとき、日付部分だけを取り出すにはINTが最もシンプルです。
' 日付部分(整数部分)を取り出す
=INT(A2) → 日付シリアル値の整数部分(書式設定で日付表示に変換)
' 時刻部分(小数部分)を取り出す
=A2-INT(A2) → 小数部分(書式設定で時刻表示に変換)
取り出したセルは「書式設定」で日付または時刻の表示形式を適用することで正しく表示されます。YEAR・MONTH・DAY・HOUR・MINUTE関数でも個別に取り出せますが、セルごと日付・時刻として扱いたい場合はINT関数の方が手軽です。
シナリオ5:MODで連番から区分・グループを循環割り当てする
製品コードや席番号などの連番から「グループ」や「担当班」を自動で割り当てるパターンです。
' 4グループに循環割り当て(1→A班、2→B班、3→C班、4→D班、5→A班…)
=CHOOSE(MOD(A2-1,4)+1,"A班","B班","C班","D班")
MOD(A2-1, 4) は A2=1で0、A2=2で1、A2=3で2、A2=4で3、A2=5で0…と0~3を循環します。CHOOSE関数のインデックスに+1して1~4に変換すれば、A班~D班を自動で割り当てられます。班分け・ローテーション・輪番担当など定期的なグループ分けに有効です。
QUOTIENT関数との使い分け
割り算の「商(整数部分)」を取り出すにはINT関数の他にQUOTIENT関数があります。両者の違いを整理しておきましょう。
| 取得したいもの | 関数 | 数式例(10÷3) | 結果 |
|---|---|---|---|
| 余り(剰余) | MOD | =MOD(10,3) | 1 |
| 商(整数部分) | QUOTIENT | =QUOTIENT(10,3) | 3 |
| 商(整数部分) | INT | =INT(10/3) | 3 |
| 商(小数を含む) | ÷演算子 | =10/3 | 3.333… |
正の数の場合、QUOTIENTとINTの結果は同じです。ただし負の数では差が出ます。QUOTIENT(-10, 3) = -3(ゼロ方向に切り捨て)に対し、INT(-10/3) = INT(-3.33…) = -4(負の無限大方向に切り捨て)となります。実務で正の数しか扱わない場面では結果は変わらないため、意図を明示したい場合はQUOTIENT、数式の中で計算を続ける場合はINTを使う傾向があります。
PR
今すぐ使えるかんたんbiz Excel関数+組み合わせ 効率UPスキル大全 Copilot対応(技術評論社)
関数単体だけでなく組み合わせ活用まで実務目線でまとめた1冊。業務でそのまま使えるパターン集として手元に置きやすい内容です。
よくある間違いと対処法
| 間違い・症状 | 原因 | 対処法 |
|---|---|---|
| =MOD(数値, 0)で#DIV/0!エラー | 除数に0は指定できない | IFERROR(MOD(…),0)またはIF(除数=0,0,MOD(…))で回避する |
| INT(-2.3)が-2になると思ったら-3になった | INTは負の無限大方向に丸める | ゼロ方向に丸めたい場合はTRUNC(-2.3)を使う(→-2) |
| MODで浮動小数点誤差が出る | 浮動小数点演算の精度限界(例:=MOD(1.3,1)が0でなく微小数値を返すことがある) | ROUND(MOD(値,除数),10)のようにROUNDで誤差を吸収する |
| 交互行着色が意図した行からずれる | ROW()の起点がヘッダー行かデータ行か確認できていない | 先頭データ行のROW()の値を確認し、MOD(ROW()-起点調整値,2)で調整する |
| INT抽出後のセルが数値になって日付表示にならない | INT結果のセル書式が「数値」のまま | 書式設定を「日付」に変更する |
MOS Excel試験でのMOD・INT出題ポイント
MOS Excel 365&2019の試験では、MOD・INTは「数式と関数の使用」カテゴリで出題されます。主な出題ポイントは以下の通りです。
- 基本構文の入力:=MOD(数値, 除数)、=INT(数値)を正確に入力できる
- 条件付き書式との組み合わせ:=MOD(ROW(),2)=0を条件付き書式の数式欄に入力して偶数行に色を付ける操作
- ROW()関数との組み合わせ:MOD(ROW(), N)で行グループを判定する数式の理解
- INT vs TRUNC の違い:負の数でINTとTRUNCの結果が異なることの理解
- エラー処理:除数0による#DIV/0!エラーをIFERRORで捕捉する方法
MOS試験 MOD・INT関連チェックリスト
| 確認ポイント | 操作内容 | 難易度 |
|---|---|---|
| 基本構文の入力 | =MOD(10,3)、=INT(7.8)を正確に入力できる | ★☆☆ |
| 条件付き書式でMODを使う | 数式欄に=MOD(ROW(),2)=0を入力して偶数行を着色できる | ★★☆ |
| ROW()との組み合わせ | 行番号を使ったグループ分け数式を構築できる | ★★☆ |
| INT vs TRUNCの違い | 負の数でINTとTRUNCの結果が異なることを理解している | ★★☆ |
| 時・分の分解に使う | =INT(A2/60)&”時間”&MOD(A2,60)&”分”の数式を組み立てられる | ★★★ |
| SUMPRODUCT+MODの組み合わせ | N行おき集計数式を構築できる | ★★★ |
まとめ:MOD・INT関数は周期処理と数値分解の核心
本記事のポイントをまとめます。
- MOD関数:=MOD(数値, 除数)で割り算の余りを返す。除数が2なら偶数・奇数判定、N行おきパターン・グループ循環割り当てに活用できる
- INT関数:=INT(数値)で小数点以下を切り捨て。負の数は「より小さい方向(負の無限大方向)」に丸める。時刻の日付部分取り出し・分数から時間部分の分離に活用できる
- 交互行着色:条件付き書式の数式欄に=MOD(ROW(),2)=0または=1を入力するだけで実現できる
- 時・分の分解:INT(分数/60)で時間、MOD(分数,60)で端数の分を取り出せる
- グループ循環:MOD(連番-1, グループ数)+1でCHOOSE・IFSと組み合わせた自動班分けができる
- TRUNC vs INT:負の数ではINT(負の無限大方向)とTRUNC(ゼロ方向)の結果が異なる
- MOS試験:条件付き書式でのMOD(ROW(),2)使用・INT/TRUNCの違い・除数0のエラー処理が頻出
MODとINTはそれぞれ単独でも使えますが、ROW・SUMPRODUCT・CHOOSE・TEXT・条件付き書式と組み合わせることで「周期的な処理」や「数値の分解」が必要な場面に強力に応えます。「1行おきに色を付けたい」「作業時間を時・分に分けたい」という場面でまず思い出してほしい関数です。MOS試験では条件付き書式との組み合わせを特に重点的に練習しておきましょう。
