给定一组员工、之前安排的轮班和新的未安排轮班;我可以创建一个下拉列表,仅显示未安排在与新建议班次重叠的日期范围内的员工姓名吗?
班次将始终以开始日期的形式显示在一个单元格中,并以结束日期的形式显示在另一个单元格中。
=IF(COUNTIFS($A$3:$A$5,"<="&E1,$B$3:$B$5,">="&E1)+COUNTIFS($A$3:$A$5,"<="&D1,$B$3:$B$5,">="&D1),"重叠","不重叠")
此公式对于突出显示日期范围之间的潜在冲突很有用,但我希望潜在的公式可以从仅包含可用员工姓名的下拉列表中对单元格中的员工姓名进行操作!
这可能吗?
我会尝试一下。 创建花名册表,创建员工列表表。
=LET(
EmployeeList, EmployeeNames[Employee list],
RosterStart, RosterTable[Start Date],
RosterEnd, RosterTable[End Date],
RosterEmployee, RosterTable[Employee name],
StartDate, A3,
EndDate, B3,
AssignedEmployees, FILTER(RosterEmployee, (RosterStart <= EndDate) * (RosterEnd >= StartDate)),
UnassignedEmployees, FILTER(EmployeeList, ISNA(MATCH(EmployeeList, AssignedEmployees, 0))),
UnassignedEmployees
)
在空白单元格中输入上述公式。 使用范围管理器添加范围名称,确保将其标记为溢出范围,因此在本例中
=Sheet1!$H$1#
(注意最后的#
)
使用上述范围的名称添加数据验证。