【问题标题】:Excel formula to Sum every 5 rowsExcel公式每5行求和
【发布时间】:2017-06-24 20:02:06
【问题描述】:

我正在努力使用 excel 公式:

需要:我需要一个公式来对每 5 行求和 AND 将值放在相应的行上。 (见下表)

这是我目前所拥有的,但还不完全是:

=SUM(OFFSET($A$2,(ROW()-ROW($B$2))*5,,5,))

    | A   |  B | C
-----------------------
1   | 5   | 37 | 37  
2   | 10  | 24 | 37
3   | 7   | 17 | 37
4   | 7   | 0  | 37
5   | 8   | 0  | 37  
6   | 1   | 0  | 24
7   | 3   | 0  | 24  
8   | 5   | 0  | 24  
9   | 5   | 0  | 24
10  | 10  | 0  | 24
11  | 5   | 0  | 17
12  | 1   | 0  | 17
13  | 8   | 0  | 17
14  | 2   | 0  | 17
15  | 1   | 0  | 17

列“A”=值

“B”列 = 当前输出(上面有公式)

“C”列 = 期望的输出

感谢您的帮助。

【问题讨论】:

    标签: excel excel-formula formula


    【解决方案1】:

    B1中输入这个公式:

     =SUM(OFFSET($A$1,5*INT((ROW()-1)/5),,5))
    

    并向下拖动/复制。

    在大约 10K 行随机数上进行测试,结果合理。

    【讨论】:

    • 你的公式看起来太简单了。非常感谢
    【解决方案2】:

    使用 INDEX 代替 OFFSET 的另一种方式

    =SUM(INDEX(A:A,FLOOR(ROW()-1,5)+1):INDEX(A:A,FLOOR(ROW()-1,5)+5))
    

    说明

    FLOOR 函数获取第一个参数的值并将其向下舍入为最接近的第二个参数的倍数。在第一个 INDEX 语句中,对于第 1-5 行,在 FLOOR 语句中,从行号中减去一个,得到 0-4。 FLOOR 语句将所有这些值向下舍入为零,因此在添加一个后,前 5 行中的每一行的值都为 1。

    第二个 INDEX 和 FLOOR 语句的工作方式相同,只是在末尾添加 5 以使前 5 行的值为 5。

    INDEX返回一个引用,所以把INDEX(A:A,1):INDEX(A:A,5)放在A列的前5个单元格中是有效的,然后你可以对它们求和。

    对于第 6-10 行,FLOOR 语句以相同的方式产生 5,因此分别添加 1 和 5 后,您将获得 A 列的第 6-10 单元格,依此类推。

    Row()     Row()-1    FLOOR(Row()-1)   FLOOR(Row()-1)+1   Floor(Row()-1)+5
    1         0          0                1                  5
    2         1          0                1                  5
    3         2          0                1                  5
    4         3          0                1                  5
    5         4          0                1                  5
    6         5          5                6                  10
    7         6          5                6                  10
    8         7          5                6                  10
    9         8          5                6                  10
    10        9          5                6                  10
    

    【讨论】:

    • 非常感谢。像魅力一样工作!请您分解一下公式的作用....特别是 FloorRow 作为索引参数的组合?
    • 是的没问题,我会把它添加到我的答案中。
    【解决方案3】:

    这是作弊,但在B5中输入:

    =IF(MOD(ROW(),5)=0,SUM(A1:A5),B6)
    

    然后向上和向下复制此单元格:

    B1B4 中的公式无效,但产生正确的结果。

    【讨论】:

    • 我尝试了这个,但是在超过 10,000 行的表上复制它有点不稳定。还有其他建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多