AVERAGEIF(range, criteria)公式可忽略数据中的错误。

16

如果您想使用AVERAGEIF()函数对一系列数字求平均值,但希望忽略错误,该如何指定条件呢?

例如,给定以下数据:

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

想要使用AVERAGEIF(range, criteria)公式,类似于这样:
=AVERAGEIF(a1:a5,and("<>#DIV/0!","<>#VALUE!"))
                    or
=AVERAGEIF(a1:a5,"<>Error()")

有没有一种方法可以指定一个标准来排除错误?我期望从范围内得到的答案是2,即三个有效数字(1、5和0)的平均值。

通过搜索,我发现可以使用数组公式或其他函数来实现这一点,但我想知道是否有一种方法可以在不使用数组公式或其他函数的情况下实现这一点。基本上,您可以在标准中指定忽略错误。可以像这样忽略一个错误:

AVERAGEIF(a1:a5,"<>#DIV/0!")

但是如何指定忽略任何错误?这是一个标准问题,使用 Microsoft Excel 2013。


请尝试使用AVERAGEIFS函数 - 您可以在其中添加2个条件。第二种方法可以是AVERAGEIFISERROR函数的组合,以数组公式的形式呈现。 - BrakNicku
4个回答

14

如果您使用的是Excel 2010或更新版本,AGGREGATE函数可以选择忽略所有错误。

=AGGREGATE(1, 6, A1:A5)

        AGGREGATE excluding errors


10

只要您的数据中没有负数,这将起作用:

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

7
如果需要,您可以使用这个版本=AVERAGEIF(A1:A5,"<=9.99E+307")来包含负数。 - barry houdini

1
另一个选择是使用AVERAGEIFS函数,排除特定错误。
=AVERAGEIFS(A13:A17,A13:A17,"<>#DIV/0!",A13:A17,"<>#VALUE!")

然而,我强烈建议您不要采用这种变通方法,而是解决数据中存在错误的实际问题。
例如,在出现#DIV/0!错误时,可以使用IF语句检查是否为零,如果是,则用空字符串替换错误:
=IF(X=0,"",Y)

AVERAGE将自动忽略这些字符串。
如果不知道导致错误的原因,我无法提出更具体的建议来消除它们。

0
你可以使用通配符来忽略所有错误,假设每个错误都以 '#' 开头,以 '!' 结尾。
=AVERAGEIFS(A13:A17,A13:A17,"<>#*!")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接