ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 函数与公式 > 为什么C5公式普通输入和数组输入返回值不同?

为什么C5公式普通输入和数组输入返回值不同?

作者:绿色风 分类: 时间:2022-08-17 浏览:142
楼主
lrlxxqxa
Q:为什么C5公式普通输入和数组输入返回值不同?


 
 

A:因为输入方式不同,excel采取的运算模式不同。
当直接输入时,excel按照隐含交叉(公式所在单元格与引用单元格之间的位置的交叉单元格的值)方式计算;
而三键输入时,excel按照数组运算方式计算。
隐含交叉2007.rar
2楼
lrlxxqxa
结合此例说一下隐含交叉和数组运算这两种不同的运算方式:
注:红色区域是普通公式,按照隐含交叉引用方式计算;蓝色区域是数组公式,按照数组运算方式计算。

数量=OFFSET(Sheet1!$A$2,,,COUNTA(Sheet1!$A:$A)-1),这里是利用offset引用了一个动态区域,即A列的非空单元格(除了A1),返回到单元格中也就是一个内存数组:{2;3;2;4;8;1}

当我们在C5输入=数量时,公式所在单元格C5与“数量”引用的动态区域A2:A7,交叉在A5单元格,所以返回A5单元格的值=4。
如果还理解不了,可以想象C5是一个点(红色),A2:A7是一条线(黄色),红色和黄色垂直交叉的交集所在单元格的值,就是公式返回的结果。

当我们在C5三键输入={数量}时,excel就不会按照隐含交叉引用方式运算了。因为C5是一个单独的单元格,excel会把“数量”引用的动态区域的第一个值返回,即{2;3;2;4;8;1}里面的第一个元素=2。

另外,当普通公式输入区域与黄色区域没有交集的时候,结果出错#VALUE!;如果以数组公式输入则不会出错,因为excel根本就不会和黄色区域去交叉比对。
3楼
lrlxxqxa
多说几句,数组运算并非是三键结束的公式才能告知excel执行,有的函数内部的运算执行的就是数组运算,如sumproduct,这时就没有必要使用三键结束输入。

只有当sumproduct函数嵌套其它函数使用(比如if)不能满足要求的运算方式时,才需要三键结束。

也不是说所有的数组公式(三键结束)都必须执行按照数组的运算方式执行运算。比如把一个常量数组{1;2;3;4;5}三键输入到单元格中,执行的就不是标准的数组内部运算,而是简单的把多个值和多个单元格一一对应。因为对于这样的公式,根本用不着以数组的模式来运算。
4楼
gouweicao78
很用心,喜欢总结。但:

问题1:下的结论往往不够严谨,例如:

“只有当sumproduct函数嵌套其它函数使用(比如if)不能满足要求的运算方式时,才需要三键结束。”

IF(SUMPRODUCT和SUMPRODUCT(IF都是嵌套使用,表述就变得含糊了,“要求的运算方式”是什么,也含糊了。

问题2:题目和本文的主旨是什么?是隐含交叉问题还是探讨数组公式问题?

呵呵,也就是说,你很想多让读者了解更多的信息,但文章的组织却没做到,因而倒不如退一步,先把问题一个个说清楚,让文章更有主次分明和层次感。
5楼
lrlxxqxa

对于您说的我下的结论往往不够严谨,这个我认同,因为还有其他人也这么说过我,呵呵。

这个问题来源于qq群内的讨论,好几个朋友对于1楼的问题都十分困惑,我认为挺有代表性的所以做了示例来说明。还不错,其中有2个听了我的讲解已经明白啦。

至于此问是隐含交叉还是数组运算,其实发帖时我并没有想得很清楚,想到哪里写到哪里,自然就很混乱了。现在想想,主要说的是函数运算中的隐含交叉引用吧。

2个月前,我对于隐含交叉概念很模糊,还是您指点的我,不知记得否?

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap