早教吧作业答案频道 -->其他-->
在EXCEL中用宏合并同类项,并数量相加?如下图,A是供应商的名称,B是规格,C是数量,D是单位.如何合并成下图?求高手做个宏,ABCD60120816012071306032306052303011204022303011204012306052合
题目详情
在EXCEL中用宏合并同类项,并数量相加?
如下图,A是供应商的名称 ,B是规格,C是数量,D是单位.如何合并成下图?求高手做个宏,
A B C D
60 120 8 1
60 120 7 1
30 60 3 2
30 60 5 2
30 30 1 1
20 40 2 2
30 30 1 1
20 40 1 2
30 60 5 2
合并后成这样
A B C D
60 120 15 1
30 60 13 2
20 30 2 1
40 1 2
合并后 B列40是 3 .
如下图,A是供应商的名称 ,B是规格,C是数量,D是单位.如何合并成下图?求高手做个宏,
A B C D
60 120 8 1
60 120 7 1
30 60 3 2
30 60 5 2
30 30 1 1
20 40 2 2
30 30 1 1
20 40 1 2
30 60 5 2
合并后成这样
A B C D
60 120 15 1
30 60 13 2
20 30 2 1
40 1 2
合并后 B列40是 3 .
▼优质解答
答案和解析
Sub 汇总()
Dim arr, brr, crr, r%, rr%
r = [A65536].End(3).Row
arr = Range("a2:d" & r)
Range("a2:d" & r).ClearContents
t = 1
For i = 1 To UBound(arr)
If Trim(arr(i, 1)) "" Then
y = Trim(arr(i, 1)) & Trim(arr(i, 2)) & Trim(arr(i, 4))
brr = arr(i, 3)
For j = i + 1 To UBound(arr)
yy = Trim(arr(j, 1)) & Trim(arr(j, 2)) & Trim(arr(j, 4))
If y = yy Then
brr = brr + arr(j, 3)
arr(j, 1) = ""
End If
Next
t = t + 1
arr(i, 3) = brr
Range("a" & t).Resize(1, UBound(arr, 2)) = Application.Index(arr, i, 0)
brr = ""
End If
Next
End Sub
提供一个不使用字典汇总数据的方法,希望能满足你的要求
Dim arr, brr, crr, r%, rr%
r = [A65536].End(3).Row
arr = Range("a2:d" & r)
Range("a2:d" & r).ClearContents
t = 1
For i = 1 To UBound(arr)
If Trim(arr(i, 1)) "" Then
y = Trim(arr(i, 1)) & Trim(arr(i, 2)) & Trim(arr(i, 4))
brr = arr(i, 3)
For j = i + 1 To UBound(arr)
yy = Trim(arr(j, 1)) & Trim(arr(j, 2)) & Trim(arr(j, 4))
If y = yy Then
brr = brr + arr(j, 3)
arr(j, 1) = ""
End If
Next
t = t + 1
arr(i, 3) = brr
Range("a" & t).Resize(1, UBound(arr, 2)) = Application.Index(arr, i, 0)
brr = ""
End If
Next
End Sub
提供一个不使用字典汇总数据的方法,希望能满足你的要求
看了在EXCEL中用宏合并同类项,...的网友还看了以下:
已知三角形ABC的顶点坐标坐标分别为A(-2,0),B(2,0),C(0,2)(1)自己画直角坐标 2020-05-13 …
设U为全集,子集A={x/f(x)=0},B={x/g(x)=0},C={x/h(x)=0},则方 2020-05-15 …
已知抛物线y=ax2+bx+c经过A(1,0),B(3,0)C(0,3)三点.27.已知抛物线y= 2020-05-19 …
已知集合A={(X,Y)丨2X-Y=0}B={(X.Y)丨3X+Y=0}C={(X,Y)丨2X-Y 2020-06-23 …
判断a等于0或b等于0或c等于0的正确的是()A((a!=0)||(b!=0)||(c!=0))( 2020-07-22 …
二元一次方程组的交集和并集如何做例题:知己集合A={(x,y)|2x-y=0},B={(x,y)| 2020-07-29 …
直接写得数.0.b×0.地=0.九地÷0.7=手地-6.5-b.5=0.四-0.b5=(手.5+0. 2020-10-31 …
(手0六六•韶关模拟)若f(c)=c手-c+a,f(-m)<0,则f(m+六)的值为()A.正数B. 2020-11-12 …
求概率的题~P(A)=0.14P(B)=0.23P(C)=0.37P(A交B)=0.08P(A交C) 2020-11-28 …
二次函数高手入!NO.1抛物线y=ax^2+bx+c当c大于0时,抛物线交y轴正半轴,c小于0时,抛 2020-12-08 …