请大神帮帮忙做个员工排班表模板

满足以下条件班表星期上午班下午班夜班维护班一张王李赵二张三四张五六张日张 
如何在表中限制以下数据的录入?
1、同一行不能重复:例如周一(第3行)不能出现重复的人
2、夜班的人第二天不能有班,即从第二行开始既要满足第1条件,又要不能重复出现D3单元格中的人:例如周一李上了一个夜班,那么需要限制周二(第4行)不能写入李,同时第二行也不能出现重复的人。
3、某人在某列中不能存在:例如张只能出现在上午班和下午班中,不能出现在夜班和维护班中。
4、某人在固定时间(某行中)不能存在:例如李只在本次排班中周二周三周四不上班,其他时间上班,下次排班在这三个时段也是能上班的,这个条件属于一个特例& & & & & & & &
做好这个班表的模板,以后每次排班只需要输入数据就可以了。
目前我只能做出第一个条件,但是第二个条件需要附加在第一个条件上,所以以我这个初学者的智商实在是想不出来,谢谢那位高人能指点帮忙解决一下,小妹在这里谢谢了。
在线时间23 小时经验8 威望0 性别保密最后登录注册时间阅读权限10UID2935402积分8帖子精华0分享0
EH新人, 积分 8, 距离下一级还需 12 积分
积分排行3000+帖子精华0微积分0
目前我只会在数据有效性中设置=COUNTIF($B$3:$E$3,B3)=1来满足第一条件,但是第二个条件是在第一条件基础上的,两个数据有效性设置我就不知道怎么写了。
快来帮帮忙,谢谢各位大师了。
在线时间2504 小时经验6592 威望2 性别男最后登录注册时间阅读权限95UID837455积分6792帖子精华0分享0
积分排行125帖子精华0微积分0
不同要求的单元格设置不同的数据有效性,比如只是条件1与条件2=(COUNTIF($B4:$E4,B4)=1)*(COUNTIF($B4:$E4,$D3)=0),如果要你的第3第4条件,就是这个公式加上或排除特定的人&&比如 D4这里数据有效性是=(COUNTIF($B4:$E4,B4)=1)*(COUNTIF($B4:$E4,$D3)=0)*($D4&&&张&)
在线时间23 小时经验8 威望0 性别保密最后登录注册时间阅读权限10UID2935402积分8帖子精华0分享0
EH新人, 积分 8, 距离下一级还需 12 积分
积分排行3000+帖子精华0微积分0
cmxxccxx 发表于
不同要求的单元格设置不同的数据有效性,比如只是条件1与条件2=(COUNTIF($B4:$E4,B4)=1)*(COUNTIF($B4:$E4, ...
太感谢了,激动万分啊
在线时间23 小时经验8 威望0 性别保密最后登录注册时间阅读权限10UID2935402积分8帖子精华0分享0
EH新人, 积分 8, 距离下一级还需 12 积分
积分排行3000+帖子精华0微积分0
cmxxccxx 发表于
不同要求的单元格设置不同的数据有效性,比如只是条件1与条件2=(COUNTIF($B4:$E4,B4)=1)*(COUNTIF($B4:$E4, ...
再继续问个问题,能用COUNTIF语句限制某个字出现在某一行中吗
&比如 countif(b3:f3,&张&)=0&
在线时间23 小时经验8 威望0 性别保密最后登录注册时间阅读权限10UID2935402积分8帖子精华0分享0
EH新人, 积分 8, 距离下一级还需 12 积分
积分排行3000+帖子精华0微积分0
本帖最后由 haiyan7778 于
13:09 编辑
cmxxccxx 发表于
不同要求的单元格设置不同的数据有效性,比如只是条件1与条件2=(COUNTIF($B4:$E4,B4)=1)*(COUNTIF($B4:$E4, ...
发现一个问题,如果用=(COUNTIF($B4:$E4,B4)=1)*(COUNTIF($B4:$E4,$D3)=0)这个公式,当D3为空时就是不填值时,下一行的这个公式就完全不成立了,连第一个countif里面限制的条件都失效了,怎么解决这个问题?
金牌优秀会员
金牌优秀会员奖章No.1
优秀会员奖章No.1
积分≥4700即可申请
关注我们,与您相约微信公众平台!
Copyright 1999 - 2017 Excel Home. All Rights Reserved.本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!
Powered by
本站特聘法律顾问:徐怀玉律师 李志群律师 &&请帮忙排班,A,B,C三人,每个人一个星期休息两天,A,B至少有一个人上班,每天至少保持两个人上班_百度知道
请帮忙排班,A,B,C三人,每个人一个星期休息两天,A,B至少有一个人上班,每天至少保持两个人上班
请帮忙排班,A,B,C三人,每个人一个星期休息两天,A,B至少有一个人上班,每天至少保持两个人上班!最好能够做到三个人都能连休两天。
提问者采纳
AB. AC ,BC .每天都有一个人休息,每个人都是上两天闲一天!
上五天休两天呢
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁排班表被利用了,这里面有猫腻。热心的朋友帮帮忙看看猫腻在哪里_百度知道
排班表被利用了,这里面有猫腻。热心的朋友帮帮忙看看猫腻在哪里
三个人二个岗位,每晚二个人上班,周一到周五晚上14小时128一个班。双休日白天10小时130一个班,晚上14小时170一个班。一个月下来别人27到29个班,我只有24到25个班,比他们都少了。排班表一个星期排一次我感觉就是他们偿涪罐菏忒孤闺酞酣喀钻这个空子了,不过一个星期都是6个班。请问这里面的猫腻在哪里。
提问者采纳
一星期都是六个班就没什么问题,一个月一般30天,刚好四个个礼拜多两天,多的那两天你少上班了,如果31偿涪罐菏忒孤闺酞酣喀天哪就多三天,同理三天你都没班,那就刚好你比别人少三个班以上
提问者评价
其他类似问题
排班表的相关知识
按默认排序
其他1条回答
一个星期排一次 那就说明你为排班位置是固定的!
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁XZK235及各位老师好!感谢XZK235对此考勤表的辛勤付出,这里有一个问题,此表统计结果能达到我的要求,但在我把导入新的指纹考勤数据后,在考勤统计中不能出现统计数据,我的EXCEI版本是2010,我用兼容97-2003也不行,不知毛病出在哪里,等待请各位老师指教!在线等!先谢谢各位老师
15:13 上传
下载次数: 33
30.46 KB, 下载次数: 33
在线时间190 小时经验167 威望0 性别保密最后登录注册时间阅读权限20UID2107365积分167帖子精华0分享0
EH初级, 积分 167, 距离下一级还需 183 积分
积分排行3000+帖子精华0微积分0
xzk235 发表于
不发文件了,自己弄,我觉得我已经说的很明白了,你看你那公式跟我15楼写出来的有什么区别
谢谢XZK235,我再仔细看看
在线时间378 小时经验365 威望0 性别男最后登录注册时间阅读权限30UID338809积分815帖子精华0分享0
EH中级, 积分 815, 距离下一级还需 285 积分
积分排行1304帖子精华0微积分0
libo1025 发表于
XZK235你好,本人因实在弄不好,还得麻烦你伸出援助之手,谢谢!
不发文件了,自己弄,我觉得我已经说的很明白了,你看你那公式跟我15楼写出来的有什么区别
在线时间190 小时经验167 威望0 性别保密最后登录注册时间阅读权限20UID2107365积分167帖子精华0分享0
EH初级, 积分 167, 距离下一级还需 183 积分
积分排行3000+帖子精华0微积分0
XZK235你好,本人因实在弄不好,还得麻烦你伸出援助之手,谢谢!
在线时间190 小时经验167 威望0 性别保密最后登录注册时间阅读权限20UID2107365积分167帖子精华0分享0
EH初级, 积分 167, 距离下一级还需 183 积分
积分排行3000+帖子精华0微积分0
谢谢XZK235,我再仔细看看
在线时间378 小时经验365 威望0 性别男最后登录注册时间阅读权限30UID338809积分815帖子精华0分享0
EH中级, 积分 815, 距离下一级还需 285 积分
积分排行1304帖子精华0微积分0
libo1025 发表于
XZK235你好,是不是改成这样:例如L=MIN(IF(c3=&&,0,min(--zwj&=16.5/24)*(--zwj
好好看看15楼
在线时间190 小时经验167 威望0 性别保密最后登录注册时间阅读权限20UID2107365积分167帖子精华0分享0
EH初级, 积分 167, 距离下一级还需 183 积分
积分排行3000+帖子精华0微积分0
libo1025 发表于
谢谢xzk235 ,我先按你的方法测试一下
XZK235你好,是不是改成这样:例如L=MIN(IF(c3=&&,0,min(--zwj&=16.5/24)*(--zwj&=19/24),--zwj)),但回车提示输入太多参数,去掉最后一句--zwj吧,单元格中的16:59成了空格,请指教。另打卡记录中a列和c列的名字不同,对不起,是我大意没把姓名改成一致。
在线时间190 小时经验167 威望0 性别保密最后登录注册时间阅读权限20UID2107365积分167帖子精华0分享0
EH初级, 积分 167, 距离下一级还需 183 积分
积分排行3000+帖子精华0微积分0
xzk235 发表于
0/是对的,你改成1/后出结果的原因是xm返回的不正确,用到前面的姓名去了。你的打卡记录中a列和c列的名字不 ...
=MIN(IF(c3=&&,0,min(--zwj&=16.5/24)*(--zwj&=19/24),--zwj))
在线时间190 小时经验167 威望0 性别保密最后登录注册时间阅读权限20UID2107365积分167帖子精华0分享0
EH初级, 积分 167, 距离下一级还需 183 积分
积分排行3000+帖子精华0微积分0
xzk235 发表于
0/是对的,你改成1/后出结果的原因是xm返回的不正确,用到前面的姓名去了。你的打卡记录中a列和c列的名字不 ...
谢谢xzk235 ,我先按你的方法测试一下
在线时间378 小时经验365 威望0 性别男最后登录注册时间阅读权限30UID338809积分815帖子精华0分享0
EH中级, 积分 815, 距离下一级还需 285 积分
积分排行1304帖子精华0微积分0
0/是对的,你改成1/后出结果的原因是xm返回的不正确,用到前面的姓名去了。你的打卡记录中a列和c列的名字不同,a列和考勤表里一样,dksj里用的是d列的姓名,所以在考勤表里姓名返回正确的时候在打卡记录里找不到。
那些定义名称本来就是为了最终的公式所用的,所以要测试的话肯定要在最终公式的位置测试。
打卡记录里未打卡的,打卡时间会返回错误值,这导致dksj返回的是错误值而不是空值或0,最终公式IF(AND(sj&&&&,dksj=0)判断的时候肯定就不对,你要用公式把错误值显示成0.
如=MIN(IF((--zwj&=6.5/24)*(--zwj&=9/24),--zwj))这个,要改成if(c3=&&,0,min(……))这个样子。这个公式每列都不一样,别改错了。尤其是最后一列,判断的是下一行的C列。
您需要登录后才可以回帖
写好了,发布
发帖时请遵守我国法律,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任。
关注我们,与您相约微信公众平台!
Copyright 1999 - 2017 Excel Home. All Rights Reserved.本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!
Powered by
本站特聘法律顾问:徐怀玉律师 李志群律师 &&

我要回帖

更多关于 excel做排班表 的文章

 

随机推荐