excel有两列数据,一列人名,一列数据,但人名有重复,我想用宏写出来,人名后面是他所有数据的总和,请教

就是可能一个人名对应一个数据,可能有张三对应几个数据,我只想把后面的数据求和出来,其他的张三可以删除,
可能一个人名对应一个数据,当然很好,但是有多个相同人名(就是一个人)对应了很多数据,我想取它们的和,人名只用一个就行了,后面对应的是它的和,要编成宏,谢谢
我也知道不用宏应该更方便一些,但是某种原因,必须要编成宏,现在就是找不到思路,大家帮帮忙,十分感谢啊

第1个回答  2011-11-01
我做一个宏,怎么发给你。
Sub 删除重复数据Macro4()
'
' 删除重复数据Macro4 Macro
'

'
Range("I1").Select
ActiveCell.FormulaR1C1 = "=RC[-8]"
Range("I2").Select
ActiveCell.FormulaR1C1 = _
"=IF(ROW()>COUNTIF(C[-8],""<>""),""数据完毕"",IF(ISERROR(1/COUNTIF(R1C:R[-1]C,RC[-8])),RC[-8],""""))"
Range("H1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ROW()>COUNTIF(C[-7],""<>""),""数据完毕"",IF(RC[1]="""","""",SUMPRODUCT((C[-7]=RC[1])*C[-6])))"
Range("H1").Select
Selection.AutoFill Destination:=Range("H1:H2"), Type:=xlFillDefault
Range("H1:H2").Select
Range("F1").Select
ActiveCell.FormulaR1C1 = "=IF(ROW()>COUNT(C[2]),"""",LARGE(C[2],ROW()))"
Selection.AutoFill Destination:=Range("F1:F2"), Type:=xlFillDefault
Range("F1:F2").Select
Range("E1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ROW()>COUNT(C[3]),"""",VLOOKUP(RC[1],C[3]:C[4],2,FALSE))"
Selection.AutoFill Destination:=Range("E1:E2"), Type:=xlFillDefault
Range("E1:E2").Select
Range("E2:I2").Select
Selection.AutoFill Destination:=Range("E2:I2401"), Type:=xlFillDefault
Range("E2:I2401").Select
Columns("E:F").Select
Range("E2385").Activate
Selection.Copy
Columns("A:A").Select
Range("A2385").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("C:J").Select
Range("C2385").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Selection.End(xlUp).Select
End Sub
第2个回答  2011-11-01
我感觉不用宏更简单、更灵活,可以用EXCEL自带的“合并计算”,很方便,求和、计数、平均值都可以。你可以试试看。
我用的是EXCEL2010,可能“合并计算”选项位置不一样,就不细说步骤了,推荐你个视频看看。
http://v.ku6.com/show/_eYpc2z-VGo4gHhM.html
如果你要写成宏的形式,可以录制一下。这样很方便。本回答被提问者采纳
第3个回答  2011-11-01
数据透视表 最简单
编宏的话受人员的变化限制
第4个回答  2011-11-01
按升序或者降序排列出来,再做不就很简单了吗
第5个回答  2011-11-01
用SUMIF吧追问

我是要编宏的,能不能具体点呢、

相似回答