Excel(エクセル)MOD関数の使い方||割り算の剰余(あまり)を求める
使用関数:MOD、IF、ROW
MOD関数とは?
MODは正式にはモデュラス(Modulus)と読みますが「モッド」と略して読んだ方が分かりやすいと思います。
モデュラスは係数(2つの異なる整数の差を余りなしに割り切ることができる整数)のことで、MOD関数は割り算した「あまり」の数値を返します。どんな使い道があるの?と思うかもしれませんが、これが意外にもいろいろな場面で役立つ関数なのです。
Excel(エクセル)の「数式」タブ→「関数ライブラリ」→「数学/三角」の中にMOD関数はあります。
MOD関数の引数
MOD関数の引数ダイアログボックスを開いてみると、引数が「数値」と「除数」になっています。
割り算は「除算」ともいい、「数値(被除数ともいう)」が「割られる数」、「除数」が「割る数」です。数値を除数で割った答えを「商」といい、割り切れずに余った値を「剰余」といいます。MODはこの「剰余=あまり」を求める関数です。
MOD関数で余りを計算する
実際に簡単な割り算を実行してみます。
以下の表で「数値」に入れる「割られる数」をA2セルの31、「除数」に入れる「割る数」をB2セルの6で計算します。
剰余(割り算のあまり)のセルに「1」と入りました。
「除数」0で割り算するとエラー
データベースで時として「0」が除数(割る数)のセルに入っていることがあり、「0」で割り算するとエラー「#DIV/0!」が返されます。
もし、除数に「0」が入り込む可能性があるなら、予めIF関数にMOD関数を入れ子して#DIV/0を非表示にする処置をしておきましょう。
MOD関数とROW関数で奇数の行と偶数の行を分ける
MOD関数の使い道の一つに、行番号や連番を利用して奇数の行と偶数の行を分別できるというのがあります。
これを応用して、以下の名簿から順繰りにチーム分けをしてみます。
「チーム」の最初のセルを選択し、MOD関数の引数「数値」に行番号を取得するROW関数を「ROW()」と指定し、「除数」には「2」と数値を入力します。
MOD関数で行番号を2で割り算すれば、割り切れたら「0」が返り、割り切れなければ「1」が返ります。
計算式は「=MOD(ROW(),2)」です。
「チーム」列のセルすべてにオートフィルコピーすると、「0」「1」が交互に入りました。
「1」と入ったセルはA列の番号が奇数で「2」で割り切れずに「1」が余ったということ、「0」と入ったセルはA列の番号が偶数で「2」で割り切れたので「0」が返ったということです。
MOD関数の応用で、IF関数にネストしてチーム分けする
上記のMOD関数の計算式から「=」を除いた「MOD(ROW(),2」をIF関数の「論理式」に入力、後に続けて「=0」と付け加えます。
「真の場合」に「”Aチーム”」、「偽の場合」に「”Bチーム”」と入力。
最終的な数式は「=IF(MOD(ROW(),2)=0,"Aチーム","Bチーム"))」となります。「もし、行番号を2で割った余りが0だったらAチームと表示し、余りが1だったらBチームと表示する」
フィルコピーし直せば、交互のチーム分けが完了です。
分かりやすいように「条件付き書式」でフォントの色を変えておきました。
MOD関数で繰り返し連番を振る
「1,2,3」「1,2,3」「1,2,3」というように順番の数字を繰り返し振っていきます。前章で解説したチーム分けは2チームですが、3チーム以上に分ける場合にも応用できます。
前章で使ったのと同じ名簿で、「チームNo.」の最初のセルを選択し、MOD関数の引数「数値」に行番号を取得するROW関数を「ROW()-2」と指定します。「除数」にはチーム分けしたい数値(ここでは「5」としましたが、「3」以上の数なら操作は同じです)を入力します。
5チームに分けたい時の計算式は「=MOD(ROW()-2,5)」です。
フィルコピーすれば、5までの数字が順番に繰り返されます。
「3」チーム分け、「4」チーム分け、「8」チーム分けでも同じ。
計算式に「”」で文字列を括って「&」でつなぐことで、分かりやすい表示にできます。
MOD関数とQUOTIENT関数を組合せて金種表を作る
従業員の給与支払いで紙幣と硬貨が何枚必要かを一覧にした金種表を作るのに、MOD関数を使います。金種表の作り方はQUOTIENT関数の記事の中で解説しています。