首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel不正确的数组公式使用说明

Excel不正确的数组公式使用说明
EN

Stack Overflow用户
提问于 2014-01-14 15:22:47
回答 1查看 1.2K关注 0票数 6

这是我的资料

代码语言:javascript
运行
复制
Region    Value
East       9800
East       5592
East       6966
West       5418

当我这么做

代码语言:javascript
运行
复制
=AVERAGE(IF(A2:A5="East",B2:B5)) CTRL+SHIFT+ENTER

我得到了

代码语言:javascript
运行
复制
7452.667

这是正确的答案。但当我做的时候

代码语言:javascript
运行
复制
    =AVERAGE(IF(A2:A5="East",B2:B5))  ENTER

我没搞错。我得到了

代码语言:javascript
运行
复制
6944

如果我刚打字

代码语言:javascript
运行
复制
 =IF(A2:A5="East",B2:B5)   ENTER

我得到了

代码语言:javascript
运行
复制
 9800

所以6944并不是9800的平均数。Excel在这里做什么?

当我这么做

代码语言:javascript
运行
复制
=IF(A2:A5="West",B2:B5)  ENTER

我得到了

代码语言:javascript
运行
复制
 FALSE

看上去像是在读第一行..。但是后来发生了一些奇怪的事情(如果())

我有一个/两个问题和一个祈祷:

问题: excel做了什么才能到达6944?为什么当我输入而不是CTRL+SHIFT+ENTER时没有得到一个错误,有什么方法可以提醒excel在处理数组时要做正确的事情?

祈祷者:我只能希望在过去的几周里,我没有产生太多的垃圾,因为我忽略了CTRL--倒班--错误地进入并做了输入,而没有错误和我得到的东西一起跑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-14 15:32:22

6944是所有值的平均值。您也可以使用=SUM(B2:B5)/4获得它。

当您不使用CSE时,IF将评估如下:

代码语言:javascript
运行
复制
=IF(A2="East",B2:B5)

当excel中的非数组公式中有一个数组时,您将只得到数组的一个项(或元素)。例如,如果将上述公式(没有AVERAGE)放入,则IF计算与公式插入的行对应的单元格。如果将其放在excel的第二行(在任何一个单元格C2、D2、E2等中),则实际的“结果”公式如下:

代码语言:javascript
运行
复制
=IF(A2="East", B2)

如果您将其放入单元格C3中,会发生什么:

代码语言:javascript
运行
复制
=IF(A3="East", B3)

如果你把它放进C6..。A2:A5将返回#VALUE!,因为A2:A5中对应的6行不存在!当然,在C5中,您将得到=IF(A5="East", B5),它将返回带有示例值的FALSE

按照最初的公式,因为A2确实是East,所以您将得到AVERAGE(B2:B5)的结果。

其他职能也是如此:

代码语言:javascript
运行
复制
=IF(A2="West",B2:B5)

返回FALSEFALSE的平均值为0

您可以使用不需要输入数组才能工作的函数AVERAGEIF,但这是假设您有Excel2007或更高版本:

代码语言:javascript
运行
复制
=AVERAGEIF(A2:A5,"East",B2:B5)

如果您不想使用数组函数,并且在2007年之前一直使用excel版本,例如Excel 2003,您可以尝试:

代码语言:javascript
运行
复制
=SUMIF(A2:A5,"East",B2:B5)/COUNTIF(A2:A5,"East")
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21117183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档