查找列中连续一组条目的最高总数 - EXCEL

finding the highest total for a consecutive group of entries in a column - EXCEL

而不是找到最高的单个条目,我想要连续一组 n 个条目的最高总数,例如在 100 个值的列中,我想查找 10 个连续的单元格,其总和为最大值

我以 10 为例,我希望能够轻松更改它。

使用 A1A100 中的数据,在 B10 中输入:

=SUM(A1:A10)

并向下复制 B100

然后在另一个单元格中,使用:

=MAX(B:B)

数组公式版本(需要用Ctrl+Shift+Enter确认)

=MAX(A1:A100+A2:A101+A3:A102+A4:A103+A5:A104+A6:A105+A7:A106+A8:A107+A9:A108+A10:A109)

(未来可能不是最容易维护的)。

到目前为止,最简洁的方法是使用用户定义函数 (UDF)。

这里有一个小例程可以做到这一点。将此例程放在标准代码模块中:

Function MaxN(n&, r As Range)
    Dim i&, j&, m#, t#, v
    v = r.Value2
    For i = 1 To UBound(v)
        If UBound(v) - i + 1 >= n Then
            t = 0
            For j = i To i + n - 1
                t = t + v(j, 1)
            Next
            If t > m Then m = t
        Else
            Exit For
        End If
    Next
    MaxN = m
End Function

然后在要计算最大值的工作表上,选择一个要计算的单元格 return 并输入此公式:

=MaxN(10,A1:A100)

就是这样。

使用此 UDF,您可以轻松地将“10”更改为您喜欢的任何值,并且您可以通过更改公式轻松调整垂直范围的位置和大小。