为行创build唯一序列

我有几千行的数据,需要为每个数据创build唯一的序列。 这里是一个例子(每个值在它自己的单元格中):

Text1| Text2| Text2| Text2| Text3| Text3| Text1| 

我需要创build独特的序列看起来像这样

 Text1| Text2| Text3| Text1| or Text1,Text2,Text3,Text1| 

有任何想法吗?

如果第一个Text1在A1中,则:

 =A1&","&IF(A1<>B1,B1&",","")&IF(B1<>C1,C1&",","")&IF(C1<>D1,D1&",","")&IF(D1<>E1,E1&",","")&IF(E1<>F1,F1&",","")&IF(F1<>G1,G1,"") 

也许值得尝试一下。

作为用户定义的function

 Public Function ClarkeyCat2(ByRef rng As Range, delimIT As String, Optional ByVal trimIT As Boolean = False) As Variant Dim c As Range Dim UniqueColl As Collection Dim tmpValue As Variant Set UniqueColl = New Collection If Not trimIT Then On Error Resume Next For Each c In rng If (c.Value <> "") Then UniqueColl.Add c.Value, c.Value End If Next For k = 1 To UniqueColl.Count ClarkeyCat2 = ClarkeyCat2 & IIf(ClarkeyCat2 = "", "", delimIT) & UniqueColl.Item(k) Next Else On Error Resume Next For Each c In rng If (c.Value <> "") Then tmpValue = Trim(c.Value) UniqueColl.Add tmpValue, tmpValue End If Next For k = 1 To UniqueColl.Count ClarkeyCat2 = ClarkeyCat2 & IIf(ClarkeyCat2 = "", "", delimIT) & UniqueColl.Item(k) Next End If End Function 

像这样使用

在这里输入图像描述

更新“更新”,以便在决定条目是否唯一之前,从单元条目中select性地去掉多余的空白。 默认行为是不去掉空白。 使用可选的布尔三参数进行设置。