我需要这方面的帮助。我在单元格A1:F1(1,1,1,2,2,4)中有值,在G1中我想只重复引用的值,在这种情况下是(12)。更多例子:(2,2,3,3,4,4)将是(234)。 (0,0,1,2,3,9)将为(0)。如果单元格中没有重复值,则应为空白。
Sample Data Expected Result
1 2 3 4 4 4 4
0 1 1 1 2 4 1
1 1 2 2 3 5 12
0 2 2 3 5 5 25
0 1 2 3 4 5
0 2 3 3 4 4 34
0 0 2 3 3 4 03
0 1 1 2 3 3 13
0 0 0 1 4 4 04
0 2 3 3 4 5 3
0 1 1 2 3 3 13
1 1 2 3 3 4 13
0 1 2 3 3 5 3
0 1 2 3 3 3 3
0 1 1 2 3 4 1
0 1 1 2 4 4 14
0 1 2 3 4 4 4
1 1 2 4 4 5 14
0 0 0 2 2 2 02
0 0 0 1 2 3 0
答案 0 :(得分:1)
易于使用用户定义函数(UDF)
如果您尝试使用相同的密钥添加多个项目,此算法将依赖于Collection对象抛出错误。
首先我们找到重复的项目(CountIf >
),然后我们将它们添加到Collection中。我们知道错误将来自重复项,我们会跳过产生错误的添加内容,并且只留下重复项的单个条目。
在更复杂的情况下,可以测试以查看返回的错误,或使用Dictionary对象。
Option Explicit
Function ConcatDups(rg As Range) As String
Dim C As Range
Dim col As Collection
Dim V As Variant
Dim sTemp As String
Set col = New Collection
On Error Resume Next 'collect single instance of Dups
With WorksheetFunction
For Each C In rg
If WorksheetFunction.CountIf(rg, C) > 1 Then _
col.Add C.Text, C.Text
Next C
End With
On Error GoTo 0
For Each V In col
sTemp = sTemp & V
Next V
ConcatDups = sTemp
End Function