中文字幕日韩一区_久久久精品久久久久_国产一区中文字幕_亚洲欧美日本国产

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管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 万载县| 汶上县| 连江县| 永善县| 辽宁省| 临潭县| 大宁县| 平定县| 高邑县| 合作市| 辽阳市| 鲁甸县| 南部县| 东平县| 武宁县| 铁岭县| 揭东县| 达拉特旗| 雷波县| 肥东县| 交口县| 曲靖市| 华安县| 鹿邑县| 福贡县| 泽库县| 进贤县| 咸宁市| 洛浦县| 孟村| 安康市| 大名县| 高台县| 盐亭县| 枝江市| 洛隆县| 双鸭山市| 武鸣县| 瑞丽市| 汉阴县| 通辽市|