ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 15188|回复: 27

[函数用法讨论系列13] 怎样区分内存数组和多单元格数组?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-12-30 17:43 | 显示全部楼层 |阅读模式
怎样区分内存数组和多单元格数组?我一直分不清。请明白的朋友帮解释一下。 内存数组不是一样可以在多单元格显示出来吗?
[此贴子已经被apolloh于2005-12-30 19:53:49编辑过]

TA的精华主题

TA的得分主题

发表于 2005-12-30 18:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

=SUM(A1:A5*B1:B5)

如:这个公式使用了两个数组,第一个数组存储在A1:A5中,第二个数组存储在B1:B5中,

公式使两个数组的对应值相乘,创建了新的数组,这个数组存在于内存中,SUM对新的内存数组计算

如:=SUM({1,2,3,4}*{5,6,7,8})

另Excel支持二维数组,不支持三维,

供参考

apolloh注:这个例子更多说的是"引用区域"和"常量数组",A1:A5*B1:B5 和{1,2,3,4}*{5,6,7,8} 的计算结果都是内存数组。
[此贴子已经被apolloh于2005-12-30 19:57:31编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-30 18:31 | 显示全部楼层

谢谢ZHYZ兄!

  但我还是无法分清内存数组和多单元格数组

TA的精华主题

TA的得分主题

发表于 2005-12-30 19:17 | 显示全部楼层

参考:http://blog.excelhome.net/UploadFiles/2006-2/24257472.rar

这是个竞赛题的总结。内存数组公式(计算结果为数组的公式)在函数高级应用及图表应用中常被提及。此题用十几种方法解决一道多人用餐记录的餐费分摊问题。其中有5种添加辅助区域的方法,3种单个单元格数组公式的方法,5种多单元格数组公式的方法,1种内存数组公式的解法。通过对各种方法的比较分析以及数组测试,阐述了"内存数组公式"这个一个概念及意义,以及多单元格数组公式和"内存数组公式"的区别和联系。
[此贴子已经被作者于2006-2-4 9:38:41编辑过]

TA的精华主题

TA的得分主题

发表于 2005-12-30 19:33 | 显示全部楼层
以下是引用[I]apolloh[/I]在2005-12-30 19:17:53的发言:

参考:http://blog.excelhome.net/UploadFiles/2006-2/24257472.rar

这是个竞赛题的总结。内存数组公式(计算结果为数组的公式)在函数高级应用及图表应用中常被提及。此题用十几种方法解决一道多人用餐记录的餐费分摊问题。其中有5种添加辅助区域的方法,3种单个单元格数组公式的方法,5种多单元格数组公式的方法,1种内存数组公式的解法。通过对各种方法的比较分析以及数组测试,阐述了"内存数组公式"这个一个概念及意义,以及多单元格数组公式和"内存数组公式"的区别和联系。
谢谢版主,我对该问题也不是很清楚,谢谢你提供的下载可以进一步学习!
[此贴子已经被apolloh于2006-2-4 9:39:38编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-30 19:41 | 显示全部楼层
谢谢apolloh版主提供,我下载学习先。

TA的精华主题

TA的得分主题

发表于 2005-12-30 19:44 | 显示全部楼层
可以把数组公式定义为一个名称,如:List,在单元格内输入=Index(List,n),n为一个数字,用于返回数组中的第n个值,看看结果能否返回正确结果,如果可以,就是内存数组,否则不是。

TA的精华主题

TA的得分主题

发表于 2005-12-30 19:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

apolloh补充:

内存数组(computed array)公式指的是,公式的计算结果是数组并直接存入内存,可被整体调用来参与其他计算的数组公式。

一个公式的参数为数组,并不能确定其为内存数组公式。内存数组公式的参数可以是原始数据区域的直接引用,也可以是常量数组,或由其它公式计算出的内存数组结果。

内存数组的一个重要特征是,计算结果是数组,而非引用(比照多维引用)或单值;内存数组的另一个特征是,参数值直接来源于原始数据,而不去引用辅助单元格公式的计算结果。

内存数组公式的结果也可存于多单元格中,但多单元格数组公式的计算结果不一定都是内存数组。除了存于多单元格的内存数组公式外,其他多单元格公式是根据,某参数中的数组或引用的行列位置,相对于结果存放的单元格行列位置的对应关系,来计算单个单元格的相应值。多单元格公式的结果不能作为一个整体被其他公式再次利用,它必须存于Excel单元格区域中,才能正确地显示和被利用。

使用多单元格公式的意义在于,用一个公式一次成批地计算多个单元格,可减少了Excel反复重算的次数。在运算速度上,多单元格公式要比在单元格中分别输入公式要快。

由于内存数组公式不需要用来存储中间结果的辅助单元格,所以在占用磁盘空间和减少Excel重算次数方面很有优势。但是,其需要在内存中一次完成所有事,那么,就要求有足够的内存才能支持其计算。否则,如果内存太低,就需要等待系统响应,运算速度有可能不如添加辅助单元格公式的方式,而且还有可能导致死机。这一个问题,随着计算机硬件的发展,内存容量不断增加,会逐渐得到反解。

[此贴子已经被作者于2006-4-2 12:45:32编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-31 09:54 | 显示全部楼层

谢谢gvntw、apolloh两位版主出手解惑,gvntw版主提供了具体的判定内存数组的方法;apolloh版主则详尽地分析了内存数组和多单元格数组的异同。现在我已基本清楚了这两者的区别了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-31 10:18 | 显示全部楼层

对内存数组和多单元格数组的异同的初步认识:

 1.多单元格数组的原始数据源必须在表内的单元格区域内存在(这个观点有待进一步探讨),而内存数组没有此要求;

 2.多单元格数组是根据参数引用位置相对于结果引用位置的配比来计算每个结果单元格的值的,而内存数组不用。

 3.多单元格数组不能作为整体嵌入其他公式中,而内存数组可以。

 4.假设将数组公式定义为list,可以用rows(list)、columns(list)等函数来判定list的行列。符合的判定为内存数组,否则不是。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 00:13 , Processed in 0.044651 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表