excel中通过相似度进行模糊匹配两列数据
上都是匹配相同的数据,如果两列数据相似excel中通过相似度进行模糊匹配两列数据,比如A列中a1:a5,B列中b1:b6数据,两列数据有不同程度的相似,如果相似度≥50,...
上都是匹配相同的数据,如果两列数据相似excel中通过相似度进行模糊匹配两列数据,比如A列中a1:a5,B列中b1:b6数据,两列数据有不同程度的相似,如果相似度≥50,就算匹配成功,就在c列中显示出
展开
展开全部
需要用VBA,
供参考
For i = 1 To Sheet5.UsedRange.Rows.Count 'B 栏数据
Bstr = Trim(Sheet5.Range("B" & i).Value)
num = Len(Bstr)
For j = 1 To Sheet5.UsedRange.Rows.Count 'A 栏数据
astr = Trim(Sheet5.Range("A" & j).Value)
If num = 1 Then
If InStr(astr, Bstr) >= 1 Then
m = m + 1
End If
ElseIf num > 1 Then
For k = 1 To num
aaa = Mid(Bstr, k, 1)
If InStr(astr, Mid(Bstr, k, 1)) >= 1 Then
m = m + 1
End If
Next k
End If
Dim rate As Double
rate = m / num
If rate >= 0.5 Then
Sheet5.Range("C" & i).Value = Bstr
End If
Next j
Next i
供参考
For i = 1 To Sheet5.UsedRange.Rows.Count 'B 栏数据
Bstr = Trim(Sheet5.Range("B" & i).Value)
num = Len(Bstr)
For j = 1 To Sheet5.UsedRange.Rows.Count 'A 栏数据
astr = Trim(Sheet5.Range("A" & j).Value)
If num = 1 Then
If InStr(astr, Bstr) >= 1 Then
m = m + 1
End If
ElseIf num > 1 Then
For k = 1 To num
aaa = Mid(Bstr, k, 1)
If InStr(astr, Mid(Bstr, k, 1)) >= 1 Then
m = m + 1
End If
Next k
End If
Dim rate As Double
rate = m / num
If rate >= 0.5 Then
Sheet5.Range("C" & i).Value = Bstr
End If
Next j
Next i
展开全部
不用写VBA,使用函数GetMatchingDegree(Text_a, Text_b)比较两个字符串的相似度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用辅助列,很容易解决,把问题作为内容(邮件主题一定要包含“excel”,本人以此为依据辨别非垃圾邮件,以免误删),excel样表文件(把现状和目标效果表示出来)作为附件发来看下 yqch134@163.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=vlookup(”*“&A1&”*“,B:B,1,0)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询