我有两个人名单,我必须检查他们是否在两个列表中。问题是其中一个列表(例如“ - ”)中不接受字符,并且该人可能省略了姓氏,以防他们有两个。
例如:
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
公式将-
替换为空格并再次进行搜索。
答案 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示例。