excel 数据求和公式或自动填充数据VBA代码

如图有A、B两列数据(原数据几千行),需要统计A列各名称对应B列的和,可A列名称与B列数据错位1行,而且A列只有一个名称,1. 请教求和公式2. 或者请教VBA详细代码:将A列中A2:A5000的空白单元格自动填充上一个单元格内容,例如空白A3自动填充A2单元格的内容,空白A4自动填充A3单元格内容……

'自定义公式-按ALT+F11-插入模块-粘贴代码-将表格另存为启用宏的格式
Function 统计(a As Range, d As String)
lastrow = Range("a65536").End(xlUp).Row
Set b = Range("a2:a" & lastrow).Find(d)
If Range("b" & b.Row + 2) = "" Then
c = b.Row + 1
Else
c = Range("b" & b.Row + 1).End(xlDown).Row
End If
统计 = Application.Sum(Range("b" & b.Row + 1 & ":b" & c))
End Function

追问

原数据表中实际名称在A列,需要统计的数据在I列,请问宏代码该如何修改?注:我在L2:L3000中的单元格中输入了以下数组公式=IF(INDEX(A:A,SMALL(IF(A$1:A$5000"",ROW($1:$5000),4^8),ROW(1:1)))=0,"",INDEX(A:A,SMALL(IF(A$1:A$5000"",ROW($1:$5000),4^8),ROW(1:1))))

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-29
也就是说,数据往上排、不留空格:假设源数据在A列,在B1输入筛选法:加个表头——选该列——菜单栏——数据——筛选——自动筛选——点倒▲下拉选(非空白)。公式法:=IF(ROW()>COUNTA(A:A), ,INDEX(A:A,SMALL(IF(A$1:A$100<> ,ROW($1:$100),4^8),ROW(1:1))))数组公式,输入后先不要回车,按Ctrl+Shift+Enter结束计算,再向下填充。
第2个回答  2022-06-29
谢谢、SHEET2为两个部门的数据、F4-F97、I4-I97这些数据的和。应用什么公式、G4-G97、H4-H97,同时需要求D4-D97,现需要汇总到SHEET3求和,填入SHEET3中的D4中,D4-D97为需要统计的不同类别数据。其中SHEET1中D、HSHEET1
第3个回答  2022-06-29
谢谢、SHEET2为两个部门的数据、F4-F97、I4-I97这些数据的和。应用什么公式、G4-G97、H4-H97,同时需要求D4-D97,现需要汇总到SHEET3求和,填入SHEET3中的D4中,D4-D97为需要统计的不同类别数据。其中SHEET1中D、HSHEET1
第4个回答  2022-06-29
谢谢、SHEET2为两个部门的数据、F4-F97、I4-I97这些数据的和。应用什么公式、G4-G97、H4-H97,同时需要求D4-D97,现需要汇总到SHEET3求和,填入SHEET3中的D4中,D4-D97为需要统计的不同类别数据。其中SHEET1中D、HSHEET1