我在两个相应的列中有一行10,000个名称,每行10,000个。 A列中的每个单元格对应于B列中的相邻单元格。我想进行模糊匹配,并在相邻单元格上获得所有这些单元格的兼容性分数。我不希望它搜索整个列与整个列,只是相邻的单元格,我似乎无法使用模糊匹配Excel添加,想法?
示例:
var $form = $(this).closest('.bookroom1, .bookroom2, .bookroom3, .bookroom4, .bookroom5');
var formData = $form.serializeArray();
formData.push({
name: this.name,
value: this.value
});
$.ajax({
type: 'POST',
url: AJAX_URL,
data: formData,
dataType: 'json',
success: function (response) {
if ($form.hasClass('bookroom5')) {
alert('you have used form bookroom5')
}
}
});
答案 0 :(得分:1)
好吧,我不了解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可能会有所启发。