ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-5-5 11:54 | 显示全部楼层

很有道理

本帖已被收录到知识树中,索引项:数组公式
原帖由 gouweicao78 于 2010-5-5 11:11 发表
不曾想因二分法让你怕了LOOKUP。
实际上,升序查找虽然是“二分法”原理,但不需动用二分法,仅帮助文件也可以说的明白;乱序查找也是“二分法”原理,但是只能用来解释为什么得到某个结果而已;而——乱序查找,目 ... 因而:学习东西不应片面听到“二分法”就迷恋Lookup,更不能因为片面不懂“二分法”而摒弃Lookup。

就像不因善小而不为一样,只要有一点用处的函数,我都会学习,现在对于这个lookup就不那么陌生了。至于“二分法”以及其他概念,不懂只是暂时的。谢谢草版的指点

TA的精华主题

TA的得分主题

发表于 2010-5-5 12:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
对胡兄说声抱歉,呵呵。
我并无意于“指责”胡兄的用意,而是刚好看到帖子顶起来了,发现了问题,就“指出”而已。技术帖,特别是探索形式的帖子,都难免存在错误。正如胡兄所言,也是在过程中进步。为了和大家分享,更应该修订和完善,让其成为具有持久价值和意义的东西。

记得曾经有个VLOOKUP详解的帖子,里面有不少错误,但是如果没有对错误的纠正,可能读者读起来反而平淡,读者亲身遇到问题了,并且得到修正了,这样的印象会更加深刻。——这与胡兄的出发点并不违背。

所以,是想建议在顶楼或在部分楼层加强说明,避免出现因“小”误导而失去这一篇精华之美的“大”。

[ 本帖最后由 gouweicao78 于 2010-5-5 12:14 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-5 12:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
恩,呵呵,是呀,我确实刚刚有点误会的,哈哈。
在帖子中我尝试过修补,不过 能 产生内存数组,也不是说一定能。此外,我觉得就是 我开始的时候把那些直接可以传递着用的(并且是一次成型的)当成内存数组了,而不是一次成型的并没有说成内存数组,这就是 黄版 的理解。但现在觉得即使不是一次成型也应该算内存数组,只是没有直接一次成型而已,为了区别 想给那种一次成型的 加一个 修饰成分...于是 友好的内存数组 提法在我脑中成型了,不是友好的,那就是其他的,反正就是为了区别,好指代而已。当然自己也是犹豫的,是否妥当....

[ 本帖最后由 胡剑0227 于 2010-5-5 12:21 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-5-5 12:56 | 显示全部楼层
原帖由 胡剑0227 于 2009-5-15 22:01 发表


记得第一次发表这个技巧的人得了3个技术分呢,呵呵。

这个技巧很好的解决了合并单元和编写公式之间的矛盾。一般的合并单元格指保留左上角单元格的内容,其他单元格的值都变成空白了,导致拖拉公式时出现问题。 ...

下载了附件,看了半天也没发现什么端倪,留作疑问再作研究。

TA的精华主题

TA的得分主题

发表于 2010-5-5 12:59 | 显示全部楼层
从这次回复看,也就是说——我们谈的仍然不是一个概念。

概念上:数组是数组,公式是公式,此处已经分A、B两种了:{1,2,3}可以称为数组,={1,2,3}可以称为公式。

A-1常量数组:{1,2,3}
A-2区域数组:比如数组公式=SUMIF(A1:A10,A1:A10,B1:B10)——这里面,第2参数不仅仅作为“引用”,也作为一个区域数组。
A-3内存数组:可以说上面这个公式得到的是一个内存数组,因而可以将{=SUMIF(A1:A10,A1:A10,B1:B10)}看成一个可以生成内存数组的公式。


B-1 数组公式是公式的一个分支:
肯定还是有人对按Enter键结束的=SUMPRODUCT(A1:A3*B1:B3)——是数组公式还是普通公式心存疑问,但从讨论的大方向定义来看:按三键才是数组公式,不按三键,可以说这个公式过程中存在多项计算,如有异议,可以去那帖探讨。

B-1-1多单元格数组公式是数组公式的又一个分支:选择连续的多个单元格输入公式后按三键。

“ 能 ”产生内存数组,也不是说“一定能”

要从字面上,算你说得过去。要从一般的理解角度看,容易误解成后者(或者我的理解能力不够)

但现在觉得即使不是一次成型也应该算内存数组,只是没有直接一次成型而已

那么,在你的概念里,已经从本质上,把A-3内存数组变成了B-1-1-1了,也就是我们之间的交流,需要再经过一个第三方的翻译器。

内存数组可以作为一个整体模块代入下一步运算,如果难以理解,可以把它先看成是“计算机帮我们输入的常量数组”,说到常量数组就容易明白了,再返回来修改——并不是计算机帮我们输入的,而是我们的公式生成的,并不是常量,而是……

比如=MAX(SUMIF(A1:A10,A1:A10,B1:B10))——如果A列是人员、B列是销售额,就可以求得销售冠军的业绩。
这个时候,SUMIF生成内存数组作为一个整体模块代入MAX运算。

多单元格数组公式(是公式的一种输入方式),比如用=MAX(SUMIF(A1:A10,INDEX(A1:A10,ROW(1:10)),B1:B10))代替,这个时候SUMIF能再得到一个作为整体模块代入MAX运算的值吗?

本质上的区别,越是需要说清楚。
另,可能还有其他分支,非此处探讨问题,就略去了。

[ 本帖最后由 gouweicao78 于 2010-5-5 13:18 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-5-5 13:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
建议胡兄认真研习透彻,等有了一定的研究成果,再作为自己的见解发表,那时我们的讨论会更有意义些。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-5 13:17 | 显示全部楼层
,嗨...
看来我做得不错了,谢谢黄版的肯定,

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-5 13:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
嗨,那个问题,很好理解。问两个问题:

第一:100米,人能跑进10秒吗?

第二个问题:你能吗?

TA的精华主题

TA的得分主题

发表于 2010-5-5 15:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-5-5 23:32 | 显示全部楼层
好久不来好多东西都生疏了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-10-5 12:26 , Processed in 0.048039 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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