总和过滤值Excel

时间:2014-11-21 16:12:25

标签: excel excel-vba excel-formula vba

我在忽略#DIV / 0时找到过滤值的总和!错误。因此,我结合了以下公式:

=SUBTOTAL(9,$I$2:$I$349)

=SUMIF($I$2:$I$349,"<>#DIV/0!")

获得:

SUBTOTAL(9,SUMIF($I$2:$I$349,"<>#DIV/0!"))

但是,excel会返回错误。任何见解? 难道我不能将公式放在另一个公式中吗?

4 个答案:

答案 0 :(得分:1)

我在网上挖掘了一些光彩:http://www.excelbanter.com/showthread.php?p=760730

这是一个难以遵循的公式,但应该做到这一点。

{=SUM(IF(ISNUMBER($I$2:$I$349),$I$2:$I$349)*(SUBTOTAL(3,OFFSET($I$2:$I$349,ROW($I$2:$I$349)-MIN(ROW($I$2:$I$349)),0,1))))}

这是一个数组公式,因此请务必按Ctrl + Shift + Enter(而不是按Enter键)。

我不能在没有真正深入了解的情况下假装理解这一切,但它确实有效!

答案 1 :(得分:1)

您使用的是哪个版本的Excel?

Excel 2010及更高版本AGGREGATE中,函数的工作方式有点像SUBTOTAL - 它可以执行各种功能而忽略隐藏的行.......但它也有选项要忽略错误值,因此如果没有任何辅助列,您可以使用此单个公式

=AGGREGATE(9,7,I2:I349)

9表示"sum"表示SUBTOTAL7表示第2个参数表示应忽略错误值和隐藏值。还有其他选项,请参阅Excel帮助以获取更多信息

答案 2 :(得分:0)

使用帮助列

H2 中输入:

=IFERROR(G2,"")

然后复制然后使用:

=SUBTOTAL(9,$H$2:$H$349)

答案 3 :(得分:0)

=IFERROR(SUBTOTAL(9,$I$2:$I$349),"")