![見出し画像](https://assets.st-note.com/production/uploads/images/164815562/rectangle_large_type_2_90985f2b399084500abaa0ba6780475d.png?width=1200)
「このExcel関数、何に使うの?」ー割り算の余りを求める"MOD関数"編ー
Excelを使っていると時々、「これ、どんなときに使うの?」と思う関数に出くわすことがある。そのうちのひとつが MOD関数 。どうやら「割り算の余りの数」を出す関数らしいが、実際に使われているところを"あまり"見たことがない…"余り"だけに。
しかし、最近ある業務効率ツールを作ろうとしたときに、ついにこの関数を使うときがきた…!というわけで、今回はMOD関数とその使い方について紹介する。
MOD関数とは
MOD関数は「割り算の余り」を出す関数である。関数そのものはとてもシンプルで、次のような形で使用する。
MOD(数値, 除数)
たとえば、「10 ÷ 3」の余りを計算したい場合は、次のように入力する。
=MOD(10, 3)
結果は「1」と表示される。10を3で割った余りが「1」だからだ。同様に、「MOD(15, 4)」と入力すれば、15を4で割った余り「3」が返される。このように、MOD関数は「割り切れるかどうか」「何が余るか」といった問題を解決する関数だ。
MOD関数が使える場面
MOD関数を応用すると、例えば以下のような場面で使える。
1.偶数・奇数の判定
MOD関数で数値を「2」で割った余りを求めることで、偶数と奇数を判定できる。結果が「0」なら偶数、「1」なら奇数だ。
=MOD(A1, 2)
2.ループ的な処理の作成
連番を繰り返したり、特定のパターンを作成するときにも使える。例えば、行番号を使って「1, 2, 3, 1, 2, 3...」のような繰り返しを作りたい場合、以下の式で実現可能だ。
=MOD(ROW()-ROW(開始セル), 3)+1
3.指定した範囲内に数値を収める
数値を特定の範囲(例:0~9)に収めたいとき、MOD関数を活用できる。例えば、10進数を0~9の範囲に変換する場合、
=MOD(A1, 10)
4.時間計算やローテーションの調整
24時間制の時間計算で、「25時」などを「1時」に変換するなどの用途にも使える。
実際に使ってみたー職場の当番表をMOD関数で作るー
私がMOD関数を使うことになったのは、職場の当番表を作成するときだった。例えば5人の職員を1ヶ月間、日替わりで1人ずつ順番に当番ローテーションする際は、1,2,3,4,5,1,2,3…と1〜5番目までをループする必要がある。このループを作るのに、MOD関数は正にうってつけだ。
実際の作り方は以下のような感じ。
例:5人の担当者で1か月の当番表を作る
今回の例では、担当者が5人いるとする。それぞれに1~5の番号を振り分け、ExcelシートのA列に担当者番号を、B列に担当者名を入れる。
![](https://assets.st-note.com/img/1733562148-1PHCKoBpVcxGSJgtMyfR0Uaz.png)
次に、1か月分の日付を入力した「カレンダー」を作成し、その隣に「連番」を入力する。「連番」の列は、セルが何行目にあるかを示すRow関数を使うと簡単にできる。
![](https://assets.st-note.com/img/1733562316-SzgEXmChWpUskH6I9JoK2Y7T.png)
MOD関数を使って担当者番号を入れる
次に、担当者番号をMOD関数で入れていこう。ここではF列を担当者番号の列にし、F2セルに以下の数式を入れる。
=MOD(E2-1, 5)+1
この式の動きを分解すると:
E2 は連番のセル(1, 2, 3, ...)。
-1 は、連番が「1」から始まるため調整用に引く。
5 は担当者の人数。今回は5人なので5で割る。
+1 は、MOD関数の結果が「0」のときに1から始まるように調整する。
この数式を下の行までコピーすると、図のように「1,2,3,4,5,1,2…」と1~5の数字が繰り返し入力された。
![](https://assets.st-note.com/img/1733562566-ePEZXt3d9bUir0AkDFsLSGvn.png)
XLOOKUP 関数で担当者名を入れる
最後に、担当者番号に基づいて担当者の名前を自動的に表示させたい。このときは XLOOKUP 関数(古いExcelでは VLOOKUP 関数)を利用する。ここではG列に担当者名を入れていく。
担当者名を表示するための式は以下の通り:
=XLOOKUP(F2, A:A, B:B)
この数式を下の行までコピーすると、図のように担当者番号に対応した担当者の名前がG列に入った。
![](https://assets.st-note.com/img/1733562976-EcJOl0NPRaGmtgfqzAu18hkY.png)
これでMOD関数を使用した当番表を作成することができた。次回はこれを応用し、さらに実用的なカレンダーを作る方法を紹介しようと思う。具体的には、土日や祝日をスキップして当番を割り当てる方法について書く予定だ。