平均来自5个单元格,如果不是空白或零

时间:2014-04-01 13:32:19

标签: excel average zero

我需要计算5个单元格的平均值,但如果单元格为空或零,则应忽略该值。

我无法使用

=AVERAGEIFS(A10;B13;C5;D6;D8;"<>0")

有谁知道计算这个的正确方法?

4 个答案:

答案 0 :(得分:20)

您正在寻找“Averageif”: Excel showing averageif

具体来说,您希望使用包含可能空白的范围,然后使用“&gt; 0”

标准
=AVERAGEIF(C1:C5,">0")

更新:非连续范围(并非全部工作)

在这个答案的评论中是关于本地化的讨论。我的语言环境是美国(Excel 2010),因此传递给函数的值之间的分隔符是逗号,

可以在非连续范围上执行averageif函数:

=AVERAGEIF(B1:B1:B3:B3:B5:B5:B7:B7,">0")

Excel 2010 comma-delimited averageif

对于您的语言环境,您可能需要调整分隔符,但关键是选择单个单元格,对于单个单元格C1和D4使用格式“C1:C1:D4:D4”。引擎必须成对地解析引用。

答案 1 :(得分:5)

对于非连续值的平均值,不包括任何零,请尝试此公式

=IFERROR(SUM(A10;B13;C5;D6;D8)/((A10<>0)+(B13<>0)+(C5<>0)+(D6<>0)+(D8<>0));0)

或假设没有负值,您可以使用此

=IFERROR(SUM(A10;B13;C5;D6;D8)/INDEX(FREQUENCY((A10;B13;C5;D6;D8);0);2);0)

我根据问题使用了分号分隔符,如果您的区域设置需要

,请更改为逗号

答案 2 :(得分:2)

我发现自己正在研究一些我想用非空单元格计算公式的东西。为此,我使用了以下内容:

=IF(COUNT(DATA),COMPUTE(DATA),"")

(其中COMPUTE是您要制作的公式或计算,DATA是您拥有的数据的选择 - 在我的情况下是一列数据。)

要确保单元格为空/零/某些不是“正常值”时,您可以使用以下内容: = IF(条件,正常值,“”)

  

示例:

=IF(SUM(DATA)=0,"",SUM(DATA))
     

如果数据不为零,则仅对数据求和,其他单元格将为非零   当数据为零时,将此单元格视为空白。

答案 3 :(得分:0)

使用间接的平均值

在我对这个问题的另一个答案失败了大约三次后,这个答案应该准备好进行检查了:

=AVERAGEIF(INDIRECT({"b1","b3","b5","b7"}),">0")

Averageif and Indirect

注意:我的Excel的本地化是美国Excel 2010.我的分隔符是逗号,因此请根据您的语言环境进行调整。如果您还希望平均负数,请使用"<>0"作为Averageif函数中的最后一个值。

如何运作

间接函数使自定义范围仅由(在本例中)字符串数组指定的单元格。如果符合条件,Averageif仅将项目添加到其计数中。