我需要计算5个单元格的平均值,但如果单元格为空或零,则应忽略该值。
我无法使用
=AVERAGEIFS(A10;B13;C5;D6;D8;"<>0")
有谁知道计算这个的正确方法?
答案 0 :(得分:20)
您正在寻找“Averageif”:
具体来说,您希望使用包含可能空白的范围,然后使用“&gt; 0”
标准=AVERAGEIF(C1:C5,">0")
在这个答案的评论中是关于本地化的讨论。我的语言环境是美国(Excel 2010),因此传递给函数的值之间的分隔符是逗号,
可以在非连续范围上执行averageif函数:
=AVERAGEIF(B1:B1:B3:B3:B5:B5:B7:B7,">0")
对于您的语言环境,您可能需要调整分隔符,但关键是选择单个单元格,对于单个单元格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")
注意:我的Excel的本地化是美国Excel 2010.我的分隔符是逗号,因此请根据您的语言环境进行调整。如果您还希望平均负数,请使用"<>0"
作为Averageif函数中的最后一个值。
间接函数使自定义范围仅由(在本例中)字符串数组指定的单元格。如果符合条件,Averageif仅将项目添加到其计数中。