汇总特定行中的列

时间:2014-01-22 14:59:40

标签: excel excel-formula

看起来很简单,但我无法找到一种方法来定义Excel公式中列末尾的范围。

例如,我可以使用此公式SUM(C:C)来求和列C上找到的所有数字。但是,鉴于页面顶部有标题和列标题,我想在行开始我的范围6.我认为SUM(C6:C)会这样做,但它在Excel中不起作用。

这是必需的,所以无论我将来在文档中添加多少行数据,我的SUM总是正确的。

感谢。

5 个答案:

答案 0 :(得分:18)

=Sum(C:C)-Sum(C1:C5)

总结所有内容,然后删除您不想要的单元格中的值的总和,不需要挥发性偏移,间接或数组。

只是为了好玩,如果你不喜欢这种方法,你也可以使用:

=Sum($C$6:INDEX($C:$C,MATCH(9.99999999999999E+307,$C:$C))

上述公式将仅从C6到C:C中的最后一个单元求和,其中找到一个数字的匹配。这也是非挥发性的,但我相信更昂贵和草率。如果您不喜欢这样,请加入它。

如果您想使用您可以使用的列中的最后一个文本值来执行像CountA这样的函数。

=COUNTIF(C6:INDEX($C:$C,MATCH(REPT("Z",255),$C:$C)),"T")

你也可以使用其他组合,如:

=Sum($C$6:$C$65536) 

=CountIF($C$6:$C$65536,"T") 

以上内容可以在Excel 2003及更低版本中执行。

=Sum($C$6:$C$1048576) 

=CountIF($C$6:$C$1048576,"T")

两者都适用于Excel 2007 +

以上所有功能都会忽略最后一个值下的所有空白值。

答案 1 :(得分:1)

你们似乎都喜欢并发症。只需单击列(以选择整个列),按住CTRL并单击要排除的单元格(在这种情况下为C1至C5)。现在,您已经选择了整个C列(在工作表的最右边),而没有起始单元格。现在您要做的就是右键单击并为您的选择(例如asdf)定义名称。在公式中,使用SUM(asdf)。现在您完成了。祝你好运

总是找到最简单的方法;)

答案 2 :(得分:1)

This似乎对我来说是最简单(但不是最可靠)的方式。只需计算Excel第6行到允许的最大行数之和。根据此site,当前最大值为1048576,因此以下内容应为您工作:

=sum(c6:c1048576)

有关更强大的解决方案,请参见其他答案。

答案 3 :(得分:0)

如果您不介意使用OFFSET(),这是一个每次更改单元格时重新计算的易失性函数,那么这是一个既动态又可重用的好解决方案:

=OFFSET($COL:$COL, ROW(), 1, 1048576 - ROW(), 1)

其中$ COL是您要操作的列的字母,ROW()是行函数,它动态地选择与包含此公式的单元格相同的行。您也可以用静态数字($ ROW)替换ROW()函数。

=OFFSET($COL:$COL, $ROW, 1, 1048576 - $ROW, 1)

您可以通过将1048576的命名常量定义为“maxRows”来进一步清理公式。这可以在“公式”选项卡的“定义名称”菜单中完成。

=OFFSET($COL:$COL, $ROW, 1, maxRows - $ROW, 1)

一个简单的例子:从C6到C列的末尾,您可以这样做:

=SUM(OFFSET(C:C, 6, 1, maxRows - 6, 1))

或     = SUM(OFFSET(C:C,ROW(),1,maxRows - ROW(),1))

答案 4 :(得分:0)

像这样的事情对我有用(在相关的Excel 2013中,从第8行到列的末尾引用C和D列):

=SUMIFS(INDIRECT(ADDRESS(ROW(D$8), COLUMN())&":"&ADDRESS(ROWS($C:$C), COLUMN())),INDIRECT("C$8:C"&ROWS($C:$C)),$C$2)