在用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


发表评论