Excel - 检查2个字符串是否匹配,如果不匹配,返回两个字符串的位置
问题描述:
我有两个字符串需要比较。我想要的功能是基本上是:Excel - 检查2个字符串是否匹配,如果不匹配,返回两个字符串的位置
(1)检查两个字符串完全匹配
(2)如果匹配,返回TRUE
(3)如果它们不匹配,返回
细胞A1::奥巴马
012,其中两个发散例如字符串的位置
单元格A2:Barack Obana
我知道这两个字符串不匹配,错误是“Obana”中的“n”。因此,错误发生在A2的字符串位置10处。我想函数返回10
我尝试:
= IF(EXACT(A1,A2), “匹配”,?? (SEARCH(A1,A2,1) )??
感谢
答
如何以下VBA函数:
Function MatchOrDiverge(BaseString As String, ComparedString As String)
If BaseString = ComparedString Then
MatchOrDiverge = "MATCH"
Else
For i = 1 To Len(BaseString)
If Not (Mid(BaseString, i, 1) = Mid(ComparedString, i, 1)) Then
MatchOrDiverge = i
Exit Function
End If
Next i
MatchOrDiverge = Len(BaseString) + 1
End If
End Function
这需要2个字符串作为输入。首先,它检查2个字符串是否相同。如果是,则返回“MATCH”。
如果2个字符串不相等,则循环遍历BaseString,并根据ComparisonString检查其字符。当一个字符不匹配时,它会返回该字符的索引。
如果字符串匹配,但是第二个是更长(例如,“猫”和“牛”),则返回即basestring + 1
截图的动作长度:
@ScottCraner干得好。我不知道我不知道,是吗?我将删除我的评论,然后看到它的不准确... – elmer007
@ elmer007虽然我同意在这种情况下UDF更适合改变引用是一项大事业,并且UDF在长期运行中会更容易使用。 –