我正在寻找一种方法来使用Excel表结构化引用创建一个运行总计(当前行和以上的总和)。
我知道如何使用旧的基于行/列的方式来做到这一点:
=SUM($A$2:$A2)
我知道如何使用结构化引用来整合整个列:
=SUM([WTaskUnits])
我知道如何使用[#ThisRow]
获取当前单元格,但我不知道如何让表格的第一行在SUM
中使用它。
实际上,我只想弄清楚使用INDEX的一种方法,但感觉应该有一个更结构化的引用方式。不过,对于其他想要做到这一点的人来说,我想出的是:
=SUM(INDEX([WTaskUnits],1):[[#This Row],[WTaskUnits]])
我使用INDEX来获取列的第一个单元格(相当于我的行/列示例中的$ A $ 2)并正常使用[#This Row]来获取当前行中的单元格(相当于我的行/列示例中的A2) 。
=SUM(OFFSET([WTaskUnits],0,0,ROW()-ROW([[#Headers],[Running Total]])))
该表有两列[WTaskUnits]和[Running Total]。上面的公式根据要求对单元格范围求和。
OFFSET函数的第一个参数定义了总和的起点。第四学期,
ROW()-ROW([[#Headers],[Running Total]]
对于表中当前行的编号,它是一个有用的习惯用法。
我意识到这是一个老线程,但我终于有了一个我想提供的解决方案。
=IF(ISNUMBER(OFFSET([@Balance],-1,0)),OFFSET([@Balance],-1,0)+[@Amount],[@Amount])
在第一个数据行的实例中,偏移量指向标题,而不是数字,因此结果只是Amount
列。
剩下的行给你从Balance
加上当前行OFFSET
的前一个Amount
。
注意,如果使用= SUBTOTAL(109,...)而不是= SUM(...),那么您的公式将尊重表格上的过滤器。
不确定你的意思是更有条理,你做的方式很好。您也可以在表格标题下方的单元格中简单地开始您的范围:
OFFSET([[#Headers],[WTaskUnits]],1,0,1,1):
但我不会称之为更有条理,更简单的不同。对于列中的部分行范围没有表格参考,所以我的建议是坚持你所拥有的。
使用以下公式:
=SUM( INDEX([Values],1) : [@Values] )
我们使用INDEX返回Values列中的第一个单元格,只需使用Structured Reference到当前行返回我们想要求和的范围内的第二个单元格。
我使用Excel的Pivot创建了我的运行总计:
我的2美分,晚了5年(也许错过了这一点)。
对于固定的数据表1.转到列中您想要小计的最后一个单元格2.小计包含数据的列,绝对引用第一行3.将公式复制到第一行