删除excel 2013中的重复项,并在第三个库存中重复所有重复项

时间:2017-04-04 10:53:24

标签: excel concatenation

我正在审查大量数据,指出存在不一致的地方。请参阅以下示例启动数据:

enter image description here

以下是我的目标:

enter image description here

到目前为止我的查询:

=IF(AND(Sheet2!A2=Sheet2!A3,Sheet2!B2=Sheet2!B3),Sheet2!A2&Sheet2!B2&Sheet2!C2,"no match")

如何在Coulmn A和B匹配的情况下同步所有结果,删除重复项,但也将所有结果连接到C列,其中重复项将进入该行。

1 个答案:

答案 0 :(得分:0)

如果您对VBA解决方案持开放态度,可以使用以下代码轻松实现。 该代码假定数据位于A:C列中,其中row1是标题行。 输出将写在E:G列中。您可以根据需要更改输出位置。 如果需要,输出也可以以所需格式写回A:C列。

Sub SummarizeData()
Dim i As Long
Dim x, y, dict, it
Application.ScreenUpdating = False

'clearing columns E:G before writing the output
Columns("E:G").ClearContents
x = Range("A1").CurrentRegion.Value
Set dict = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(x, 1)
    If dict.exists(x(i, 1) & ";" & x(i, 2)) Then
        dict.Item(x(i, 1) & ";" & x(i, 2)) = dict.Item(x(i, 1) & ";" & x(i, 2)) & ", " & x(i, 3)
    Else
        dict.Item(x(i, 1) & ";" & x(i, 2)) = x(i, 3)
    End If
Next i
i = 1
ReDim y(1 To dict.Count, 1 To 3)
For Each it In dict.keys
    y(i, 1) = Split(it, ";")(0)
    y(i, 2) = Split(it, ";")(1)
    y(i, 3) = dict.Item(it)
    i = i + 1
Next it
'Writing the output in columns E:G
Range("E1").Resize(dict.Count, 3).Value = y
Application.ScreenUpdating = True
End Sub