Excel VBA自定义函数,判断两个字符串的相似度

利用收集数据时,如果事先没有对数据录入作出统一的规范性限制,就可能会收集到一些不统一的数据。

Excel VBA自定义函数,判断两个字符串的相似度

以上图中C列的学校名称为例,既有简称,也有全称,而且各种简称的信息也不完全一致,面对这样的表格,如果数据量很大,要在其基础上进行数据查询、数据分析之类的工作,名称不统一的问题是一个较大的麻烦。

很多时候,可能需要通过公式或其他方法求两个名称的相似度,通过相似度的高低来判断两个名称指的是否为同一个事件。

Excel中没有现成的函数可以求两个文本的相似度,我们可以使用来写一个自定义函数帮助解决类似的问题:

Function TextSame(ByVal Str1 As String, ByVal Str2 As String) As Double    '—————————————————————–    '说明:    '1.函数返回的结果为一个0到1之间的小数,代表参数两个数据的想似度    '2.函数有两个参数,代表用来对比的两个数据    'QQ:4597716(微信同号),公众号:Excel笔记    '—————————————————————–    Application.Volatile True    Dim LenStr1 As Long, LenStr2 As Long, n As Long    LenStr1 = Len(Str1)    LenStr2 = Len(Str2)    n = 0    If LenStr1 >= LenStr2 Then        For i = 1 To LenStr2            If (InStr(1, Str1, Mid(Str2, i, 1))) > 0 Then                n = n + 1            End If        Next        TextSame = n / LenStr1    Else        For i = 1 To LenStr1            If (InStr(1, Str2, Mid(Str1, i, 1))) > 0 Then                n = n + 1            End If        Next        TextSame = n / LenStr2    End IfEnd Function

在Excel的VBE编辑器中新建一个模板,将以上代码复制、粘贴到模块中。

再回到Excel中,就能像使用普通函数一样使用自定义函数求两个文本的相似度了。

求得文本的相似度之后,根据自定义的标准,再借助其他函数,就能判断两个文本是否同一个内容,进行进行内容的修正了。

温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
Excel/VBA

什么是VBA注释? VBA注释的优点,VBA怎么添加注释

2025-3-10 16:36:53

Excel/VBA

Excel利用条件格式隐藏数据,输入密码才能显示和查看

2025-3-10 16:36:59

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索