ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 我对数组与数组运算的认识(欢迎探讨)

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-9-28 09:28 | 显示全部楼层

回复 171楼 xiaofang0224 的帖子

本帖已被收录到知识树中,索引项:数组公式
其实,这篇东西说起来就几个词:
1、分别:把数组拆开了就是一个个单一的元素,分别参与计算,一一对应地去算。
2、方向、尺寸:都是站成一排,你们5人,我们6人打架,你们肯定喊不公平。所以“同向一维数组”尺寸要一致;如果3位领导来慰问10个员工,每个人都要握一次手,那么3人为一列,10人为一行,做“异向一维数组”一个个握手,就不需要尺寸一致了。

TA的精华主题

TA的得分主题

发表于 2010-9-30 20:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-9-30 23:32 | 显示全部楼层
我想和大家分享一个观念:从理论出发,对工具是“一针见血”式的掌握!
版主的帖子很好,在下不才,再整理一下,方便大家理解和记忆^_^
数组运算规则.JPG

TA的精华主题

TA的得分主题

发表于 2010-9-30 23:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢楼主分享,先收藏

TA的精华主题

TA的得分主题

发表于 2010-10-1 09:38 | 显示全部楼层
多次看此帖,每次的收获都不一样,总是感叹数学功底对excel太重要了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-2 17:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 174楼 xiaogljc 的帖子

谢谢探讨,你的“最小公倍数”尺寸,与“自适应观点”相似,并且有所发展。

有2个问题:
1、简单地把数组运算对等于矩阵运算是不妥的(这是称呼上容易混淆的)
例如:MMULT(array1,array1),两个参数所执行的是“矩阵相乘”的运算,对参数的尺寸要求是参数1的列数=参数2的行数。而A1:A3*B1:B3类型的是“数组相乘”,不一样。

2、对于“自适应观点”,我早先有所耳闻,并在帖子展示,但个人并不是很赞同这个观点,其原因有二:一是运算量问题,不管是“自适应观点”还是如果按“最小公倍数”来扩展尺寸,那么,其运算的次数将是扩大很多的;二是对于数组作为参数产生多维引用时,是否会多出区域?
这两个问题应该可以验证,如有兴趣,可以测试看看。

[ 本帖最后由 gouweicao78 于 2010-10-2 17:28 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-10-3 09:39 | 显示全部楼层

回复 177楼 gouweicao78 的帖子

“最小公倍数”尺寸,不合适吧!
例如:
={1,2,3,4}+{1,2,3}
=LCM(4,3)
4和3的最小公倍数是12,而{1,2,3,4}+{1,2,3}计算返回值是{2,4,6,#N/A},对于同维度的计算不准确,我觉得这是由于不对称引起的,异性相吸,同性相斥!

一维数组:
一维数组.jpg

二维数组:
二维数组1.jpg
二维数组2.jpg
二维数组3.jpg

[ 本帖最后由 zhangjimfu 于 2010-10-3 11:24 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-4 19:33 | 显示全部楼层

回复 178楼 zhangjimfu 的帖子

我177楼的回复,说的是我并不同意“最小公倍数”尺寸论,并且也不是很推荐前面的“自适应”观点,因为我认为1楼的图和文字已经描绘清楚数组间直接运算的规律了。

至于“不对称”说,实际上就是“尺寸不一致”,同方向的尺寸不一致,必然有的无法一一对应,产生#N/A并没有什么难理解的。

你图中有一处不明:
QQ截图未命名.jpg
这部分也就是{1,2,3}+{2,3,4}的结果,怎么会有3行?

[ 本帖最后由 gouweicao78 于 2010-10-4 19:38 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-10-4 19:48 | 显示全部楼层

回复 179楼 gouweicao78 的帖子

“狗尾草”版主,看能否帮忙把一行中连续四格的普通公式改成一个数组公式,多谢了!

排序.rar

4.88 KB, 下载次数: 29

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-4 20:17 | 显示全部楼层

回复 180楼 chinjingo 的帖子

=SMALL(MMULT({1,1},MOD(LARGE(IF(COUNTIF(OFFSET($B$1:$E$1,ROW($1:32)-1,),$B32:$E32),ROW($1:32))+{1,2,3,4}*10^{0,3,6,9},{0,1,2,3}*32+$H$35+{1;0}),1000)*{-1;1}),COLUMN(A:A))

其中的MMULT,得到的是4个行差内存数组。
另,你的问题与本主题无关,一般不是跟帖求助,而应自行发帖求助。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 21:17 , Processed in 0.034163 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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