我有一行 10,000 个名字,位于两个相应的列中,每列 10,000 个。 A 列中的每个单元格对应于 B 列中的相邻单元格。我想进行模糊匹配,并获得所有单元格与相邻单元格的兼容性分数。我不希望它搜索整个列与整个列,只搜索相邻的单元格,我似乎无法使用模糊匹配 Excel 插件来做到这一点,有想法吗?
Example:
Column A: Column B: Value:
Apple Aplle 80%
Banana Banana 100%
Orange Ornge 85%
好吧,我不知道 Fuzzy Match Addin,但您可以使用 UDF 完成与您的要求类似的任务。
根据您的样本数据类似的东西
Function FuzzyComparision(String1 As String, String2 As String) As Double
Dim intStringLength As Integer
Dim dblScore As Double
Dim dblUnitScore As Double
Dim intCounter As Integer
intStringLength = WorksheetFunction.Max(Len(String1), Len(String2))
dblUnitScore = 1 / intStringLength
dblScore = 0#
For intCounter = 1 To intStringLength
If Mid(UCase(String1), intCounter, 1) = Mid(UCase(String2), intCounter, 1) Then
dblScore = dblScore + dblUnitScore
Else
If Len(String1) <> Len(String2) And intCounter < intStringLength Then
If Mid(UCase(String1), intCounter + 1, 1) = Mid(UCase(String2), intCounter, 1) Then
dblScore = dblScore + dblUnitScore
End If
End If
End If
Next
FuzzyComparision = dblScore
End Function
当然,可以根据需要进一步即兴进行比较。
如果有帮助请告诉我
编辑:正如培根等级所指出的(感谢您的观察),对于丢失的字母,这不能按预期工作。我对该函数进行了一些调整,以进行不区分大小写的比较并补偿丢失的字母,如示例所示。
尽管它有效,但效用取决于可接受的分数偏差+/-。 OP 可能会带来一些启发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)