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