如何使用Excel表结构化引用创建运行总计?

问题描述 投票:18回答:8

我正在寻找一种方法来使用Excel表结构化引用创建一个运行总计(当前行和以上的总和)。

我知道如何使用旧的基于行/列的方式来做到这一点: =SUM($A$2:$A2)

我知道如何使用结构化引用来整合整个列: =SUM([WTaskUnits])

我知道如何使用[#ThisRow]获取当前单元格,但我不知道如何让表格的第一行在SUM中使用它。

excel excel-2007 excel-formula
8个回答
32
投票

实际上,我只想弄清楚使用INDEX的一种方法,但感觉应该有一个更结构化的引用方式。不过,对于其他想要做到这一点的人来说,我想出的是: =SUM(INDEX([WTaskUnits],1):[[#This Row],[WTaskUnits]])

我使用INDEX来获取列的第一个单元格(相当于我的行/列示例中的$ A $ 2)并正常使用[#This Row]来获取当前行中的单元格(相当于我的行/列示例中的A2) 。


2
投票
=SUM(OFFSET([WTaskUnits],0,0,ROW()-ROW([[#Headers],[Running Total]])))

该表有两列[WTaskUnits]和[Running Total]。上面的公式根据要求对单元格范围求和。

OFFSET函数的第一个参数定义了总和的起点。第四学期,

ROW()-ROW([[#Headers],[Running Total]]

对于表中当前行的编号,它是一个有用的习惯用法。


2
投票

我意识到这是一个老线程,但我终于有了一个我想提供的解决方案。

=IF(ISNUMBER(OFFSET([@Balance],-1,0)),OFFSET([@Balance],-1,0)+[@Amount],[@Amount])

在第一个数据行的实例中,偏移量指向标题,而不是数字,因此结果只是Amount列。

剩下的行给你从Balance加上当前行OFFSET的前一个Amount


2
投票

注意,如果使用= SUBTOTAL(109,...)而不是= SUM(...),那么您的公式将尊重表格上的过滤器。


1
投票

不确定你的意思是更有条理,你做的方式很好。您也可以在表格标题下方的单元格中简单地开始您的范围:

OFFSET([[#Headers],[WTaskUnits]],1,0,1,1):

但我不会称之为更有条理,更简单的不同。对于列中的部分行范围没有表格参考,所以我的建议是坚持你所拥有的。


1
投票

使用以下公式:

   =SUM( INDEX([Values],1) : [@Values] )

我们使用INDEX返回Values列中的第一个单元格,只需使用Structured Reference到当前行返回我们想要求和的范围内的第二个单元格。

Source


0
投票

我使用Excel的Pivot创建了我的运行总计:

  • 总和值 - >总和...
  • 将值显示为 - >运行总计

我的2美分,晚了5年(也许错过了这一点)。


-1
投票

对于固定的数据表1.转到列中您想要小计的最后一个单元格2.小计包含数据的列,绝对引用第一行3.将公式复制到第一行

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.