ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-5-16 09:33 | 显示全部楼层
本帖已被收录到知识树中,索引项:数组公式
原帖由 胡剑0227 于 2009-5-15 22:05 发表
今天困,大家有空想想如何把多个离散的一维列数组 组合成一个 变长 了的 一维列数组。这样按列数组和串接就都实现了。

220楼的作业尽量用IF来做,不是完成这个具体目的,主要体会按维度扩展的思想,如果确实通了, ...

两列数组,组为一列。现学现用,做一个。
用if({1;1;1;1;1;0;0;0;0;0},列1,列2(改))做。关键在如何将列2进行改造,在其上方增加5行数。这5行数是什么不重要,因为在引用过程中不需要使用它,开始想在选取列2时多选上方的1列单元格,结果正确。
但考虑到更一般的情况,使用lookup构造了一个数组,lookup(row(1:10),row(1:5)+5,列2)代入公式,结果正确。
不知说得可清楚,见附件。

呵呵,不错,不错。不过可以用“ROW($1:$10)<6”来替代{1;1;1;1;1;0;0;0;0;0}
否则一维数组长度一长...可想而知,呵呵

[ 本帖最后由 胡剑0227 于 2009-5-17 19:46 编辑 ]

Book1.rar

2.63 KB, 下载次数: 265

TA的精华主题

TA的得分主题

发表于 2009-5-16 09:52 | 显示全部楼层
呵,兄弟,我现在也是对数组公式的应用着迷了,但就是不会啊,我把你关于数组公式的所有推荐资料都下载了,正在蜗牛(嘿,比喻很难领悟)似的学习领会呢!
哦,对了,请问你有没有在公式中使用“变量”,及自定义变量的学习资料,有的话希望你也能总结和上传一下,呵,我现在是求知若渴啊。另外也非常感谢你这种总结分享的帮助大家的学习方式

TA的精华主题

TA的得分主题

发表于 2009-5-16 11:44 | 显示全部楼层
知道了,if要满足口袋原理的。好复杂的一个函数。

另外严重顶一下247楼小猪,非常认真,非常佩服,这个楼里真是充满了惊喜。真是一个优秀的班级。

汗一下,不懂的地方越来越多了,回头看175楼麻花型,=INDEX($C$17:$F$19,{1,2,3,1;2,3,1,2;3,1,2,3},{1,2,3,4})为什么这个公式能查找到不在$C$17:$F$19区域里的东西,目前不能明白。

诶。。。我理解错误,这个已解决。谢谢zhanhewang。

[ 本帖最后由 胡剑0227 于 2009-5-17 20:02 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-5-16 15:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
217楼作业时,发现一个问题,百思不得其解。
为什么作业里面的黄色区域不能用right(,1),一用就出错。

该问题已解决。。。当我没说。。。请无视。。。

[ 本帖最后由 moon2778 于 2009-5-18 00:16 编辑 ]

217楼作业,为什么黄色区域不能right(moon2778).rar

9.7 KB, 下载次数: 124

TA的精华主题

TA的得分主题

发表于 2009-5-16 15:45 | 显示全部楼层
原帖由 moon2778 于 2009-5-16 11:44 发表
知道了,if要满足口袋原理的。好复杂的一个函数。

另外严重顶一下247楼小猪,非常认真,非常佩服,这个楼里真是充满了惊喜。真是一个优秀的班级。

汗一下,不懂的地方越来越多了,回头看175楼麻花型,似乎楼主 ...

其实楼主在第4列得到的值,并不是引用区域$C$17:$F$19外的值,而是$F$17:$F19的值。与楼主在原数据区域标志的颜色不一致。如引用标志颜色的区域,公式可改为
=INDEX($C$17:$F$22,TRANSPOSE(ROW($1:$4))+ROW(1:3)-1,TRANSPOSE(ROW($1:$4)))

TA的精华主题

TA的得分主题

发表于 2009-5-16 15:48 | 显示全部楼层
原帖由 moon2778 于 2009-5-16 15:44 发表
217楼作业时,发现一个问题,百思不得其解。
为什么作业里面的黄色区域不能用right(,1),一用就出错。

初步看,可能是你的函数嵌套超过了规定的最大值。

TA的精华主题

TA的得分主题

发表于 2009-5-16 15:49 | 显示全部楼层

220楼合并作业

根据楼主的教导,用 if 来做,结果做的昏天黑地的,为避免和前面的思路重复,我尝试从if({1,1,1,1,1,0,0,0,0,0},X,Y)的第一层X和Y来扩展,做到头晕,终于做出来了。

感觉if真是个千变万化的函数,我只用第一层X和Y两个方向来弄,就已经头晕,要是第二层、第三层都从两个方向来扩展,真是要晕倒了。

呵呵,不错,不错。

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

合并数组(moon2778).rar

6.6 KB, 下载次数: 267

TA的精华主题

TA的得分主题

发表于 2009-5-16 15:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 zhanhewang 于 2009-5-16 15:48 发表

初步看,可能是你的函数嵌套超过了规定的最大值。


对,非常有可能,忘记了嵌套7层。

TA的精华主题

TA的得分主题

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

其实楼主在第4列得到的值,并不是引用区域$C$17:$F$19外的值,而是$F$17:$F19的值。与楼主在原数据区域标志的颜色不一致。如引用标志颜色的区域,公式可改为
=INDEX($C$17:$F$22,TRANSPOSE(ROW($1:$4))+ROW(1:3)- ...


谢谢zhanhewang,非常感谢。
唉,真是的,我想半天,结果你一言点醒梦中人,一说就明白了,他并不是返回引用区域以外的值,只是他的数据区颜色把我迷惑了。唉,郁闷。

呵呵,原本用来展示应用效果的,没想到还有迷惑功能,呵呵

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

TA的精华主题

TA的得分主题

发表于 2009-5-16 16:52 | 显示全部楼层
她的第一个是真正的合并单元格的。第二个是用格式刷刷出来的。所以第二个合并你把它取消合并你就知道了

原来经常用格式刷,还没有发现有如此效果,今日得见……
看来不是每个人都能成为马克思的——从熟视无睹的东东中发现……

感觉是位潜水高手啊,呵呵

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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