检查2个不同列中的值是否包含匹配项

时间:2016-09-13 12:25:53

标签: sql-server excel excel-vba vba

我在Excel文件中有2列(我从2个不同的服务器上的2个不同的SQL视图中提取它们)。那应该包含相同的数据。例如:

Name               Name
Adam Smith         Adam Smith
Billy Jones        Bill Jones
Colin Richards     Colin Richards
Dale Cooper        Dal Coop

我希望能够检查每列是否包含这些名称的完全匹配或部分匹配,问题是每列中有1000多个名称

我尝试过VLOOKUP,但我认为我没有做正确的逻辑。他们还有其他方式吗?

修改

我试过的我的VLOOKUP逻辑就是这个

=VLOOKUP(B2,A:A,1,TRUE)

我试图匹配B列中的第一个值以匹配A列的整个列并显示为TRUE,这就是我累了

1 个答案:

答案 0 :(得分:2)

您可以在sql server中使用SOUNDEX。它返回一个四字符(SOUNDEX)代码来评估两个字符串的相似性。 由于您要检查精确或部分字符串匹配SOUNDEX是一个不错的选择。请参阅soundex文档https://msdn.microsoft.com/en-us/library/ms187384.aspx。 我已经使用soundex进行查询,并且它给出了预期的结果。

代码如下

create table #one(name1 varchar(30),name2 varchar(30))
insert into #one values ('Adam Smith','Adam Smith')
insert into #one values ('Billy Jones','Bill Jones')
insert into #one values ('Colin Richards','Colin Richards')
insert into #one values ('Dale Cooper','Dal Coop')

select *, SOUNDEX(name1) name1_soundex, SOUNDEX(name2) name2_soundex 
from #one where 
SOUNDEX(name1) = SOUNDEX(name2)

Result

如果您想在MS Excel中使用soundex,请参阅此问题

http://stackoverflow.com/questions/14700074/how-to-find-the-match-between-text-that-typo-in-excel