计算电子表格中的小计行

我有一个电子表格,如下所示:

ABC 1 Section Task Dev Hours 2 4 PROJECT TOTAL =c3+.... 3 4.1 Public site =c4+c5+... 4 4.1.1 User Accounts 2 5 4.1.2 Daily Deal =sum(c6:c7) 6 4.1.2.1 Model 4 7 4.1.2.2 View 2 

我想要的是一个更好的方式来计算列C中的非叶行的小计。 使用= sum是容易出错的,因为我添加/删除行。 也只有当所有的孩子都是叶子的时候,我才能使用它,否则会重复计算。 使用加法更容易出错和烦人。 有一些方法可以告诉{Excel,OpenOffice,LibreOffice,Google Documents}根据列A中的大纲数字汇总列C中所有后续子行的值吗? 我会喜欢这样的function:

 =sum_children(A2) 

A2是当前行大纲号的单元格。

您可以使用数组公式来做到这一点。 对于下面的公式,我假设你的Section值按照上面的方式sorting。 在C2 ,粘贴以下内容并按下Ctrl + Shift + Enter键input公式:

 =SUM(IF(LEFT($A3:$A$7,LEN(A2))=A2,IF(ISERROR(FIND(".",$A3:$A$7,LEN(A2)+2)),$C3:$C$7,0),0)) 

然后,您应该能够复制单元格C2并粘贴到代表父节点的任何单元格中。

基本上,这个公式检查当前行下面的列A,以当前部分开始的string,并且只在当前部分+“。”之后没有额外时间段的那些时间内累加开发时间。

为避免在向表中添加其他节时需要更新这些公式,可以使数组的终点(例如公式中的A7C7 )超出表的底部(例如A50C50 )。 这可能会影响性能稍微,但只有当你过度,给自己一个50,000行的垫。