Excel formula 在excel中删除单元格中的重复项

Excel formula 在excel中删除单元格中的重复项,excel-formula,Excel Formula,我在excel中有多个单元格,其中有重复的单元格,一列中有许多这样的单元格。例如A1=(30JNK11BR004 30JNK11AA004 30JNK11AA005 30JNK11BR004 30JNK11AA005 30JNK11BR004 30JNK11AA005)。在每个文本之间有一个换行符。如何删除重复项?使用如下单元格: 选择要处理并运行此VBA宏的单元格: Sub deDupl() Dim cell As Range, chr10 As String, arr Di

我在excel中有多个单元格,其中有重复的单元格,一列中有许多这样的单元格。例如A1=(30JNK11BR004 30JNK11AA004 30JNK11AA005 30JNK11BR004 30JNK11AA005 30JNK11BR004 30JNK11AA005)。在每个文本之间有一个换行符。如何删除重复项?

使用如下单元格:

选择要处理并运行此VBA宏的单元格:

Sub deDupl()
    Dim cell As Range, chr10 As String, arr
    Dim c As Collection, a, temp As String
    Dim i As Long
    chr10 = Chr(10)
    For Each cell In Selection
        arr = Split(decap(cell.Value), chr10)
        Set c = New Collection
        On Error Resume Next
            For Each a In arr
                c.Add a, CStr(a)
            Next a
        On Error GoTo 0
        temp = ""
        For i = 1 To c.Count
            temp = IIf(temp = "", c.Item(i), temp & chr10 & c.Item(i))
        Next i
        cell.Value = encap(temp)
    Next cell
End Sub

Public Function decap(s As String) As String
    decap = Mid(s, 2, Len(s) - 2)
End Function

Public Function encap(s As String) As String
    encap = "(" & s & ")"
End Function
之后的单元格:


如果动态数组公式唯一:

=TEXTJOIN(CHAR(10),TRUE,UNIQUE(FILTERXML("<a><b>"&SUBSTITUTE(A1,CHAR(10),"</b><b>")&"</b></a>","//b")))

=TEXTJOIN(CHAR(10),TRUE,UNIQUE(FILTERXML("

每个单元格中是否有最多的项目数?如果是这样,您可能想在数据选项卡下考虑文本到列,并将单元格拆分为列。因此B1=30JNK11BR00 4,C1=30JNK11AA00 4等。然后可以使用简单的技术来删除行中的重复。Excel公式在使用多个D时并不特别强大。单个单元格中的ata项。