Что ж, я не знаю о надстройке Fuzzy Match, но вы можете выполнить то же самое, что и ваши требования, с помощью 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
Конечно, при необходимости сравнение может быть импровизировано. Сообщите мне, если это поможет
Изменить: как указал Grade Bacon (спасибо за это наблюдение), это не работает должным образом для отсутствующих букв. Я немного изменил функцию, чтобы проводить сравнение без учета регистра и компенсировать пропущенные буквы, как в примере.
Несмотря на то, что это работает, полезность зависит от допустимого отклонения оценок +/-. OP может пролить свет.
person
PankajR
schedule
20.11.2015