2014-04-01 67 views
0

我有一个带有字母数字数据的大型Excel电子表格。我希望能够并排比较不同行中的两个单元格,并返回另一个单元格中的差异。比较Excel电子表格中单独单元格中的字符串?

例如我在单元格B2中,“汤姆,里克,迈克,我”以及单元格C2中的“迈克,里克”。我需要 将单元格C2与单元格B2进行比较,并返回单元格D2中的差异,在这种情况下,这些差异是字符“tom,I”。它们以“,”分隔,并且可以按照您在示例中看到的顺序排列。

+0

你试过了什么?如果你还没有尝试过任何东西,那么你可能想用'SPLIT'或'REPLACE'来看看它是如何工作的? –

回答

0

将每个字符串拆分为项目列表。将第一个列表中的每个项目与第二个列表进行比较,将不在第二个列表中的项目添加到第三个列表中。您可能需要将其展开以处理包含空格和逗号的列表。

Public Function ListDiff(names1 As String, names2 As String) As String 

    Dim list1() As String 
    Dim list2() As String 

    list1 = Split(names1, ",") 
    list2 = Split(names2, ",") 
    list3 = "" 

    For i = LBound(list1) To UBound(list1) 
     If Not existsInList(list2, list1(i)) Then 
      list3 = list3 & "," & list1(i) 
     End If 
    Next i 
    'remove leading comma 
    ListDiff = Right(list3, Len(list3) - 1) 

End Function 

Public Function existsInList(list() As String, item As String) As Boolean 

    exists = False 
    i = LBound(list) 
    bFound = False 

    While i <= UBound(list) And Not bFound 
     If list(i) = item Then 
      bFound = True 
     End If 
     i = i + 1 
    Wend 
    existsInList = bFound 

End Function 
相关问题