ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-8-11 22:37 | 显示全部楼层
本帖已被收录到知识树中,索引项:数组公式
174楼 关于index函数的变形问题

麻花型的,比较参考附件的解法=INDEX($C$17:$F$19,TRANSPOSE(ROW($1:$4)+{0,1,2})-3*(TRANSPOSE(ROW($1:$4)+{0,1,2})>3),TRANSPOSE(ROW($1:$4))),偶有一个比较短一点的
  1. =INDEX(C17:F22,COLUMN(A:D)+ROW(1:3)-1,COLUMN(A:D))
复制代码
如果没有下半段C20到F20的单元格,构造数组
1        2        3        1
2        3        1        2
3        1        2        3
要花一番脑细胞,也可以用个if函数来搞定上面的数组=IF(COLUMN(A:D)+ROW(1:3)-1>3,COLUMN(A:D)+ROW(1:3)-4,COLUMN(A:D)+ROW(1:3)-1)

看了答案有学了一招,老是不记得这招,可以把判断的条件加进计算里面以简化公式
=COLUMN(A:D)+ROW(1:3)-1-3*(COLUMN(A:D)+ROW(1:3)-1>3)

[ 本帖最后由 ringdove 于 2011-8-11 22:50 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-8-12 11:30 | 显示全部楼层
原帖由 moon2778 于 2009-8-1 20:42 发表
=OFFSET(INDIRECT("b"&ROW(B3:B10)),,(COLUMN(A1:J1)-1)*2)

。。。。。。。。。。。。。想了一下,结果没看懂。。。。。。F9和公式求解结果不同,而且感觉offset为什么第一参数不是区域也可以。。。。。syz105729 ...


这样就可以了。。。。
=IF(1,OFFSET(B3:B10,,(COLUMN(A1:J1)-1)*2,8))

俺也不懂,胡版之前提过这个用法。。说是落地什么什么的。。。

TA的精华主题

TA的得分主题

发表于 2011-8-12 22:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-8-14 20:22 | 显示全部楼层
去年看了这个帖子起了兴趣,可惜没时间学习完

TA的精华主题

TA的得分主题

发表于 2011-8-14 23:07 | 显示全部楼层
本帖最后由 bodyuk 于 2011-8-14 23:07 编辑

回归论坛,重新拾起数组公式,坚持天天都来遛遛

TA的精华主题

TA的得分主题

发表于 2011-8-15 09:43 | 显示全部楼层

关于217楼合并数组的问题

本帖最后由 ringdove 于 2011-8-16 15:39 编辑
胡剑0227 发表于 2009-5-15 06:46
如果大家觉得217楼的问题难,那么可以尝试解决下面这个问题,难度自定,尝试使用IF函数把尽可能多的离散的列 ...

就当我没说,明白了,原来在03版下面所有函数只能嵌套7层,做到第九个的时候正好嵌套到第七层,所以再嵌套下去就不行了

===================================================================================

谁能帮忙看一下我碰到的这个问题。

我用if一个个合并数组,合并到第九个(绿色高亮部分)的时候是没问题的,但是直接把第九个数组的公式带到黄色区域就说公式错误,如果我把绿色区域的公式用名称封装起来,代到黄色区域是没问题的。
  1. =IF({1,1,1,1,1,1,1,1,1,0},IF({1,1,1,1,1,1,1,1,0},IF({1,1,1,1,1,1,1,0},IF({1,1,1,1,1,1,0},IF({1,1,1,1,1,0},IF({1,1,1,1,0},IF({1,1,1,0},IF({1,1,0},IF({1,0},B3:B10,D3:D10),F3:F10),H3:H10),J3:J10),L3:L10),N3:N10),P3:P10),R3:R10),T3:T10)
复制代码
能帮忙看一下这个公式哪里有问题

合并数组.rar

7.93 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2011-8-15 13:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-9-22 09:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-10-12 10:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
胡剑0227 发表于 2009-5-8 09:59
如果是初学数组,请细细品味下图,最好能说出点什么,想到了就说吧,看看是否和大家的感觉一样。

[ 本帖最 ...

=countif($a$1:$a$8,d2)这个公式可以看到是从A1:A8这个固定区域里面统计,与D2值相符合的值的个数

=countif($a$1:$a$8,d3:D6)这个公式可以看到是从A1:A8这个固定区域里面统计,与D3值相符的坐标值个数
数组公式我都是简单看的时候看明白,一到深究的时候反而迷糊了。其实从我的思路中理解,这个公式应该是统计A1:A8固定区域中符合D3:D6中的值一共有多少个。但是得出来的结果只有符合D3这个值的个数,再看看胡版之前一个帖子,看得出问题应该出现在坐标上。这时候我想问的是,这个坐标是指对应在究竟用什么来衡定?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-12 13:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 胡剑0227 于 2011-10-12 13:32 编辑
smlee 发表于 2011-10-12 10:27
=countif($a$1:$a$8,d2)这个公式可以看到是从A1:A8这个固定区域里面统计,与D2值相符合的值的个数

=co ...


呵呵,你能这么思考过不了多久就会豁然开朗的,我尝试做一下那个‘拨码开关“,呵呵。

对于第二个公式,你选中垂直方向的三个单元格,然后以数组公式的方式(CTRL+SHIFT+ENTER)录入看看效果。

这个时候你会似乎突然明白了,那么我再给你下面的话:数组公式,是一个遍历式循环,这里遍历的是第二个参数,就是关键字的参数。
虽然两个都是区域,但是公式参数的类型是不同的,第一个参数类型是区域,现在也是区域,所以正好当做一个参数,第二个参数类型是文本值,你现在给他一个区域,于是这个区域被拆分成一个垂直的数组,元素是文本值,然后一个一个元素进行运算,最后也一个一个返回函数值...返回值的数组结构和参数的数组结构师一致的,于是在数组课中我称为 参数驱动....
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-10-6 06:03 , Processed in 0.042707 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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