首页 > 解决方案 > 数据集中最高/最低的 3 个连续列

问题描述

我试图在 excel 电子表格中找到最大的连续列总和。

例如 - 假设我想从以下数据中找出任何三个连续列的最高和:1,2,3,12,8,4,1,1,12。最高为 24(即 12+8+4)。

我一般不是在寻找最高的三列(这将是 12、8、12),而是在寻找最高的连续三列。

我还希望该公式可以突出显示最大值中包含的列,或者输出列名,以便我可以轻松识别哪些单元格具有最高连续值。

为了获得更多背景信息,我们试图在一系列数据中显示最赚钱的 12 个月和 36 个月。数据是每月的(即 2019 年 8 月 - 10%,2019 年 6 月 - 5% 等)唯一的限制是月份。

标签: excelvbaexcel-formulaexcel-2010

解决方案


我通过用户定义函数提出了一个解决方案,该函数返回 n 个连续列的第一列的列号,给出最高的总和。

然后,您可以重用此信息来计算总和并设置 MFC 以突出显示相应的列

UDF:(插入新模块)

    Function maxsumcons(r, n&) As Long
' return the index of the first column in range r of the  n consecutive columns giving the max sum

    Dim maxi&, maxs, s, i&, j&
    For i = 1 To r.Count - n + 1
        s = 0
        For j = i To i + n - 1
            s = s + r(1, j).Value
        Next j
        If s > maxs Then maxs = s: maxi = i
    Next i
    maxsumcons = maxi

End Function

现在假设您的数据在 A2:I2 中,您可以使用以下公式(让我们在 K2 中说)=maxsumcons(A2:I2,3) 来获取最高总和的第一列并重用此信息来计算此总和像这样的公式: =sum(offset(A1,1,K2-1,1,3))


推荐阅读