【Excel】MOD関数で余りを使った行ごとの色付けや周期処理をする方法

【Excel】MOD関数で余りを使った行ごとの色付けや周期処理をする方法
🛡️ 超解決

Excelで特定の条件に基づいて行に色を付けたい、あるいは決まった間隔で処理を繰り返したいと思ったことはありませんか。

例えば、2行おきに色を付けたり、5日周期で特定の作業を促したりするような場合です。

これらの処理は、MOD関数を使えば数式で簡単に実現できます。この記事では、MOD関数を使って行ごとの色付けや周期処理を行う具体的な方法を解説します。

MOD関数を使いこなせば、Excel作業の効率が格段に向上します。

【要点】MOD関数で行ごとの色付けや周期処理を実現する

  • MOD関数: 数値を指定した数で割ったときの余りを計算し、条件分岐の基盤を作る。
  • 条件付き書式: MOD関数の結果を基に、特定の行やセルに自動で書式(色など)を適用する。
  • 周期処理: MOD関数で一定間隔ごとの処理を判定し、作業の自動化やリマインダー設定に活用する。

ADVERTISEMENT

MOD関数の仕組みと余りを使った条件判定

MOD関数は、ある数値を別の数で割ったときの「余り」を求める関数です。その構文は「=MOD(数値, 除数)」となります。

例えば、「=MOD(5, 3)」と入力すると、5を3で割った余りである「2」が返されます。同様に、「=MOD(6, 3)」は「0」を返します。

この「余り」が0になるか、あるいは特定の数になるかを判定することで、行番号や日付が特定の条件を満たすかを判断できます。これが、MOD関数を行ごとの色付けや周期処理に活用できる理由です。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

条件付き書式で行を色付けする手順

MOD関数と条件付き書式を組み合わせることで、2行おき、3行おきといったパターンで自動的に行に色を付けることが可能です。ここでは、2行おきに背景色を付ける方法を例に説明します。

  1. 対象範囲の選択
    色を付けたい範囲全体、またはデータ範囲を選択します。例えば、A1セルからD100セルまでを選択します。
  2. 条件付き書式の設定開始
    「ホーム」タブの「スタイル」グループにある「条件付き書式」をクリックし、「新しいルール」を選択します。
  3. ルールの種類の選択
    「新しい書式ルール」ダイアログボックスで、「数式を使用して、書式設定するセルを決定」を選択します。
  4. 条件式(MOD関数)の入力
    「次の数式を満たす場合に値を書式設定」というボックスに、以下の数式を入力します。ここでは、アクティブセル(選択範囲の左上隅のセル)を基準に、行番号の偶数行(2行おき)に色を付ける例です。

    =MOD(ROW(),2)=0

    この数式は、現在の行番号(ROW())を2で割った余りが0になる場合に「真(TRUE)」を返します。つまり、偶数行に合致します。奇数行に色を付けたい場合は「=MOD(ROW(),2)=1」とします。

  5. 書式の設定
    「書式」ボタンをクリックし、「セルの書式設定」ダイアログボックスで「塗りつぶし」タブを選択します。好きな背景色を選んで「OK」をクリックします。
  6. ルールの適用
    「新しい書式ルール」ダイアログボックスに戻り、「OK」をクリックして設定を完了します。

これで、選択した範囲の偶数行に自動的に指定した背景色が適用されます。3行おきに色を付けたい場合は、MOD関数の第2引数(除数)を「3」に変更し、「=MOD(ROW(),3)=0」のように指定します。

MOD関数を使った周期処理の例

MOD関数は、日付や連番を基にした周期的な処理にも応用できます。例えば、毎月15日と月末に特定の作業を行う必要がある場合や、1週間ごとのタスク管理などに活用できます。

日付を基準にした周期処理

ある日付の列があり、その日付が特定の周期に該当するかどうかを判定したい場合を考えます。例えば、毎週月曜日にタスクを実行したい場合です。

  1. 日付の列を用意する
    A列に日付が入力されていると仮定します。
  2. 曜日を判定する数式
    B1セルに「=WEEKDAY(A1,2)」と入力します。WEEKDAY関数の第2引数に「2」を指定すると、月曜日が1、火曜日が2、…、日曜日が7として返されます。
  3. MOD関数で月曜日を判定する
    C1セルに「=MOD(B1,7)」と入力します。月曜日の場合、B1セルには「1」が返されるため、MOD(1,7)は「1」になります。火曜日ならMOD(2,7)で「2」、…、日曜日ならMOD(7,7)で「0」になります。
  4. 条件付き書式で色付け(応用)
    C1セルの数式が「1」になる行(月曜日)に色を付けたい場合、条件付き書式で「=C1=1」という条件を設定します。あるいは、MOD関数を直接条件付き書式に組み込むことも可能です。

    =MOD(WEEKDAY(A1,2),7)=1

    この数式は、A1セルの日付が月曜日である場合に「TRUE」を返します。

