ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-5-9 17:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:数组公式
太深奧了,還看不懂!,先留下記號,以後再來

TA的精华主题

TA的得分主题

发表于 2009-5-9 20:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
猪猪悟语(三)

楼主您好:
看了您在55楼的分析,我顿感豁然开朗。梳理思路后,我总结了一下解决《提升数组意识》这个问题的基本步骤。

在将“行”因素考虑进去的前提下,对A2:G9单元格中的数字整体排序。其中“行”因素用分别增加1000、2000、3000... ...的方式加以实现;排序用SMALL函数加以实现;最终为获得所要求的“行列结构”,用SMALL的参数k设计一个与要求一致的“结构”,提取“右三位”数值后即为结果。

最后非常感谢楼主提出这个问题供大家学习,并给予有效的引导(我就是在看了有关“LOOKUP”和55楼的分析后感到真正收获了楼主所要与大家分享的知识的)。希望今后能多多参与这样的讨论,受益匪浅!!!

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

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-10 06:35 | 显示全部楼层
原帖由 piggy_19840215 于 2009-5-9 20:08 发表
猪猪悟语(三)

楼主您好:
看了您在55楼的分析,我顿感豁然开朗。梳理思路后,我总结了一下解决《提升数组意识》这个问题的基本步骤。

在将“行”因素考虑进去的前提下,对A2:G9单元格中的数字整体排序。其中 ...


恩,我想其他同学看了你的“悟语”三部曲一定很有收获的。
这是数组公式的精髓,理解到这一层算是把数组学通了。
要提高数组功力,接下去的练习就是要提高数组变形能力和数组构造能力,相对来说变形能力简单些,运用你目前的领悟,抓住LOOKUP练内功,假日时日就能随心所欲了。熟练以后就不必先常数数组-内存数组这样按序进阶,一般可以直接用 ROW()函数来变形得到。
有了这些理论武装,就如练功时血脉畅通了,用心意写公式,不要拘泥函数本身的功能。
利用名称把内存数组打包,这样写的公式逻辑性就非常清晰了,而且名称又可以作为另一个逻辑块的输入再生产新的名称,使得公式模块化。模块化只需考虑输入和输出,这里输入输出都是数组。于是完成实际问题时,我们可以一个逻辑块,一个逻辑来解决,类似战术中的分割包围个个击破,这样就把复杂的问题解析成相对简单的问题了,最后就是一个组装的过程。
如果数组变形是内功的话,上面模块化的思想是解题策略。这也会在以后的跟帖中让大家体会到。

[ 本帖最后由 胡剑0227 于 2009-5-10 07:42 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-10 09:33 | 显示全部楼层
26楼的补充作业,难度没有增加,思路稍微有点增添。
开始没有去除公式,不好意思,呵呵

完成这个作业的,也可以尝试看看这个帖子,一定会有更深刻的收获。看不懂也不急
if({1,0},数组1,数组2)原理剖析-猜想

完成本楼作业后,可以尝试实现91楼作业,相同的原理,不同的函数。

[ 本帖最后由 胡剑0227 于 2009-5-10 14:09 编辑 ]
巩固提高26楼作业.jpg

LOOKUP数组变形补充.rar

6.69 KB, 下载次数: 1029

TA的精华主题

TA的得分主题

发表于 2009-5-10 10:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-5-10 10:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢版主84楼的练手题。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-10 13:05 | 显示全部楼层
原帖由 monvzhilei 于 2009-5-9 06:49 发表
=SMALL($A2:$G2,COLUMN()-9).右拉,下拉。
我是对一楼版主的题目。
当然用数组公式也很好。理解起来有点累。呵呵,功力有待提高。


公式是正确的,对引用方式等相信也有了比较好的理解。不过函数高手还是要练练数组公式的,以你目前的函数功力看这个帖子应该还是可以了,如果确实觉得没数组公式的概念,请参看:一维数组公式讲解

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-10 13:10 | 显示全部楼层
原帖由 taijilao 于 2009-5-9 13:25 发表
授人已鱼,不如授人已渔!


呵呵,我想经过这个帖子的练习,大家在理论上应该都具备了成为数组公式高手的实力,剩下的就是多答题,对实际情况多总结和思考了。

TA的精华主题

TA的得分主题

发表于 2009-5-10 13:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
倒叙:=LOOKUP(13-ROW($A$1:$A$12),ROW($A$1:$A$12),$A$1:$A$12)
间隔取数:=LOOKUP(2*ROW($1:$6)-1,ROW($A$1:$A$12),$A$1:$A$12)
奇偶并列:=LOOKUP(2*ROW($1:$6)-{1,0},ROW($A$1:$A$12),$A$1:$A$12)
向版主讨教。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-10 13:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 weifaxiang 于 2009-5-10 13:38 发表
倒叙:=LOOKUP(13-ROW($A$1:$A$12),ROW($A$1:$A$12),$A$1:$A$12)
间隔取数:=LOOKUP(2*ROW($1:$6)-1,ROW($A$1:$A$12),$A$1:$A$12)
奇偶并列:=LOOKUP(2*ROW($1:$6)-{1,0},ROW($A$1:$A$12),$A$1:$A$12)
向版主讨教 ...


呵呵,正确呀。
如果这是本帖的收获那替你开心,呵呵
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 15:18 , Processed in 0.043800 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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