首页 > 解决方案 > 如何从excel中的字符串中提取唯一值和

问题描述

所以这就是我所拥有的:

Column A                 Column B

Junior,Jeff,Raul,Sam     Junior,Raul,Sam

我想根据 A 和 B 的比较在字符串中创建一个具有唯一值的 C 列。在这种情况下,输出将是

Column A                 Column B               Column C

Junior,Jeff,Raul,Sam     Junior,Raul,Sam        jeff

标签: excel

解决方案


需要通过在 Visual Basic 编辑器中插入模块并粘贴以下代码来准备 UDF。

Public Function CompareCell(strCellFirst As String, strCellScnd As String, Optional strDelim)
Dim arrFirst, arrScnd
Dim i As Long
Dim objCol As New Collection
Dim strOut As String
If IsMissing(strDelim) Then
    strDelim = ","
End If
arrFirst = Split(strCellFirst, strDelim)
arrScnd = Split(strCellScnd, strDelim)
For i = LBound(arrFirst) To UBound(arrFirst)
    If Not IsNumeric(Application.Match(arrFirst(i), arrScnd, 0)) Then
        On Error Resume Next
        objCol.Add arrFirst(i), arrFirst(i)
        On Error GoTo 0
    End If
Next i
For i = LBound(arrScnd) To UBound(arrScnd)
    If Not IsNumeric(Application.Match(arrScnd(i), arrFirst, 0)) Then
        On Error Resume Next
        objCol.Add arrScnd(i), arrScnd(i)
        On Error GoTo 0
    End If
Next i

For i = 1 To objCol.Count
    strOut = strOut & " " & objCol(i)
Next i
CompareCell = Replace(Trim(strOut), " ", strDelim)
End Function

要使用它,您可以在 Excel 工作表中将其用作:

=CompareCell(A2,B2)

注意:如果未指定分隔符,则逗号将被视为默认值。假设您想使用其他字符(例如分号)作为分隔符,那么公式将如下所示

=CompareCell(A2,B2,";")

推荐阅读