这是我的数据
Region Value East 9800 East 5592 East 6966 West 5418
当我做
=AVERAGE(IF(A2:A5="East",B2:B5)) CTRL+SHIFT+ENTER
我明白了
7452.667
哪个是正确的答案.但是,当我这样做
=AVERAGE(IF(A2:A5="East",B2:B5)) ENTER
我没有收到错误.我明白了
6944
如果我只是输入
=IF(A2:A5="East",B2:B5) ENTER
我明白了
9800
所以6944不是9800的平均值.Excel在这做什么?
当我做
=IF(A2:A5="West",B2:B5) ENTER
我明白了
FALSE
所以看起来IF正在读取第一行......但是平均值(If())会发生奇怪的事情
我有一两个问题和一个祷告:
问题:到达6944时excel做了什么?当我输入ENTER而不是CTRL + SHIFT + ENTER时,为什么我没有收到错误?有没有办法提醒excel告诉我在处理数组时做正确的事情?
祷告:我只能希望在过去的几周里我没有产生大量的垃圾,因为我忽略了CTRL-SHIFT-ENTER并且错误地完成了输入而没有出错并且用我得到的东西跑了.
6944
是所有值的平均值.你也可以使用它=SUM(B2:B5)/4
.
如果您不使用CSE,IF
将评估如下:
=IF(A2="East",B2:B5)
当您在excel中的非数组公式中有一个数组时,您将只获得该数组的一个术语(或元素).例如,如果你输入上面的公式(没有AVERAGE
),则IF
计算与插入公式的行对应的单元格.如果你将它放在excel的第二行(任何一个),实际的"结果"公式将如下所示细胞C2,D2,E2等):
=IF(A2="East", B2)
如果你把它放在C3单元格中会发生什么:
=IF(A3="East", B3)
如果你把它放在C6 ... A2:A5
将返回#VALUE!
,因为相应的6英寸行A2:A5
不存在!当然,在C5中,您将得到=IF(A5="East", B5)
哪些将FALSE
与您的样本值一起返回.
从最初的公式开始,A2
确实如此East
,你会得到结果AVERAGE(B2:B5)
.
与其他功能相同:
=IF(A2="West",B2:B5)
返回FALSE
,平均值FALSE
是0
.
您可以使用AVERAGEIF
不需要输入数组的函数来工作,但假设您有Excel 2007或更高版本:
=AVERAGEIF(A2:A5,"East",B2:B5)
如果您不想使用数组函数并且在2007之前使用excel版本,例如Excel 2003,您可以尝试:
=SUMIF(A2:A5,"East",B2:B5)/COUNTIF(A2:A5,"East")