ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-6-3 21:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:数组公式
本帖最后由 hsw212 于 2014-6-3 21:50 编辑
胡剑0227 发表于 2009-5-10 09:33
26楼的补充作业,难度没有增加,思路稍微有点增添。
开始没有去除公式,不好意思,呵呵


相见恨晚啊。。。刻苦学习中。。。
胡老师,这个题我用if+offset写了一下,可以按要求得到答案。
倒叙:=IF(ROW(1:12),OFFSET(A1,12-ROW(1:12),))
间隔取数:=IF(ROW(1:6),OFFSET(A1,2*ROW(1:6)-2,))
奇偶并列:=IF(ROW(1:6)+TRANSPOSE(ROW(1:2)),OFFSET(A1,2*ROW(1:6)-{1,0}-1,))

问题是,我如果提前选定好区域的话,三键同按可以得到正确答案,但我单独拉黑公式(F9)的话却不对,如图。
请老师说明一下。
PS,虽然这么多年了,但我相信胡老师还在关注此贴的。


我看的不够仔细,有位老师在53楼已经提出这个问题了。不过目前我还没有发现答案,我继续看,呵呵。


未命名.JPG




TA的精华主题

TA的得分主题

 楼主| 发表于 2014-6-4 14:30 | 显示全部楼层
hsw212 发表于 2014-6-3 21:40
相见恨晚啊。。。刻苦学习中。。。
胡老师,这个题我用if+offset写了一下,可以按要求得到答案。
倒叙 ...

OFFSET返回的是一个一个的区域,用在此处是要转换成数值的,一个区域就相当于一个数组了,于是结果应该是数组为元素的数组了, 显然EXCEL无法消受,因此在时间上的同一节拍(对应F9)无法完整的兑现。落在多个单元格中时公式得到的资源多了,你就这样理解吧,于是能返回期望的结果。

比如=if(row(1:10),rand())这个用F9计算会发现得到的是相同元素构成的数组,落在多个单元格中时是一组随机数,这也是因为时间上的资源不同...

OFFSET返回一组区域,只有落在参数类型也是区域的时候能完美消受,比如用在SUMIF的range类型的参数位置

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-6-5 21:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-6-9 15:47 | 显示全部楼层
piggy_19840215 发表于 2009-5-12 08:18
回复143楼作业

第二参数“COLUMN(A:G)”即可!

TA的精华主题

TA的得分主题

发表于 2014-6-9 21:33 | 显示全部楼层
胡剑0227 发表于 2009-5-12 10:39
不过INDEX确实比较灵活,可以看看下图,用来练习数组变形,这个是核心问题,虽然他不能生成内存数组,但可以 ...

这个“麻花型”二、三参数的构造太棒了,只是不得要领:思路怎样建立???

TA的精华主题

TA的得分主题

发表于 2014-6-9 21:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
胡剑0227 发表于 2009-5-12 10:39
不过INDEX确实比较灵活,可以看看下图,用来练习数组变形,这个是核心问题,虽然他不能生成内存数组,但可以 ...

“麻花型”参数数组构建的思路是什么啊??太棒了!!!

TA的精华主题

TA的得分主题

发表于 2014-6-10 14:21 | 显示全部楼层
赞赞……           跟斑竹学习

TA的精华主题

TA的得分主题

发表于 2014-6-10 23:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-6-18 06:42 | 显示全部楼层
原来我也会的:

=MOD(SMALL($A$2:$G$9+ROW(1:8)*1000,ROW(1:8)*7-7+COLUMN(A:G)),1000)

点评

赞一个,呵呵。  发表于 2015-1-21 17:25

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-6-19 12:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
e表格学习 发表于 2014-6-9 21:33
这个“麻花型”二、三参数的构造太棒了,只是不得要领:思路怎样建立???

参数驱动,参数的排布决定返回值的排布,这里主要由于INDEX的第2、3参数也是行、列所以让大家困扰了。
=index({1;2;3;4;5;6;7;8},{1,2;3,4;5,6;7,8})从这个公式感受一下吧。可以得出返回的结果  仅仅 与第二参数 的数组结构有关。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 19:43 , Processed in 0.044230 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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