MOD関数:剰余を取得する

MOD 関数は Excel で用意されている関数の一つで、引数に指定した数値を除算したときの剰余を取得します。ここでは Excel における MOD 関数の使い方について解説します。

※ 除算した商を求めるには QUOTIENT 関数を使用します。詳しくは「QUOTIENT関数:除算した商の整数部分を取得する」を参照されてください。

※ Excel の対応バージョン : 365 web 2021 2019 2016 2013 2010 2007

(Last modified: )

MOD関数の定義

MOD 関数は対象の数値を指定した数値で除算した場合の剰余を取得します。

MOD(数値,除数)

1 番目の引数には対象となる数値または数値が含まれるセルを指定します。 2 番目の引数に除数を表す数値または数値が含まれるセルを指定します。

例えば対象の数値が 30 、除数が 7 だった場合は 30 ÷ 7 の剰余として 2 を返します。除数が 8 だった場合は 30 ÷ 8 の剰余として 6 を返します。

=MOD(30,7)
--> 2

=MOD(30,8)
--> 6

対象の数値や除数が負の値の場合

剰余を求める対象の数値が負の値だったり、除数が負の値の場合、結果は少し分かりにくい結果となります。次の例を見てください。

=MOD(30,-7)
--> -5

=MOD(-30,7)
--> 5

どちらの結果もなぜこの結果になるのだろうと思われるかと思います。

MOD 関数を使って得られる結果は INT 関数を使って次のように定義されています。

MOD(n, d) = n - d*INT(n/d)

先ほどの最初の例を INT 関数を使った定義に従って計算すると次のようになります。

MOD(30, -7) = 30 - (-7)*INT(30/-7)
            = 30 - (-7)*(-5)
            = 30 - 35
            = -5

結果は -5 となりました。

今度は 2 番目の例を INT 関数を使った定義に従って計算すると次のようになります。

MOD(-30, 7) = -30 - 7*INT(-30/7)
            = -30 - 7*(-5)
            = -30 + 35
            = 5

結果は 5 となりました。

ちなみにどちらの正の数だった場合に INT 関数を使った定義に従って計算すると次のようになります。

MOD(30, 7) = 30 - 7*INT(30/7)
           = 30 - 7*4
           = 30 - 28
           = 2

結果は 2 となりました。

いずれの場合も MOD 関数の結果として得られた値と一致しました。このように MOD 関数の引数のどちらかが負の値の場合は、少し分かりくい結果となることがありますのでご注意ください。

INT 関数の使い方については「INT関数:小数点以下を切り捨てる」を参照されてください。

MOD関数の使い方

それでは実際に MOD 関数を使ってみます。 Excel のシートに対象の数値を次のように入力しました。

MOD関数の使い方(1)

取得した剰余を表示する D3 セルを選択し、次のように入力しました。 MOD 関数の 1 番目の引数に、対象の数値が含まれる B3 セルを指定します。また MOD 関数の 2 番目の引数に、除算を行う除数が含まれる C3 セルを指定します。

=MOD(B3,C3)

MOD関数の使い方(2)

Enter キーを押すと、 D3 セルには次のように表示されます。

MOD関数の使い方(3)

B3 セルに入力されている数値を C3 セルに入力されている数値で除算した剰余を D3 セルに表示しました。今回は対象の数値が 17 、除数が 3 でしたので剰余は 2 が返されました。

同じように D4 セルから D7 セルには MOD 関数を入力すると次のように表示されました。

MOD関数の使い方(4)

Excel では 0 で除算を行うと #DIV/0! エラーが発生しますのでご注意ください。

MOD関数の便利な利用方法

MOD 関数の便利な利用方法を下記の記事で紹介しています。

-- --

Excel における MOD 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。