我正在审查大量数据,指出存在不一致的地方。请参阅以下示例启动数据:
以下是我的目标:
到目前为止我的查询:
=IF(AND(Sheet2!A2=Sheet2!A3,Sheet2!B2=Sheet2!B3),Sheet2!A2&Sheet2!B2&Sheet2!C2,"no match")
如何在Coulmn A和B匹配的情况下同步所有结果,删除重复项,但也将所有结果连接到C列,其中重复项将进入该行。
答案 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