Excel中是否有一个函数可以从单元格中删除重复的字符串?

时间:2017-08-18 21:43:36

标签: excel-vba function excel-formula vba excel

UDF和其他问题中提供的其他解决方案无法解决此问题。也许它是字符串的长度,然后是我的问题中的重复数量。 (所有数字,以逗号分隔,13位长,2到3个唯一数字,在一个单元格中重复约20-40次。)

我查看了this question的答案,但这些答案对我的数据无效。

我是否可以使用函数或公式删除单个单元格中的重复字符串?

如果,

A1 = 10,10,10,10,11,11,12,12,12(实际数字各为13位数,它们是重复的2或3个唯一数字。我只需要捕获每个唯一的数字)

是否有像RemoveDups()这样的简单方法可以删除重复项并保留。 A1 = 10,11,12?或者我需要创建UDF吗?

1 个答案:

答案 0 :(得分:3)

Function RemoveDuplicates(v As Variant) As String
Dim aSplit As Variant, aUnique() As Variant, vMatch As Variant, a As Variant

aSplit = Split(v, ",")

ReDim Preserve aUnique(0 To x)
aUnique(0) = Application.WorksheetFunction.Rept("|^|", 20)

For Each a In aSplit
    vMatch = Application.Match(Trim(a), aUnique, 0)

    If IsError(vMatch) Then
        x = x + 1
        ReDim Preserve aUnique(0 To x)
        aUnique(x) = Trim(a)
    End If
Next a

RemoveDuplicates = Join(Filter(aUnique, aUnique(0), False), ",")

End Function