求和“N”个数据的最后一行
这是我对要求的理解:
DATA 在顶部有 2 行 Headers 和其他 2 行 Totals,因此 Excel Table 不适用。
行6:7 包含TOTALS TO DATE 和TOTALS LAST PAGE。 TOTALS LAST PAGE 是DATA 的最后一个13 行的SUM。因此,我们需要识别DATA的最后一行,而不是最后一个非空行。
此解决方案假设:
DATA 位于C3:R38 范围内(根据需要调整),前 4 行为 Header 和 Totals;并且数据详细信息从行7开始。
为了能够计算DATA Last Row,我们需要确定一个字段,它的最后一行单元格总是填充(即它永远不会为空)。为了演示这个解决方案,我假设这个字段位于C 列中。还假设我们需要添加总计的字段在列F:R
此解决方案适用于以下三个工作单元
-
DATA Last Row :这个FormulaArray 是公式的重要组成部分,用于添加几列(+20 个字段) 的TOTALS LAST PAGE,因此在工作单元格中只包含一次,将减少执行工作簿计算所需的资源。
在单元格I2中输入此FormulaArray
(公式数组通过同时按下[Ctrl]+[Shift]+[Enter]输入)
=MAX( (C:C <> "" ) * ROW(C:C) )
-
Last Page Rows (用户输入) :位于E2,这个工作单元保存最后一页的行数(从DATA的最后一行向上添加的行数)。如果要添加的行数发生变化,它可以灵活地更新结果,而不是更改每个公式(+20 个字段),用户只需在此单元格中输入新的行数.
在单元格E2中输入13
-
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 ))
b. 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 不准确,因为下面的总数也被添加了