答案1
您可以在带有通配符的精确匹配模式下使用 INDEX/MATCH。
第二张表中的 B1 至 B4 将是:
=IF(UPPER(INDEX(Sheet1!$A$1:Sheet1!$C$4,MATCH(A4&"*",Sheet1!$A$1:Sheet1!$A$4,0),3))="NO",INDEX(Sheet1!$A$1:Sheet1!$C$4,MATCH(A4&"*",Sheet1!$A$1:Sheet1!$A$4,0),2),"")
Excel 会处理大小写不匹配的问题,并且在 sheet1 中名称的首字母大写。
下面的示例与作者帖子中的示例略有不同,以说明第二张表 A 列中的名称列表可以按任何顺序排列。因此 Bob 在 A3 上重复出现,并且正如预期的那样,B3 中没有任何输出,因为 Bob 在第一个表的 C 列中输入的是“是”。
答案2
一种选择是只添加一列,从工作表 1 的 A 列中删除名字。然后,您可以使用此列作为参考。
步骤 1:在 Sheet 1 中,在当前 A 列和 B 列之间插入一个新列,并将此公式粘贴到第一行(假设第一行包含实际数据 - 如果不是,请将“A1”中的“1”更改为第一行的内容):。=LEFT(A1,FIND(" ",A1)-1)
将此公式拖到工作表的下方。这将创建一个名字列。
步骤 2:现在,您可以在 Sheet 2 上的 VLOOKUP 中引用名字列。例如,在 Sheet 2 的 B 列中粘贴此公式:=VLOOKUP(A1,Sheet1!B1:D4,3,FALSE)
并将其向下拖动。当然,您可能需要更改公式引用的确切行,因为您的示例未指示行号。
瞧!
根据需要进行编辑,仅返回 C 列中包含“否”的记录
...最后,只需将 Vlookup 包装在 IF 语句中,然后像之前一样将公式向下拖动:
IF (Sheet1!C1="no", VLOOKUP(A1,Sheet1!B1:D4,3,FALSE),"")