如果不是空白或零,则从5个单元平均

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

我无法得到它的工作

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

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

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

=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)

我使用分号分隔符作为每个问题,如果您的区域设置需要更改为逗号

您正在寻找“Averageif”: Excel显示averageif

具体而言,要使用包含可能的空白的范围,然后使用“> 0”

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

更新:不连续的范围(不是所有的工作)

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

在不连续的范围上执行averageif函数是可能的:

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

Excel 2010逗号分隔的平均值

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

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

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

(其中COMPUTE是你想要的公式或计算,而DATA是你所select的数据 – 在我的情况下是一列数据)。

为了确保单元格为空/零/某些东西,当不是“正常值”时,可以使用如下forms:= IF(CONDITION,NORMAL VALUE,“”)

例:

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

这只会在数据为非零的情况下求和,其他单元格在数据为零时会将此单元格视为空白。

Averageif使用间接

在回答这个问题的三次失败之后,这个答案应该是可以检查的:

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

Averageif和间接

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

怎么运行的

间接函数使用(在本例中)指定的单元格的一个自定义范围。 如果符合条件,Averageif只会将项目添加到其计数中。