AVERAGEIF(范围,标准)公式,忽略数据中的错误

时间:2015-05-14 16:08:22

标签: excel excel-formula

如果要平均一系列数字但想要使用AVERAGEIF()函数忽略错误,如何指定条件?

例如,鉴于以下数据:

public void checkEnergyBar(JProgressBar EnergyBar){
    if(getEnergy()<26 ){
        EnergyBar.setForeground(Color.RED);
    }else if(getEnergy()<51 || getEnergy()>26){
        EnergyBar.setForeground(Color.YELLOW);
    }else if(getEnergy()<76 || getEnergy()>51){
        EnergyBar.setForeground(Color.orange);
    }else if(getEnergy()<101 || getEnergy()>76){
        EnergyBar.setForeground(Color.GREEN);
    }

     EnergyBar.repaint();

}

我想使用AVERAGEIF(范围,标准)公式,如下所示:

A1: 1
A2: #DIV/0!
A3: #VALUE!
A4: 5
A5: 0

有没有办法指定排除错误的标准?我期望从该范围得到的答案是2,三个有效数字的平均值(1,5和0)。

我通过搜索发现,有一种方法可以使用数组公式或其他函数来完成此操作,但我想知道是否有一种方法可以在没有数组公式或使用其他函数的情况下执行此操作。基本上,您可以在条件中指定忽略错误。例如,我可以忽略这样一个错误:

=AVERAGEIF(a1:a5,and("<>#DIV/0!","<>#VALUE!"))
                    or
=AVERAGEIF(a1:a5,"<>Error()")

但我不知道如何指定忽略任何错误。所以我的问题是标准问题。我正在使用Microsoft Excel 2013。

3 个答案:

答案 0 :(得分:11)

如果您使用的是Excel 2010及更高版本,则可以选择AGGREGATE function来忽略所有错误。

=AGGREGATE(1, 6, A1:A5)

AGGREGATE excluding errors

答案 1 :(得分:6)

只要您的数据中没有任何负数,这将有效:

=AVERAGEIF(A1:A5,">=0")

答案 2 :(得分:1)

另一个选择是使用AVERAGEIFS,不包括特定错误。

=AVERAGEIFS(A13:A17,A13:A17,"<>#DIV/0!",A13:A17,"<>#VALUE!")

但是,我强烈建议您解决此实际问题,即您的数据中存在错误。

例如,您拥有#DIV / 0!错误,放入IF以检查是否为零,如果找到零,则将错误替换为空字符串:

=IF(X=0,"",Y)

AVERAGE然后将自动忽略这些字符串。

在不了解导致错误的原因的情况下,我无法提出更具体的建议来删除它们。