Excel中如何利用MOD函数解决循环排班问题

冬雪酱_6443

冬雪酱_6443

2026-07-15

1029人浏览

原创

用excel做循环排班,靠mod函数就能把日期序号转成0、1、2、3……这样的循环余数,再搭配index函数直接返回早、中、晚、休这类班次。核心公式是 `=index($h$2:$h$5,mod(row(a1)-1,4)+1)`,往下一拉填充,4个班次就会自动反复轮转。

Excel 排班表中按日期展开班次和休息状态

这个方法专门适配固定周期的排班场景,比如早中晚休4天一轮、白夜休3天一轮,或是多人错位轮班的需求。只要轮班规则是按固定顺序重复,用MOD就能代替人工挨个复制班次,全靠公式自动生成。

第一步:先把循环班次单独列出来

先在表格旁边单独列好所有班次,比如H2:H5单元格依次输入“早、中、晚、休”,后面公式返回的结果就从这个列表里取。别把班次直接写死在很长的IF嵌套公式里,不然之后要调整班次顺序的时候会特别麻烦。

只排一个人的话,列表按实际轮换顺序写就行;要是需要给多个人错位排班,先定好第一个人的轮班顺序,再用公式偏移,后面第二、第三个人就能从不同的班次开始轮。

Excel 使用 MOD 和 ROW 生成循环余数

第二步:用 MOD 生成循环编号

MOD函数的功能是取余数。比如 `MOD(ROW(A1)-1,4)` 算出来的结果是0,往下填充到下一行,ROW(A2)-1变成1,结果就等于1,继续往下拖结果会依次得到2、3,到第5行又跳回0,刚好形成0、1、2、3、0、1、2、3的循环。

为什么公式里要减1?因为INDEX函数的位置参数是从1开始计数的,MOD生成的余数刚好可以从0起步,后面给最终结果再加1,就能把0、1、2、3转成1、2、3、4,刚好对应班次列表里第1到第4个项目的位置。

Excel 公式栏中查看 IF 和 MOD 组合公式结果

第三步:用 INDEX 把编号转换成班次

在第一个要填班次的单元格里输入公式:`=INDEX($H$2:$H$5,MOD(ROW(A1)-1,4)+1)`。其中 `$H$2:$H$5` 就是你提前列好的班次列表,`MOD(ROW(A1)-1,4)+1` 是用来指定取列表里第几个班次。

公式输完直接向下拖动填充,结果就会自动按“早、中、晚、休”循环。如果你的排班周期是3天,就把班次列表改成3个项目,同时把公式里的数字4改成3;周期是5天就改成5就行。

PDF to Excel
PDF to Excel

将PDF中的表格和文本提取到Excel工作簿(XLSX),每页对应一个工作表。

下载
Excel 月排班表模板中设置年份和月份

第四步:先生成日期,再让班次跟着日期走

排班表一般要先把日期列做出来,可以用 `DATE(年,月,1)` 生成当月第一天,下一行直接用上一行的日期加1,一直拖到当月最后一天。之后切换年月的时候,日期列会自动更新,班次公式也能跟着正常计算。

如果直接靠行号循环,中途插入空行很容易打乱结果。更稳妥的做法是用当前日期和排班起始日期的天数差来算班次,比如写 `MOD(A10-$A$10,4)`。A10是当前行的日期,$A$10是排班的起始日期,就算之后表格整体移动位置,循环逻辑还是按日期差计算,不会出错。

Excel 排班表中用 DATE 生成当月日期

第五步:多人排班时给每个人增加偏移量

多人排班不能所有人都从同一个班次开始,不然所有人每天的班都一模一样。可以给不同的人加不同的偏移量,比如第一个人偏移0,第二个人偏移1,第三个人偏移2。公式可以写成:`=INDEX($H$2:$H$5,MOD($A10-$A$10+COLUMN(A1)-1,4)+1)`。

这个公式里,`COLUMN(A1)-1` 随着你向右填充,会自动变成0、1、2、3,刚好用来给不同的人错开班次。向右拖填充完所有人员列,再向下拖覆盖整个排班周期,一张基础的循环排班表就出来了。

Excel 排班表中统计早中晚休各班次数量

第六步:用 COUNTIF 检查各班次数量

排班做完最好用COUNTIF核对一遍,比如统计某个人当月早班有几次、中班几次、晚班几次、休息几天。公式可以写成 `=COUNTIF(D10:D40,"早")`,再把条件换成其他班次逐一统计就行。

要是发现某个人的休息天数明显不对,先检查公式里的循环周期数有没有写错,再核对起始日期和偏移量的数值对不对。MOD排班最大的好处就是逻辑清晰:排班周期是几,余数就除以几;想要谁错开班次,就给谁的参数里加对应偏移量。

把这个逻辑摸透,固定周期的排班根本不用一格一格手填。先列好所有班次,用MOD取余生成循环位置,再用INDEX返回对应的班次名称,几秒钟就能自动展开一整个周期的排班表。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

excel

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

2023.07.25

4941

7

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

3036

5

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

2023.08.02

2820

3

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

2023.08.02

1444

3

excel斜线表头一分为二
excel斜线表头一分为二

excel斜线表头一分为二的方法有使用合并单元格功能方法、使用文本框功能方法、使用自定义格式方法。本专题为大家提供excel斜线表头一分为二相关的各种文章、以及下载和课程。

2023.08.02

697

5

绝对引用的输入方法
绝对引用的输入方法

绝对引用允许在公式中引用一个固定的单元格,而不会随着公式的复制和粘贴而改变引用的单元格。本专题为大家提供绝对引用相关内容的文章,大家可以免费体验。

2023.08.09

5148

7

java导出excel
java导出excel

在Java中,我们可以使用Apache POI库来导出Excel文件。本专题提供java导出excel的相关文章,大家可以免费体验。

2023.08.18

6443

6

excel输入值非法
excel输入值非法

在Excel中,当输入的数值非法时,有以下多种处理方法。本专题为大家提供excel输入值非法的相关文章,大家可以免费体验。

2023.08.18

1661

3

excel生成二维码
excel生成二维码

虽然Excel本身并不直接支持生成二维码,但我们可以借助一些插件或宏来实现在Excel中生成二维码的功能。本专题为大家提供excel生成二维码的相关文章。

2023.08.18

2698

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 44万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.5万人学习