Excel 计算电子表格中的小计行

Excel 计算电子表格中的小计行,excel,spreadsheet,google-sheets,openoffice-calc,libreoffice,Excel,Spreadsheet,Google Sheets,Openoffice Calc,Libreoffice,我的电子表格如下所示: 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

我的电子表格如下所示:

   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
=sum_children(A2)
我想要的是一种更好的方法来计算C列中非叶行的小计。在添加/删除行时,使用=sum容易出错。而且我只能在所有孩子都离开时使用它,否则它会重复计算。使用加法甚至更容易出错,更令人讨厌。是否有某种方法可以告诉{Excel、OpenOffice、LibreOffice、Google Documents}根据列A中的大纲编号,汇总列C中所有子行的值?我喜欢这样的函数:

   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
=sum_children(A2)

其中A2是具有当前行轮廓号的单元格。

您可以使用数组公式进行此操作。对于下面的公式,我假设您的
部分
值按照上面显示的顺序进行排序。在
C2
中,粘贴以下内容并按Ctrl+Shift+enter键输入公式:

然后,您应该能够复制单元格C2并粘贴到下面表示父节的任何单元格上

基本上,该公式检查当前行下方A列中以当前节开头的字符串,并仅对当前节+”之后没有额外句点的字符串的开发小时数求和


为避免在向表中添加其他节时更新这些公式,可以将数组的端点(
A7
C7
在示例公式中)设置为超出表底部的一行(例如
A50
C50
)。这可能会对性能产生轻微影响,但实际上只有当你做得太过火,给自己一个50000行的pad时才会发生。

哇,你是一个Excel向导。在Google Docs中,如果你将整个内容用
=arrayfunction()
包装,而不是键入
Ctrl
+
Shift
+
Enter
。我有点担心如果大纲级别有两位数字,比如
4.1.10.2
,那么
+2
会被破坏。实际上,
+2
在所有情况下都应该没有问题。它所做的只是确保
FIND()
函数在当前节加上另一个句点之后开始查找其他句点。因此,例如,如果当前部分是
4.1.10
,它将从第8个开始查看以下部分(即
4.1.10
的6个字符加上一个句号)。它将找到在该字符之后没有其他句点的任何匹配部分,包括
4.1.10.10
4.1.10.100000
。啊,你说得对:它用于在句点上跳跃,而不是数字。谢谢