我正在寻找一个公式,它将底部列中的最后十三行相加。我找到了:
=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,因为它计算了最后的13个值 - 远远超过了最后的13个值。
如何让公式将空单元格评估为零,以便在V中为我提供0
?
答案 0 :(得分:2)
SUM" N"最后一行数据
这是我对要求的理解:
DATA
顶部有2行标题和其他2行总计,因此Excel Table
不适用。
行6:7
持有TOTALS TO DATE
和TOTALS LAST PAGE
。 TOTALS LAST PAGE
是SUM
的最后13
行的DATA
。因此,我们需要确定DATA
的最后一行,而不是最后一行非空行。
此解决方案假定:
DATA
位于C3:R38
范围内(根据需要进行调整),前4行为Header和Totals;数据详细信息从第7
行开始。
为了能够计算DATA Last Row
我们需要识别其最后一行单元格总是填充的字段(即它永远不会为空)。为了演示此解决方案,我假设此字段位于列C
中。我们还假设我们需要添加总计的字段位于F:R
此解决方案适用于以下三个工作单元
DATA Last Row
:此FormulaArray
是添加多个列(+ 20个字段)的TOTALS LAST PAGE
公式的重要部分,因此拥有它只需在工作单元中执行一次,就可以减少执行工作簿计算所需的资源。在单元格FormulaArray
I2
(按 [Ctrl]
+ [Shift]
+ [Enter]
同时)
=MAX( (C:C <> "" ) * ROW(C:C) )
Last Page Rows
(来自用户的输入):位于E2
,此工作单元格保存最后一页的行数(要向上添加的行数) DATA
的最后一行。如果要添加的行数发生变化,它提供了更新结果的灵活性,而不是更改每个公式(+ 20个字段),用户只需在此单元格中输入新的行数在单元格13
E2
Last Rows to Add (calc)
- 可选:用于计算要添加的单元格数。在DATA
包含的行少于最后一页的预期行数的情况下,避免无休止的重复。虽然根据示例数据,这似乎是不太可能的情况,但仍然添加,因为它可能对具有类似情况的其他用户有用。 此工作单元格是可选的,因为如果未实现,则会提供替代公式。 在单元格M2
=IF( $I$2 - $E$2 < ROW( $C$7 ), $I$2 - ROW( $C$7 ), $E$2 )
现在要获取TOTALS LAST PAGE
我们在单元格F6
中输入其中一个公式并复制到范围G6:R6
一个。已实施Last Rows to Add (calc)
工作单元
=SUM( OFFSET( INDEX(F:F, $I$2, 0 ), 0, 0, -$M$2 ))
湾Last Rows to Add (calc)
工作单元否已实施
=SUM( OFFSET( INDEX(F:F, $I$2, 0 ), 0, 0, -$E$2 ))
总是添加最后13行数据,无论其内容如何
Last Rows to Add (calc)
没有实施,DATA
的记录少于13
。 TOTALS LAST PAGE
不准确,因为下面的总数也会添加
答案 1 :(得分:0)
似乎您正在寻找一种方法来确定列中最后一个非空行(并从那里倒数)的rownumber,以确定您的SUM()
范围。如果您愿意添加辅助列和/或将数据格式化为table,则会有一些更简单的公式。 (请在评论中告诉我,如果是这样的话,我可以修改答案)。
不使用辅助细胞&amp;但是,您可以尝试以下方法将首都A
更改为您选择的列=SUM(INDIRECT("A"&INDEX(ROW(A:A),MAX((A:A<>"")*(ROW(A:A))))&":A"&INDEX(ROW(A:A),MAX((A:A<>"")*(ROW(A:A))))-13))
INDEX(ROW(A:A),MAX((A:A<>"")*(ROW(A:A))))
确定A列中的最后一个非空行(归功于Doug Glancy)。这是一个array formula,必须用 ctrl + shift + 输入进行初始化,然后公式应用大括号{{包裹1}} ... {=SUM(
)}
允许您为INDIRECT()
函数声明动态范围。 SUM()
函数的内部参数求值为INDIRECT()
,其中Ax:Ay
和x
是第13行到最后一行和最后一行的行引用。但是,如果问题是 正在跳过 目标列中的非空白单元 在列的末尾 < / em>,我想不出一个可读的单细胞公式可以允许这个。我建议设置一个辅助单元格,在其中放置一个公式来确定有效的单元格范围。命名此/这些单元格( alt + m + m + d 以显示指定的范围管理器),将允许您将语法更改为y
,而不需要任何数组公式。
希望这有帮助!
答案 2 :(得分:0)
对于我解释的要求,我建议在V112:
=SUM(OFFSET(V112,-13,0,13,1))
如果需要,可以在不同的单元格中更改引用和行偏移量。