第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)))