编辑:Example file available here.
我不是一个非常有经验的Excel用户,但是我正在尝试使用IF / AND / INDEX / MATCH来自动对从竞争者中从大约300种选择中选择的首选项分配是/否。每个人列出了4个首选项,此过程中有1000多个人,每个人从四个首选项中获得一个。我想简化这种情况的一种假设情况,即我想在一家餐厅自动进行员工轮班分配,其中员工数据列在最上层,最坏的在下层。
传统上,“班次分配”表是手动完成的,当您一周的7天有30名员工时,这很好。但是,如果我一周有300天,又有1000名员工,则我不想手动将每个人分配给他们的偏好。或者,如果我确实有手动输入,我希望它可以预先自动执行足够的轮班分配,这样就不会占用太多时间。
理想情况下,为轮班分配中的轮班分配是/否指示器的自动公式将查看员工在“员工数据”表中列出的第一偏好(一周中的某天),请查看“轮班可用”表以查找一周中的某天,然后查看K列中可用的轮班数,如果K列大于0,则在Shift Allocation工作表上将该员工的偏好设置为YES,然后继续下一位员工。
按优先选择的人员列出员工,因此从理论上讲,最底层的某些人可能无法获得他们偏爱的班次,或者由于其他原因,在自动分配过程之后可能需要进行其他手动更改。
我尝试了VLOOKUP,但查找逻辑不够广泛,因此我需要像INDEX / MATCH参数之类的东西,才能在A列中找到星期几后在Shifts Available表的K列中找到可用的移位位置。
这与我得到的代码有关
=IF(AND(INDEX('Shifts Available'!$A$2:$K$8, MATCH('Employee Data'!$A$2,0)), 'Shifts Available'![K-column cell corresponding to the day of the week, unsure how to do this? Keep it in the INDEX?]) >=0)"Yes", "No")
感谢您的帮助。