我有一个如下所示的电子表格:
A B C
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列中所有后续子行的值?我会喜欢这样的功能:
=sum_children(A2)
其中A2是具有当前行的大纲编号的单元格。
答案 0 :(得分:2)
您可以使用数组公式来执行此操作。对于下面的公式,我假设您的Section
值按上面所示排序。在C2
中,粘贴以下内容并按 Ctrl + Shift + Enter 输入公式:
=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列是否为当前部分开头的字符串,并且只对那些在当前部分+“。”之后没有额外句点的时间进行总和。
为了避免在向表中添加其他部分时更新这些公式,可以使数组的端点(示例公式中的A7
和C7
)超出底部的行您的表格(例如A50
和C50
)。这可能会略微影响性能,但实际上只有当你过度使用并给自己一个50,000行垫时。