6 条回帖
本帖最后由 liu_lijian1 于 2021-6-23 14:32 编辑 按照你的描述,主要还是找规律,你按规律去设定,就是简单的加减法了。 你在排班时,肯定也是排未来指定日期内的班次,那么指定起止日期来排班。 开始日期:设定好开始日期的白班班组和晚班班组(假如设定:AB),就可以直接去自动累加计算了。 根据间隔天数,去自动更新班组:间隔天数除以6的余数0和余数为1, 白晚班就是AB 间隔天数除以6的余数2和余数为3, 白晚班就是BC 间隔天数除以6的余数4和余数为5, 白晚班就是CA 如果你是3天换班,设定开始日期白班夜班班组为:BC 根据间隔天数,去自动更新班组:间隔天数除以9的余数0和余数为1, 白晚班就是BC 间隔天数除以9的余数2和余数为3, 白晚班就是CA 间隔天数除以9的余数4和余数为5, 白晚班就是AB 如果搞不定,私信我! |
+11
最近谁赞过
这个步骤可以借鉴分摊法 规律是 前两天相等 那第三天就会变 那就在基本信息表里做三个辅助数据项: 1天前 和 2天前 和 当前是第几天的 “标记” 因为日期可能没有规律 所以明细 别外做了了个 辅助数项 标记 那给明细赋值时 可用 IF 去判断 第一两天就等于基本数据里的早班值 , 后面就做判断 比如:第3天 就去判断 1天前 和2天前的值 如果不等情况 那就等于“1天前”的值 ,相等那就根据 “1天前“的值 去推出第3天用什么班 图2 和 图3 明细变了,首先给基本数据表里的 标记 (相当于第几天 )赋值 , 其次是给 1天前 和 2天前 赋值 4. 给晚班赋值 5. 得出排班 |
+10
本帖最后由 liu_lijian1 于 2021-6-24 19:44 编辑 思路都给你了,剩下的就是灵活去运用函数和公式去实现: 只设置了早晚班,早中晚的情况,自己去实现: 早班表达式:IF( 求余数( (本表单.排班明细.间隔天数 + 本表单.换班周期 *3) , 本表单.换班周期 * 3 )< 本表单.换班周期 , 文本片段(本表单.上班班组,",",1) ,IF(求余数( (本表单.排班明细.间隔天数 + 本表单.换班周期 *3) , 本表单.换班周期 * 3 ) >= 本表单.换班周期 *2 , 文本片段(本表单.上班班组,",",2) , 文本片段(本表单.上班班组,",",3) ) ) 晚班表达式:IF( 求余数( (本表单.排班明细.间隔天数 + 本表单.换班周期 *3) , 本表单.换班周期 * 3 ) < 本表单.换班周期 , 文本片段(本表单.上班班组,",",2) ,IF(求余数( (本表单.排班明细.间隔天数 + 本表单.换班周期 *3) , 本表单.换班周期 * 3 )>= 本表单.换班周期 *2 , 文本片段(本表单.上班班组,",",3) , 文本片段(本表单.上班班组,",",1) ) ) 求余数函数应用: 求余数(被除数,除数)=余数 余数(6,9)=3 除数:就是一个轮班周期,等于 换班天数*3 (找规律:2天一换班,周期就是6天;3天一换班,周期就是9天) 被除数:就是排班日期和开始日期的间隔天数,由于被除数为0(第一天和开始日期的间隔天是0)时,计算错误所以,我们可以把被除数加上一个周期天数就正常了。因此,被除数,等于 间隔天数+换班天数*3 以2天换班为例说明: 当余数<换班天数(1个周期中前面两天): 早班就取:班次中的第1班组(可以用:文本片段函数取值) 晚班就取:班次中的第2班组(可以用:文本片段函数取值) 当余数>=换班天数*2(1个周期中最后两天): 早班就取:班次中的第2班组(可以用:文本片段函数取值) 晚班就取:班次中的第3班组(可以用:文本片段函数取值) 剩下的就是(1个周期中中间两天): 早班就取:班次中的第3班组(可以用:文本片段函数取值) 晚班就取:班次中的第1班组(可以用:文本片段函数取值) GIF动图当中还取错了,已经按上面思路调整后,是正确的了,没有再重新录GIF图片了 |
+10