excel相同货号合并数量相加

货号 数量
338 2
339 1
338 6
339 2
相同货号合并数量相加
货号 数量
338 8
339 3

Sub calc()
'A:货号 B:数量--> C:货号分类 D:数量加总
Last_Row = Range("A65536").End(xlUp).Row '设定(A:货号)最后一列
j = 2
For i = 2 To Last_Row '将货号分类於C
If Application.CountIf(Range("A" & i & ":A" & Last_Row), Cells(i, 1)) = 1 Then
Cells(j, 3) = Cells(i, 1)
j = j + 1
End If
Next
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Last_No = Range("C65536").End(xlUp).Row '设定C栏最后一货号列
For i = 2 To Last_Row
Set look = Range("C2:C" & Last_No).Find(What:=Cells(i, 1), LookIn:=xlValues, LookAt:=xlWhole)
Find_S = look.Row
Cells(Find_S, 4) = Cells(i, 2) + Cells(Find_S, 4) '将数量加到 D
Next

End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-10
直接使用分类汇总就行了,
或者公式
假设货号A列 数量B列 数据从第二行开始
C列依次输入货号
D1输入公式 =SUMPRODUCT((A$2:A$1000=C1)*B$2:B$1000)
2007或更高版本公式改为 =SUMIF(A:A,C1,B:B)
向下填充
第2个回答  2011-01-10
如果货号很多,手工输入太费力,就用VBA来实现。
思路:先在C列产生唯一的货号,且按升序排列。再在D列合并相同货号的数量。
代码:略等。
第3个回答  2011-01-10
C1单元格=IF(MATCH(A1,A:A,0)=ROW(A1:A45),SUMIF(A:B,A1,B:B),"")
祝你成功。。。
相似回答