在 Excel 里面 mod 函数是取余运算函数,核心作用就是计算两个数字做除法之后剩下的余数,也就是被除数除以除数,除完整数部分之后剩余的数值,这个函数经常搭配 INDEX ROW IF 这类函数,实现循环轮换,奇偶判断,隔行填充,周期性排班,像之前做值日表自动轮值,奇偶行高亮,每隔 N 行提取数据,都是 mod 函数高频应用场景,很多新手只知道它单纯算余数,不清楚它在循环逻辑里面的价值,理解两个参数规则,掌握返回值规律,就可以利用余数周期性的特点,做出自动循环的公式,不需要手动逐行录入数据,大幅提升长期报表排班表的制作效率,同时还要留意除数为零,负数取余这些特殊情况,避免公式报错或者结果不符合预期。
函数基础语法原理
mod 函数一共包含两个参数,第一个参数是 number,也就是被除数,第二个参数是 divisor,也就是除数,运算逻辑就是 number 除以 divisor,丢弃商的整数部分,只保留余数,返回的余数符号会和除数保持一致,这个是 Excel mod 函数很特殊的规则,和部分编程语言取余逻辑不一样,很多人在这里踩坑。
mod 函数最关键的特性就是结果具备周期性,当被除数持续加 1,余数会按照 0,1,2 一直到除数减 1,然后又回到 0,不断循环,正是这个循环特性,让它可以实现每隔固定行数切换,人员循环排班,奇偶判断,比如除数是 2 的时候,余数只会是 0 或者 1,正好用来区分奇数行偶数行。
基础操作步骤
1 打开 Excel 表格,点击需要输出结果的空白单元格,输入等于号,接着输入 mod,括号里面填写第一个参数被除数,逗号之后填写第二个参数除数,完整示例公式 = mod (10,3),按下回车键,10 除以 3 商是 3,余数是 1,单元格就返回数字 1。
2 如果被除数是单元格引用,比如 A2 是被除数,公式写成 = mod (A2,3),回车之后,自动读取 A2 里面的数值计算余数,鼠标放到单元格右下角,拖动填充柄向下填充,每一行都会自动读取本行 A 列数值计算余数。
3 奇偶判断场景,除数写 2,公式 = mod (A2,2),结果等于 1 代表奇数,结果等于 0 代表偶数,一般会搭配 if 函数,写成 = if (mod (A2,2)=1,"奇数","偶数"),自动判断数字奇偶。
4 循环排班场景,搭配 ROW 函数,ROW (A1) 会随着下拉依次变成 ROW (A2) ROW (A3),公式 = mod (ROW (A1),5),下拉之后余数按 0 1 2 3 4 循环,再结合 INDEX 函数,就可以实现 5 个人循环轮换,这就是自动值日表核心公式原理。
常用写法对照表
| 应用需求 | 公式示例 | 说明 |
|---|---|---|
| 基础取余计算 | =mod(10,3) | 返回余数 1 |
| 判断奇偶 | =mod(A2,2) | 余数 1 为奇数,余数 0 为偶数 |
| 每隔 3 行循环 | =mod(ROW(A1),3) | 余数按 0 1 2 循环 |
| 搭配 if 判断奇偶 | =if (mod (A2,2)=1,"奇数","偶数") | mod 作为 if 的判断条件 |
| 负数取余 | =mod(-10,3) | 返回 2,余数符号跟随除数 |
进阶应用场景
第一种是隔行填充与条件格式,选中数据区域新建条件格式公式,写入 = mod (ROW (),2)=0,偶数行自动填充底色,做斑马纹表格,阅读长表格的时候不容易看错行,这个是办公美化表格非常经典的用法。
第二种是周期性提取数据,每隔 N 行提取一条记录,比如每 4 行提取一行,公式搭配 INDEX 和 mod,筛选出余数等于 0 的行,适合大数据表抽样提取。
第三种是循环轮换,人员名单固定数量,mod 控制循环序号,搭配 INDEX,排到最后一名之后自动回到第一名,适合值日表值班表轮班表,这个也是 mod 函数最受欢迎的进阶用途。
第四种是日期周期计算,计算距离某个周期的剩余天数,比如按 7 天为一个周期,用 mod 计算余数,判断是不是周末,按周循环统计。
常见错误排查
第一个错误,公式返回 DIV/0! 错误,原因是除数也就是第二个参数写 0,除数不能为零,修改除数为非零数字就可以修复。
第二个错误,负数取余结果和自己预想不一样,Excel 的 mod 函数余数符号和除数保持一致,不是跟随被除数,理解这个规则之后就不会疑惑。
第三个错误,循环排班公式从 1 开始还是从 0 开始混乱,mod 余数是从 0 开始循环,如果想要序号从 1 开始,可以在外面加调整,比如 mod (ROW (A1),5)+1,余数 0 的时候变成 1。
第四个错误,ROW 函数引用错误,下拉之后循环序号错乱,确认 ROW (A1) 这种写法,下拉的时候才会依次递增,如果直接写 ROW (),代表当前行号,要根据需求选择写法。
【常见问题】
问题 1 excel 中 mod 函数除数为零会出现什么情况
回答 1 excel 中 mod 函数第二个参数除数如果填写 0,excel 中 mod 函数就会返回 DIV/0! 错误,使用 excel 中 mod 函数的时候必须保证除数是不为零的数值。
问题 2 excel 中 mod 函数为什么适合做循环排班
回答 1 excel 中 mod 函数计算出来的余数具备周期性,数字递增的时候余数会循环往复,excel 中 mod 函数搭配 ROW 和 INDEX 之后,就可以实现人员自动循环轮换,是值日值班排班表的核心函数。
问题 3 excel 中 mod 函数判断奇偶怎么写公式
回答 1 excel 中 mod 函数判断奇偶,公式写 = mod (A2,2),返回 1 代表奇数,返回 0 代表偶数,excel 中 mod 函数还可以嵌套进 if 函数,自动输出奇数或者偶数文字结果。
问题 4 excel 中 mod 函数负数取余规则是什么
回答 1 excel 中 mod 函数的特殊规则是返回余数的符号和除数保持一致,excel 中 mod 函数负数取余结果和部分软件计算结果不一样,使用 excel 中 mod 函数做业务计算的时候要提前确认这个规则。
【免责申明】
本文基于常规版本 Excel 讲解 excel 中 mod 函数用法,不同版本 Excel 函数运算规则保持一致,第三方改版软件宏环境可能存在细微差异,本文仅作为学习参考,excel 中 mod 函数搭配嵌套公式完成排班抽样计算之后,请人工抽样核对循环结果,负数取余特殊场景建议单独测试验证。


