[英]INDEX MATCH 2 Column Criteria [Partial Match + Full Match]
有一张名为“预订”的表格。
H 列反映了他们的角色
在当前工作表中:
如何修改索引匹配的以下代码以仅从“预订”中提取部分匹配列 J 的员工?
如果某人的角色是“销售”,我可以让它拉过“销售”。 如果某人的角色是“接待员”,我可以让它拉过“接待员”。 但是,如果是“SALES AND RECEPTIONIST”作为角色,无论是“SALES”还是“RECEPTIONIST”都拉不过去。
请告知我应该如何修改下面的公式。
=IFERROR(INDEX(Bookings!$B:$B,
MIN(
IFERROR(MATCH(1,($N3=Bookings!$C:$C)*($J3=Bookings!$H:$H),0),1E+99),
IFERROR(MATCH(1,($N3=Bookings!$D:$D)*($J3=Bookings!$H:$H),0),1E+99),
IFERROR(MATCH(1,($N3=Bookings!$E:$E)*($J3=Bookings!$H:$H),0),1E+99),
IFERROR(MATCH(1,($N3=Bookings!$F:$F)*($J3=Bookings!$H:$H),0),1E+99),
IFERROR(MATCH(1,($N3=Bookings!$G:$G)*($J3=Bookings!$H:$H),0),1E+99)
)))
我从您的陈述中了解到的(您的问题需要澄清一下):
如果某人的角色是“销售”,我可以让它拉过“销售”。 如果某人的角色是“接待员”,我可以让它拉过“接待员”。 但是,如果是“SALES AND RECEPTIONIST”作为角色,无论是“SALES”还是“RECEPTIONIST”都拉不过去。
您正在寻找一个考虑OR
条件的过滤条件,以防您同时寻找这两个角色。 以下是在单元格F3
上执行此操作的方法(请参见下面的屏幕截图):
=LET(result, FILTER(C3:D20,
(C3:C20<>"") * (IF(A3="SALES AND RECEPTIONIST",
(D3:D20="SALES") + (D3:D20="RECEPTIONIST"), D3:D20=A3))),
IF(A3="","", result))
您可以通过FILTER function 考虑多个过滤条件。 用乘法 ( *
) 模拟AND
条件,用加法 ( +
) 模拟OR
条件。 对于FILTER
的第一个输入参数的相同范围,每个条件的计算结果为0
或1
,因此这就是您实现它的方式。 我排除了空行以考虑更一般的情况。 LET function 用于方便阅读。 这是屏幕截图:
在单元格A3
中,我有一个列表( Data->Data Validation->Allow选项List ),其中包含以下值: SALES,RECEPTIONIST,SALES AND RECEPTIONIST
,因此您可以按角色动态过滤。
我希望它有助于在您的实际问题上使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.