この応用により、特定の曜日や、例えば「5日周期」といった複雑な条件での処理判定が容易になります。周期処理は、Excelを単なるデータ管理ツールから、業務を支援するツールへと進化させる鍵となります。

連番を基にした周期処理

データに連番が付与されている場合、MOD関数を使って一定の連番ごとに処理を振り分けることができます。例えば、10件ごとに記録をチェックする、といった場合です。

  1. 連番の列を用意する
    A列に1から始まる連番が入力されているとします。
  2. MOD関数で周期を判定する
    B1セルに「=MOD(A1,10)」と入力します。これにより、10で割り切れる連番(10, 20, 30…)の余りは0になります。
  3. 条件付き書式またはIF関数で処理を分ける
    B1セルの値が0になる行(連番が10の倍数の行)に色を付けたり、IF関数を使って「=IF(MOD(A1,10)=0,”要チェック”,””)」のように特定のメッセージを表示させたりできます。

この方法は、定期的なメンテナンス、データ集計の区切り、あるいは特定のイベントのトリガー設定など、様々な場面で応用可能です。MOD関数は、単純な計算だけでなく、業務フローの自動化にも貢献します。

ADVERTISEMENT

MOD関数と条件付き書式を使う上での注意点

MOD関数と条件付き書式は非常に便利ですが、いくつか注意すべき点があります。

h3>ROW()関数の挙動と絶対参照・相対参照

条件付き書式でROW()関数を使用する際、Excelは選択範囲の各セルに対して数式を評価します。ROW()関数は、その数式が入力されたセルの行番号を返します。

例えば、A1からD10の範囲に条件付き書式を設定し、数式にROW()を使用した場合、A1セルではROW()は1を、A2セルでは2を返します。この挙動は、通常、行ごとの色付けにおいて期待される動作です。

しかし、もし数式内で特定のセルを参照する必要があり、その参照を固定したい場合は、絶対参照(例: $A$1)や複合参照(例: $A1, A$1)を適切に使用する必要があります。ROW()関数自体は、通常、絶対参照にする必要はありません。なぜなら、行ごとに異なる結果を返すことが色付けの目的だからです。

h3>MOD関数の除数とゼロ除算

