Excel中不同列怎样计算条件平均值

A1,B1,C1,D1,四列数据,F1中的值为ABCD四列数的平均值(要求:1、如果ABCD全为空值,则F为空;2、如果ABCD有一列不为空,则F为不为空值列的数值;3、如果ABCD有2列不为空,则F为不为空值列的平均数(和的2分之1);4、如果ABCD有3列不为空,则F为不为空值列的平均数(和的3分之1);5、ABCD无空值,F为ABCD和的4分之1
下面是我自己写的,提示超出范围
=IF(ISBLANK(F5)*ISBLANK(G5)*ISBLANK(H5)*ISBLANK(I5),"",IF(ISBLANK(F5)*ISBLANK(G5)*ISBLANK(H5),I5,IF(ISBLANK(F5)*ISBLANK(G5)*ISBLANK(I5),H5,IF(ISBLANK(F5)*ISBLANK(H5)*ISBLANK(I5),G5,F(ISBLANK(G5)*ISBLANK(H5)*ISBLANK(I5),F5,IF(ISBLANK(F5)*ISBLANK(G5),((H5+I5)/2),IF(ISBLANK(F5)*ISBLANK(H5),((G5+I5)/2),IF(ISBLANK(F5)*ISBLANK(I5),((G5+H5)/2),IF(ISBLANK(G5)*ISBLANK(H5),((F5+I5)/2),IF(ISBLANK(G5)*ISBLANK(I5),((F5+H5)/2),IF(ISBLANK(H5)*ISBLANK(I5),((F5+G5)/2),IF(ISBLANK(F5),((G5+H5+I5)/3),IF(ISBLANK(G5),((F5+H5+I5)/3),IF(ISBLANK(H5),((G5+F5+I5)/3),IF(ISBLANK(I5),((G5+H5+F5)/3),(SUM(F5:I5)/4))))))))

第1个回答  2014-06-24
直接用平均函数就可以了。
F1单元格公式如下:
=AVERAGEIF(A1:D1,"<>0")
这个公式表示计算A1到D1单元格中数值不为0的平均值。
第2个回答  2014-06-24
思路:统计不为空的个数A 不为空的值求和B
那么有B/A就是帖主要的结果吧。

所以写公式是SUM(A1:D1)/COUNT(A1:D1)

希望楼主明确空是没有东西,而不是0追问

可以解释详细写吗?

追答

还要详细?
SUM(A1:D1)其实就是A1+B1+C1+D1,空单元格相加当然默认为0
COUNT(A1:D1)就是统计有多少个非空单元格

为避免全是空返回0,可以用IF判断
所以完整公式就是TEXT(SUM(A1:D1)/COUNT(A1:D1),"#;;;")

本回答被提问者采纳
第3个回答  2014-06-24
我没细看,但你可以增加几列,先对这4列的情况进行判断,各种情况赋一个值,然后你只需对所赋的值再进行判断,再用你的公式计算。或许可以达到你的要求。
第4个回答  2014-06-24
不用那么复杂的公式。
=IF(COUNTIF(F5:I5,"<>"),AVERAGE(F5:I5),"")追问

这个公式不可以啊

追答

COUNTIF(F5:I5,"")计算四个单元格中,非空单元格的个数。并作为IF的条件,如果结果大于0,条件成立,返回单元格区域的平均值AVERAGE(F5:I5);如果个数为0,说明全是空值,返回空值""。
AVERAGE会忽略文本,求平均值。

公式不可用,应先检查数据格式是否为文本。

追问

不好意思 刚刚输入后可以了

第5个回答  2014-06-24
if函数最多嵌套7层,你这太多层了追问

那用什么公式替代,麻烦帮我解答

相似回答