如何计算/合并相同的数据行并将其添加到列中
比方说,我有10,000行数据,下面显示的示例,其中H1
= Header1
。
我试图合并所有相同的列,并反映在最后一列(Header6),即我试图将它们全部添加,折叠重复的行。 然而,我面临的困难是这些(包括header6)是文本而不是数字。 最好使用excel VBA(数据必须在excel中)
H1 H2 H3 H4 H5 H6 AA BB EE HH KK 1* AA CC EE GG KK 1* AA CC EE GG KK 1* AA CC EE GG KK 1* AA DD FF HH KK 1* AA DD FF HH KK 1*
标准是所有字段, header1
到header5
必须是相同的,并将其添加到header6
。 这种情况的结果应该如下:
H1 H2 H3 H4 H5 H6 AA BB EE HH KK 1* AA CC EE GG KK 3* AA DD FF HH KK 2*
我尝试了很多方法,但无济于事。 我真的很感激任何帮助。
尝试这个:
Sub TEST() Dim Dic As Object, Cl As Range, i&, s$, key As Variant Set Dic = CreateObject("Scripting.Dictionary") Dic.comparemode = vbTextCompare i = Cells(Rows.Count, "A").End(xlUp).Row For Each Cl In Range("A2:A" & i) s = Cl & "|" & _ Cl.Offset(, 1) & "|" & _ Cl.Offset(, 2) & "|" & _ Cl.Offset(, 3) & "|" & _ Cl.Offset(, 4) & "|" & _ Cl.Offset(, 5) If Not Dic.exists(s) Then Dic.Add s, 1 Else Dic(s) = CLng(Dic(s)) + 1 End If Next Cl Worksheets.Add i = 2 [A1:F1].Value = Split("H1|H2|H3|H4|H5|H6", "|") For Each key In Dic Range(Cells(i, "A"), Cells(i, "E")).Value = Split(key, "|") Cells(i, "F") = Dic(key) i = i + 1 Next key End Sub
资源
目的地