Удаление дубликатов в ячейке в Excel - PullRequest
1 голос
/ 16 июня 2020

У меня есть несколько ячеек в Excel, в которых есть дубликаты, а в столбце есть множество таких ячеек. Например, A1 = (30JNK11BR004 30JNK11AA004 30JNK11AA005 30JNK11BR004 30JNK11AA005). Между каждым текстом есть перевод строки. Как удалить дубликаты?

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Если есть Dynami c Формула массива UNIQUE:

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

enter image description here

0 голосов
/ 16 июня 2020

С такими ячейками, как:

enter image description here

Выберите ячейки, которые вы sh обрабатываете, и запустите этот макрос 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

Ячейка после:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...