这是我的资料
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看上去像是在读第一行..。但是后来发生了一些奇怪的事情(如果())
我有一个/两个问题和一个祈祷:
问题: excel做了什么才能到达6944?为什么当我输入而不是CTRL+SHIFT+ENTER时没有得到一个错误,有什么方法可以提醒excel在处理数组时要做正确的事情?
祈祷者:我只能希望在过去的几周里,我没有产生太多的垃圾,因为我忽略了CTRL--倒班--错误地进入并做了输入,而没有错误和我得到的东西一起跑。
发布于 2014-01-14 15:32:22
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!,因为A2:A5中对应的6行不存在!当然,在C5中,您将得到=IF(A5="East", B5),它将返回带有示例值的FALSE。
按照最初的公式,因为A2确实是East,所以您将得到AVERAGE(B2:B5)的结果。
其他职能也是如此:
=IF(A2="West",B2:B5)返回FALSE,FALSE的平均值为0。
您可以使用不需要输入数组才能工作的函数AVERAGEIF,但这是假设您有Excel2007或更高版本:
=AVERAGEIF(A2:A5,"East",B2:B5)如果您不想使用数组函数,并且在2007年之前一直使用excel版本,例如Excel 2003,您可以尝试:
=SUMIF(A2:A5,"East",B2:B5)/COUNTIF(A2:A5,"East")https://stackoverflow.com/questions/21117183
复制相似问题