Excel 计算列中最后十三行的总和的公式

Excel 计算列中最后十三行的总和的公式,excel,excel-formula,sum,Excel,Excel Formula,Sum,我在寻找一个公式,从底部开始计算一列中最后十三行的总和。我发现: =SUM(INDEX(R:R,MATCH(9.99999999999999E+307,R:R,1)):INDEX(R:R,MATCH(9.99999999999999E+307,R:R,1)-13,0)) 它在大多数情况下都有效,除非最后十三行是空的,它将最后十三个数字相加,从最后一个填充的值开始。以下是一个例子: 正如您所见,第V列给出了7.4,因为它计算了最后十三个值——远远超过了底部的最后十三个值 如何使公式将空单元格

我在寻找一个公式,从底部开始计算一列中最后十三行的总和。我发现:

=SUM(INDEX(R:R,MATCH(9.99999999999999E+307,R:R,1)):INDEX(R:R,MATCH(9.99999999999999E+307,R:R,1)-13,0)) 
它在大多数情况下都有效,除非最后十三行是空的,它将最后十三个数字相加,从最后一个填充的值开始。以下是一个例子:

正如您所见,第V列给出了7.4,因为它计算了最后十三个值——远远超过了底部的最后十三个值


如何使公式将空单元格计算为零,从而在V中给出
0

似乎您正在寻找一种方法来确定列中最后一个非空行的行数(并从那里倒数),以确定您的
SUM()
范围。如果您愿意添加帮助器列和/或将数据格式化为帮助器,那么有两个更简单的公式。(如果有,请在评论中告诉我&我可以修改答案)

但是,如果不使用辅助单元格和列,您可以尝试以下操作:将大写字母
A
更改为您选择的列
=SUM(间接(“A”)和索引(行(A:A),MAX((A:A“”)*(行(A:A)))和“:A”&索引(行(A:A),MAX((A:A“”)*(行(A:A))-13))

说明:
  • 索引(行(A:A),MAX((A:A“”)*(行(A:A))
    确定A列中最后一个非空行(贷记到)。这是一个函数,必须使用ctrl+shift+enter进行初始化,然后公式应以大括号括起来
    {=SUM(
    ..
    )}
  • INDIRECT()
    允许您为
    SUM()
    函数声明动态范围。
    INDIRECT()
    函数的内部参数计算结果为
    Ax:Ay
    ,其中
    x
    y
    是从第13行到最后一行和最后一行的行引用
  • 但是,如果问题是跳过目标列中列末尾的非空白单元格,我想不出一个可读的单单元格公式允许这样做。我建议设置一个辅助单元格,在其中放置公式以确定有效的单元格范围。命名此/这些单元格(alt+m+m+d以显示命名的范围管理器)将允许您将语法更改为
    =SUM(命名的范围1,命名的范围2,…命名的范围13)
    ,无需使用数组公式


    希望这有帮助

    对于我解释的需求,我建议在V112中:

    =SUM(OFFSET(V112,-13,0,13,1))  
    
    如果需要,请在不同的单元格中更改参考和行偏移量。

    对最后的N行数据求和。

    这是我对要求的理解:

    数据
    顶部有两行标题和另外两行总计,因此
    Excel表格
    不适用

    6:7
    包含迄今为止的
    总计
    最后一页总计
    TOTALS LAST PAGE
    数据的最后
    13行的
    总和。因此,我们需要识别
    数据的最后一行,而不是最后一个非空行

    此解决方案假定:

    数据
    位于范围
    C3:R38
    (根据需要调整),前4行作为标题和总计;数据详细信息从第7行开始

    为了能够计算
    数据最后一行
    ,我们需要确定一个字段,该字段的最后一行单元格始终填充(即,它永远不会为空)。为了演示此解决方案,我假设此字段位于列
    C
    中。还假设需要添加总计的字段位于列
    F:R

    此解决方案适用于以下三个工作单元

  • 数据最后一行
    :此
    公式数组
    是公式的重要组成部分,用于添加多个列(+20个字段)的上一页总计
  • ,因此在一个工作单元格中只保留一次,将减少执行工作簿计算所需的资源 在单元格
    I2

    (同时按
    [Ctrl]
    +
    [Shift]
    +
    [Enter]
    可输入公式数组)

    现在,为了获得上一页的
    总计
    ,我们在单元格
    F6
    中输入其中一个公式,并复制到范围
    G6:R6

    a<代码>要添加的最后一行(计算)
    已实现工作单元

    =SUM( OFFSET( INDEX(F:F, $I$2, 0 ), 0, 0, -$M$2 ))
    
    =SUM( OFFSET( INDEX(F:F, $I$2, 0 ), 0, 0, -$E$2 ))
    
    b<代码>要添加的最后一行(计算)
    工作单元格已实现

    =SUM( OFFSET( INDEX(F:F, $I$2, 0 ), 0, 0, -$M$2 ))
    
    =SUM( OFFSET( INDEX(F:F, $I$2, 0 ), 0, 0, -$E$2 ))
    

    始终添加最后13行数据,无论其内容如何


    要添加的最后一行(计算)
    未执行,并且
    数据
    的记录少于
    13条<代码>最后一页的总计
    不准确,因为下面的总计也已添加

    您是否尝试对第99行到第111行进行合计?如果是这样,您可以使用
    =SUM(R99:R111)
    不,不仅仅是添加第99-111行,即使我添加了更多的行,公式也应该不断地添加每列的最后13行。您想将每列中最后一个非空白单元格与其上方的12个单元格相加吗?这将非常缓慢地运行,因为查看整列的数组公式实际上查看的是整列,而不仅仅是单元格在使用范围内。但是,由于OP只需要这些公式中的一个,这应该不是什么大问题。@Grade'Eh'Bacon是的,使用
    ctrl
    +
    t
    格式化为表格会更容易计算,但是OP中给出的示例似乎没有。您好,谢谢您的评论。我的原始公式存在的问题是,它对从第111行到第98行的所有值进行计数,如果您查看单元格G6=16.5,则该值是正确的,但在单元格V6中,该值显示为7.4,因为它无法识别v111到v98空单元格作为一个数字,因此它在V cel中找到第一个数字,然后将该值的13行相加exmpl:我希望它给出这个ca中从V111到V98的值