excel求一列中最近5个数的和

不到5个数的话有几个算几个数的和。比如第3行的值是1+2 第四行是1+2+3第五行是1+2+3+4第六行是1+2+3+4+5 第七行是2+3+4+5+6

第1个回答  2021-08-25
你试试吧,假定数据从第1行第1列开始,有个等于情况就没考虑了,你可以自己再想想
Sub Col_max()
Dim Rowmax As Long, i As Integer, j As Integer
Dim Arr() As Variant '声明数组
Dim C_Max(1 To 5) As Double
Rowmax = ActiveSheet.Range("a65536").End(xlUp).Row '求第一列最大行数
ReDim Arr(1 To Rowmax) '动态
For i = 1 To Rowmax '假定数据从第1行开始,循环给数组赋值
Arr(i) = Cells(i, 1).Value
Next
C_Max(1) = WorksheetFunction.Max(Arr) '使用工作表MAX函数求最大值
For j = 2 To 5
C_Max(j) = WorksheetFunction.Match(C_Max(j - 1), Range("a1:a" & Rowmax), 1) '使用MATCH函数逐个求值
Next
End Sub
1、按0-9统计次数,b3输入
=COUNTIF($A1:$A50,"=" &COLUMN()-2)
向右填充
2、依次取出最小次数,b2输入
=SMALL($B3:$J3,COLUMN()-1)
向右填充到f2
3、查找最小次数对应的数字,b1输入
=MATCH(B2,$B3:$K3,0)-1
c1输入
=IF(B2=C2,MATCH(C2,OFFSET($B3:$K3,0,MATCH(B2,$B3:$K3,0)),0)-1+MATCH(B2,$B3:$K3,0),MATCH(C2,$B3:$K3,0)-1)
向右填充
第2个回答  2021-08-25
假设原始数据在A1:A100中,B3中输入
=SUM(OFFSET(A2,,,-MIN(ROW(A2),5)))
下拉。
第3个回答  2021-08-25
=IF(COUNT(A:A)<5,SUM(A:A),SUM(OFFSET(A1,COUNT(A:A)-1,,-5)))\

=IF(COUNT(A:A)<=5,SUM(A:A),SUM(OFFSET(A1,COUNT(A:A)-1,,-5)))
第4个回答  2021-08-25

第5个回答  2021-08-25
=SUM(INDIRECT("R"&MAX(3,ROW()-5)&"C1",FALSE):A2)
第三行开始的公式:
相似回答