MOD関数の第2引数(除数)に0を指定すると、エラー(#DIV/0!)が発生します。これは、ゼロで割ることが数学的に定義されていないためです。

条件付き書式でMOD関数を使用する際に除数に0を設定してしまうと、意図しないエラー表示や書式設定の失敗につながる可能性があります。常に正の整数(または負の整数)を第2引数に指定するように注意してください。

h3>複雑な条件での数式エラー

複数の条件を組み合わせたり、他の関数と連携させたりする場合、数式が複雑になりがちです。数式が長くなると、入力ミスや論理的な誤りが生じやすくなります。

このような場合は、Excelの「数式の評価」機能(「数式」タブ > 「数式分析」グループ > 「数式の評価」)を使って、数式がどのように計算されているかをステップごとに確認することをお勧めします。これにより、問題箇所を特定しやすくなります。

h3>Excelのバージョンによる違い

MOD関数自体は、Excelの初期バージョンから存在する基本的な関数です。したがって、Excel 2019、Excel 2021、Microsoft 365といった、ほとんどのバージョンで問題なく利用できます。

条件付き書式も同様に、どのバージョンでも基本的な機能は共通しています。ただし、UI(ユーザーインターフェース)のデザインや一部の高度な設定オプションは、バージョンによって若干異なる場合があります。

もし古いバージョンのExcelを使用している場合、メニューの場所やボタンの名称が異なる可能性がありますが、機能の本質は同じです。操作に迷った場合は、お使いのExcelバージョンのヘルプを参照すると良いでしょう。

MOD関数と他の関数との組み合わせ例

MOD関数は、他のExcel関数と組み合わせることで、さらに強力な処理を実現できます。

h3>IF関数との組み合わせ

MOD関数の結果をIF関数で判定することで、条件に応じた異なる値を表示させることができます。例えば、偶数行には「偶数」、奇数行には「奇数」と表示させたい場合です。

セルに「=IF(MOD(ROW(),2)=0,”偶数”,”奇数”)」と入力します。これにより、行番号が偶数なら「偶数」、奇数なら「奇数」と表示されます。

h3>ROW()、COLUMN()関数との組み合わせ

ROW()関数は行番号、COLUMN()関数は列番号を返します。これらをMOD関数と組み合わせることで、行と列の両方の条件に基づいて色を付けたり、処理を分けたりすることが可能です。

例えば、「行番号が偶数かつ列番号が奇数」のセルに色を付けたい場合、条件付き書式で数式を「=AND(MOD(ROW(),2)=0,MOD(COLUMN(),2)=1)」のように設定できます。

h3>COUNTIF関数との組み合わせ(応用)

少し応用的な使い方ですが、COUNTIF関数とMOD関数を組み合わせることで、重複する値の出現回数に基づいて色を付けるといったことも考えられます。

例えば、A列に重複する値があり、2回目以降に出現する値だけに色を付けたい場合、条件付き書式で「=MOD(COUNTIF($A$1:A1,A1),2)=0」のような数式を適用する(ただし、この例では正確な2回目以降の判定には追加の工夫が必要な場合があります)といった応用が考えられます。

MOD関数とCOUNTIF関数を使った「N行おきの重複チェック」

MOD関数は、特定の周期で出現する値に印をつけたい場合にも有効です。ここでは、N行おきに同じ値が出現した場合に、その行をハイライトする例を紹介します。これは、データ入力ミスや、特定のパターンでの異常検知に役立ちます。

  1. データ範囲の準備
    A列にデータがあり、B列に連番(1, 2, 3…)が振られているとします。
  2. 条件付き書式の設定
    A列のデータ範囲を選択し、「ホーム」タブ > 「条件付き書式」 > 「新しいルール」を選択します。
  3. 数式によるルールの作成
    「数式を使用して、書式設定するセルを決定」を選び、以下の数式を入力します。ここでは、5行おきに同じ値が出現した場合に色を付ける例です。

    =AND(MOD(ROW(B1),5)=1,COUNTIF($A$1:A1,A1)>1)

    この数式は、主に2つの条件をチェックしています。
    1. MOD(ROW(B1),5)=1: 現在の行番号を5で割った余りが1になるか(つまり、5行おきの開始行か)を判定します。ROW(B1)のように、選択範囲の最初のセルを基準にすることで、各行で正しく評価されます。
    2. COUNTIF($A$1:A1,A1)>1: 現在のセル(A1)の値が、範囲の最初から現在セルまでの間に既に1回以上出現しているか(つまり、重複しているか)を判定します。この範囲指定($A$1:A1)は、Excelが自動的に拡張してくれます。

  4. 書式の設定
    「書式」ボタンから、背景色などの書式を設定し、「OK」をクリックします。

この設定により、例えば5行ごとに同じ項目名が繰り返し入力されている場合に、2回目以降の出現箇所に自動で色が付くようになります。これにより、意図しないデータの重複や、周期的なデータ異常を素早く発見できるようになります。

MOD関数とVBAでの活用(補足)

MOD関数はVBA(Visual Basic for Applications)でも利用可能です。VBAでは、Mod演算子(半角のMod)を使って同じ機能を実現します。

例えば、VBAコード内で「余り = 変数 Mod 3」のように記述できます。これにより、ループ処理の中で周期的な処理を実行したり、条件分岐を行ったりすることが容易になります。

VBAでMOD関数(Mod演算子)を利用する場合、セキュリティ警告が表示されることがあります。マクロを有効にする際は、信頼できるソースからのファイルであることを確認してください。また、VBAコードはExcelのバージョンに依存せず、広く利用できます。

項目 MOD関数 (Excel) Mod演算子 (VBA)
機能 数値を指定した数で割った余りを計算する 数値を指定した数で割った余りを計算する
構文 =MOD(数値, 除数) 変数 Mod 除数
応用例 条件付き書式での行色付け、周期処理の判定 ループ処理での周期実行、条件分岐
互換性 Excel 2007以降で利用可能 VBAが利用可能な全バージョン

MOD関数と条件付き書式を組み合わせることで、Excelでのデータ処理や視覚化の幅が大きく広がります。

行ごとの色付けや、特定の間隔での処理判定など、これまで手作業で行っていた作業を自動化できます。

ぜひ、この記事で紹介したMOD関数の使い方をマスターして、Excel作業の効率化に役立ててください。

さらに応用として、他の関数と組み合わせることで、より複雑な条件でのデータ分析やレポート作成にも挑戦できます。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】