ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-5-12 11:25 | 显示全部楼层
本帖已被收录到知识树中,索引项:数组公式
赞同楼主有关用TRANSPOSE(ROW())替代CLOUMN()的方式处理行数组。确实非常直接。

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

TA的精华主题

TA的得分主题

发表于 2009-5-12 11:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 piggy_19840215 于 2009-5-12 11:25 发表
统一楼主有关用TRANSPOSE(ROW())替代CLOUMN()的方式处理行列数组。确实非常实用。



也许zhanhewang 认为虽然不方便书写,但是公式更短。。。。本来也是啊。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-12 11:41 | 显示全部楼层
原帖由 moon2778 于 2009-5-11 21:11 发表
91楼作业 麻木了 已经完全麻木了。。。


=MMULT(J2:P9,10^(ROWS($J$2:$J$8)-ROW($I$1:$I$7))*COLUMN(1:12)^0)

任务完成,用样可以看出费了不少心思,即所谓的麻木了,你的公式也很原生态无污染,就是不够老道。当然重要的是你已经会用MMULT来思考问题了,这是重要的。

不过第二参数走的实在是太远了,目标是一个 一列 数组,所以第二参数只要是一列就可以了。好好体会一下以下92楼的或其他同学的公式,你也许就豁然开朗了,会轻松很多。
如果解题要用到那么复杂的技巧,那么算了,实战性太差了。呵呵。
当然初学MMULT时都会头大的,很正常。现在体会深,以后用来起会更轻松。


可以参阅92楼公式
=MMULT(J2:P9,10^(7-ROW($1:$7)))数组公式

[ 本帖最后由 胡剑0227 于 2009-5-12 11:43 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-5-12 12:00 | 显示全部楼层

回复 184楼 胡剑0227 的帖子

服了你了,公式丑就公式丑嘛。。。。原生态无污染。。。。搞笑。。。。

谢谢老师认真批改每个同学的作业,还写深刻的评语,受教了。

=MMULT(J2:P9,10^(ROWS($J$2:$J$8)-ROW($I$1:$I$7))*COLUMN(1:12)^0)
另外之所以第一次写这个 写成这样 是我理解错误,我以为mmult的数组相乘是严格按照矩阵相乘的规则,一个乘数的行数要对应另一个乘数的列数。即|x|*|y|必须 x的行数等于y的列数,否则不能相乘。结果后来才发现数组不是矩阵,可以自动扩展。

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

TA的精华主题

TA的得分主题

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


赞一个,。。。原来mmult可以自己扩展的。。。


是的,以后数组公式用得精妙与否有时就表现在构造数组上。有条件要上,没有条件就创造条件么,呵呵。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-12 12:16 | 显示全部楼层
原帖由 weifaxiang 于 2009-5-11 22:07 发表

请指教。


你的公式:
=IF(--RIGHT(SMALL(IF(ISERR(FIND((COLUMN(A:J)-1)*ROW(A2:A9)^0,A2:A9)),10,(COLUMN(A:J)-1)*ROW(A2:A9)^0)+ROW(A2:A9)*10^3,COLUMN(A:J)+(ROW(A2:A9)-2)*10),3)=10,"",--RIGHT(SMALL(IF(ISERR(FIND((COLUMN(A:J)-1)*ROW(A2:A9)^0,A2:A9)),10,(COLUMN(A:J)-1)*ROW(A2:A9)^0)+ROW(A2:A9)*10^3,COLUMN(A:J)+(ROW(A2:A9)-2)*10),3))

只能说你很强吧,呵呵。如果问题再复杂点呢,呵呵。要善于运用名称来封装模块,模块化流水线作业。那样改进时,也可以从模块出发。

TA的精华主题

TA的得分主题

发表于 2009-5-12 13:08 | 显示全部楼层
另外,题外话。大家不要拿砖头扔我。。。
我想弱弱的问一下,练太极在实战防身中到底有用没?就没见过有人用太极来打架的。。。要是武松用太极来打老虎,那种速度,大约够老虎吃掉N个武松了吧。。。。。。。外行人好奇而已。。。

补充一个问题。。。练太极是不是都不用武器?那样一来,打架岂不是吃很大亏。。。反正就是没见过有人拿砍刀练太极。。。。


查阅了一点点资料,然后发现自己的愚钝,我悔过,以上言论,我收回,太极是门功夫,不容外行人这么肤浅的议论。我错了,我悔过。

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

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-12 13:11 | 显示全部楼层
原帖由 moon2778 于 2009-5-12 13:08 发表
另外,我想弱弱的问一下,练太极在实战防身中到底有用没?就没见过有人用太极来打架的。。。要是武松用太极来打老虎,那种速度,大约够老虎吃掉N个武松了吧。。。。。。。外行人好奇而已。。。


你觉得张三丰比较厉害还是武松比较厉害。当然要看是否传承正宗的。还有一般看到的太极拳只是最最基本的套路(尽管还是90%的人练得是不得法的),就如练习拳击中的跳神和跑步,呵呵。

即使人家用太极的功夫,你也看不出,因为技击实用的太极你又没见过。看到的是套路,打架还按套路这样来呀,套路是长内劲的,不过单练套路顶多也成头牛,不会是虎,有专门练的。那个比数组公式要难得多。练什么得什么。太极高人可以墙上挂画,就是在墙上徒手吸在那里。当然是真正的高人。如杨式的创派人等。

[ 本帖最后由 胡剑0227 于 2009-5-12 13:14 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-5-12 13:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
墙上徒手吸在那里 哇,难道真有传说中的轻功?。。。汗一下。。。小时候看武侠看太多落下的病根。。。一提到轻功就激动。。。




请大家无视

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-12 13:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 zhanhewang 于 2009-5-11 22:47 发表
第一区域
=TEXT(MOD(SMALL(IF(ISNUMBER(FIND(COLUMN(A:J)-1,A2:A9)),(COLUMN(A:J)-1),10.5)+ROW(1:8)*100,COLUMN(A:J)+(ROW(1:8)-1)*10),100),"[10.5]0;;;")
第二区域
=TEXT(MOD(SMALL(IF(ISNUMBER(FIND(COLUMN(A ...


呵呵,TEXT函数显得精妙,虽然原理一样,但第二参数的使用使得简洁,相比同功能的IF函数的臭又长确实整洁许多。
在竞赛时非常有用,当然TEXT处理简单的精妙很有显示功力强悍的一面,呵呵


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

本版积分规则

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

GMT+8, 2024-11-16 21:35 , Processed in 0.040217 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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