ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 有志于成为数组公式高手的不要错过(功力修炼)(胡剑开课了...)

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-12 09:54 | 显示全部楼层
本帖已被收录到知识树中,索引项:数组公式
原帖由 moon2778 于 2009-5-11 17:48 发表
关于22楼作业,自从看了lookup那个查找机制的帖子看了三遍没看懂后,对这个函数简直望而生畏,深深的伤害了我,可以换一个函数么。。。。index貌似简单很多。。。


index函数有一个缺陷,又是内存数组问题。当一个n行*m列的区域做第一参数时,若要取若干相邻元素组成一维数组时并不能如愿得到对应的内存数组,除非是整行整列的取数。
看下图:

[ 本帖最后由 胡剑0227 于 2009-5-12 09:56 编辑 ]
INDEX函数的缺陷.png

INDEX函数的缺陷.rar

7.75 KB, 下载次数: 321

TA的精华主题

TA的得分主题

发表于 2009-5-12 10:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 胡剑0227 于 2009-5-12 09:54 发表


index函数有一个缺陷,又是内存数组问题。当一个n行*m列的区域做第一参数时,若要取若干相邻元素组成一维数组时并不能如愿得到对应的内存数组,除非是整行整列的取数。
看下图:


那是不是等于回答了我170楼《为什么AG列返回错误》的AG列为什么错误。。。。。。为什么错误。。。

TA的精华主题

TA的得分主题

发表于 2009-5-12 10:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
J2=
=TRUNC(SMALL($A11:$G11+COLUMN($A11:$G11)/100,COLUMN()-9))
三键

下拉,右拉

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-12 10:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不过INDEX确实比较灵活,可以看看下图,用来练习数组变形,这个是核心问题,虽然他不能生成内存数组,但可以用来练习数组功力。

去除公式的可以用来尝试演练,含公式的比较时作参考。

[ 本帖最后由 胡剑0227 于 2009-5-12 10:49 编辑 ]
INDEX数组变形.png

INDEX函数的数组变形-去除公式.rar

6.68 KB, 下载次数: 295

INDEX函数的数组变形-含公式.rar

7.14 KB, 下载次数: 411

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-12 10:40 | 显示全部楼层
原帖由 moon2778 于 2009-5-12 10:11 发表


那是不是等于回答了我170楼《为什么AG列返回错误》的AG列为什么错误。。。。。。为什么错误。。。


不好意思,真的有点看不过来,不过我尽量看,看了再回答呀,呵呵。

TA的精华主题

TA的得分主题

发表于 2009-5-12 10:47 | 显示全部楼层
有关《为什么AG列返回错误》的问题,我觉得moon2778的公式生成方式肯定是错了。一个可行且合理的方式是将数组公式分别粘贴8次,而决不应该是一次性生成,因为返回值是“一个值”而不是“八个值构成的列向量”。至于为什么一次性生成后错误值是“8”,我也不明白。

[ 本帖最后由 piggy_19840215 于 2009-5-12 11:16 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-5-12 10:59 | 显示全部楼层
补充有关《为什么AG列返回错误》问题的附件

[ 本帖最后由 piggy_19840215 于 2009-5-12 11:06 编辑 ]
为什么AG列返回错误.jpg

为什么AG列返回错误.rar

4.64 KB, 下载次数: 104

TA的精华主题

TA的得分主题

发表于 2009-5-12 11:10 | 显示全部楼层
完成了《提升数组意识_难度提高》的作业

[ 本帖最后由 piggy_19840215 于 2009-5-12 11:13 编辑 ]
提升数组意识_难度提高.jpg

提升数组意识_难度提高.rar

6.34 KB, 下载次数: 492

TA的精华主题

TA的得分主题

发表于 2009-5-12 11:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 piggy_19840215 于 2009-5-12 10:59 发表
补充有关《为什么AG列返回错误》问题的附件


谢谢小猪,我明白了,至于为什么返回是8,应该是这样来理解的(不确定是否正确)
=SUM(--($AB$2:$AB$9=INDEX($AB$2:$AB$9,ROW()-1)))其中的row()在多单元数组公式中,不再是单一单元格引用,其实变成了ROW(AG2:AG9)一维数组的形式,那么公式就变成了 =SUM(--($AB$2:$AB$9=INDEX($AB$2:$AB$9,ROW(AG2:AG9)-1))) 这样就可以理解了。。。但是公式求值的过程。。。让我很不能明白

啊。。。。我又落下大部队了。。。不能想了,暂停,暂停,先忙工作。。。。不然大脑容易混乱。。。

好了,我的问题已解决,现在明白了,附件公式也改了,根据楼主教的方法,用index来处理就可以了。

[ 本帖最后由 moon2778 于 2009-5-12 11:58 编辑 ]

为什么AG列返回错误(已解决).rar

4.81 KB, 下载次数: 1335

为什么AG列返回错误(之前的错误公式).rar

4.64 KB, 下载次数: 66

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-12 11:16 | 显示全部楼层
原帖由 zhanhewang 于 2009-5-11 17:59 发表
143楼作业。


公式为:=MID(A2:A9,COLUMN(A:G),1) 正确。

但给些建议,不知是否认同。
我们都是从实战出发,因此完成一个多单元格数组公式后,我们要马上想到用名称来存储这个公式,养成模块化实现问题的良好习惯。
定义名称时有些讲究,公式的内容是和当前单元格相联系的,因此如没有特殊的目的需要把单元格引用变成绝对引用。

另一点,COLUMN(A:G)这样的行数组 最好使用 transpose(row($1:$7))来实现。比如要生成一个100列的,column(A:X?),不是很便利。

[ 本帖最后由 胡剑0227 于 2009-5-12 11:18 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-23 05:15 , Processed in 0.047517 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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