在用vba做企业名称判断时,经常会遇到需要判断两个公司名称是否相似。
这个就涉及到字符串相似度的判断。
这里介绍一个最简单的判断方法,就是分别将其中一个字符串中的任意一个文字提取出来进行包含判断,最后统计包含的字符数。
以下是一个判断的自定义vba函数:
Function IsTheSame(ByVal str1 As String, ByVal str2 As String) '作者QQ:1722187970,微信:xycgenius,公众号:水星Excel '如果返回1,则相似,否则不相似。 len1 = Len(str1) len2 = Len(str2) matchLen = 0 If len1 >= len2 Then For i = 1 To len2 If (VBA.InStr(1, str1, Mid(str2, i, 1))) > 0 Then matchLen = matchLen + 1 End If Next If matchLen >= len1 * 2 / 3 Then result = 1 Else result = 0 End If Else For i = 1 To len1 If (VBA.InStr(1, str2, Mid(str1, i, 1))) > 0 Then matchLen = matchLen + 1 End If Next If matchLen >= len2 * 2 / 3 Then result = 1 Else result = 0 End If End If IsTheSame = result End Function
发表评论