Excel - 使用变量名匹配两列

时间:2016-08-12 12:31:05

标签: excel

我有两个人名单,我必须检查他们是否在两个列表中。问题是其中一个列表(例如“ - ”)中不接受字符,并且该人可能省略了姓氏,以防他们有两个。

例如:

A1 B2 John Paul John Paul Jones Mary Williams Ryan Roberts Ryan Roberts-Johnson Mary Williams

我的公式是:=IFERROR(MATCH($A1,$B$1:$B$1215,0),IFERROR(MATCH(LEFT($A1,FIND(" ",$A1,1)),$B$1:$B$1215,0),"No Match"))

这个想法是:如果名称相同,请告诉我该人所在的行。如果没有,请查找名字,看看你是否找到了第一个名字然后把它带给我。如果两者都不起作用,请回复“不匹配”。

但显然Match功能只检索完全匹配,因此First Name不起作用。

还有其他方法可以解决这个问题吗?

EDIT1:首先发现:我可以使用SUBSTITUTE公式将-替换为空格并再次进行搜索。

2 个答案:

答案 0 :(得分:1)

我为节省一些时间所做的一些事情(我可能花费更多的时间来计算/研究,如果我手动完成了3500个条目,但学习机会很棒。)

我想要的: 当我只有姓氏时,要搜索名称为+姓氏的单元格。

我做了什么:我记得有关通配符并将它们与VLOOKUP一起使用:

首先,我得到了姓氏并添加了明星:="*"&RIGHT($A1,LEN($A1)-FIND(" ",$A1,1))

=VLOOKUP(A1,$B$1:$B$1000,1,FALSE)

它会尝试找到第一个。在此之前,我添加了一张支票,以确保没有两个姓氏的人(因此不会在那里抛出另一个人),只有一个简单的IF(COUNTIF($C$2:$C$2000,$D219)<=2,然后是公式的其余部分。

我注意到的其他内容并提醒:TRIM非常重要,因为有些单元格在名字的最后一个字母之后的名字/最后一个字母和一个空格之间有两个空格。使用TRIM创建一个新列让我避免了很多错误,我只花了一段时间才注意到。

我相信这个案子已经解决了。

答案 1 :(得分:0)

您可以创建一个临时列,从B列中提取名字。

请参阅this示例。