我如何模糊匹配相邻的细胞?

我在两个对应的列中有一排10,000个名字,每个名字中有10,000个名字。 列A中的每个单元格对应于列B中的相邻单元格。我想要做一个模糊匹配,并获得与所有邻居单元格的兼容性分数。 我不希望它search整个列与整个列,只是相邻的单元格,我似乎无法用模糊匹配Excel添加,想法?

例:

Column A: Column B: Value: Apple Aplle 80% Banana Banana 100% Orange Ornge 85% 

那么,我不知道模糊匹配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 

当然,比较可以根据需要进行进一步的简化。 让我知道如果有帮助

编辑:等级培根指出(感谢那观察),这不符合预期的丢失字母。 我已经调整了一些function来做一个不区分大小写的比较,并补偿丢失的字母,例如。

即使它有效,效用取决于可接受的分数偏差+/-。 OP可能会有所改变。

Interesting Posts