|
楼主 |
发表于 2010-5-21 16:55
|
显示全部楼层
lookup新思路及双驱十字剑的初步应用
一、相知教程大纲
二、三条思路
三、两点体会
四、一点疑问(猜想)
五、双驱十字剑的应用=================================================================
回顾大纲框架:一、概念解析:策略分享概念解析1、流水线作业(战略高度,把疑难化为无形)
2、内存数组(进一步分类,满足交流和沟通需要)
Index和vlookup函数不接受内存数组,返回错误值:#REF和#VALUE
3、驱动参数(驱动参数的生命周期,发挥作用,更深刻的认识)
4、高效原理(解释多单元格数组公式高效的原因)
单返回值和多返回值;f(core,s)和f(core,array)
二、运行机制:运行机制解析(理解返回值生成的原理)
1、坐标的舞蹈
2、惯性思维
3、我形我变
4、参数双驱
三、参数驱动:参数驱动应用(要生成返回值,如何构造参数)
1、坐标的舞蹈
2、惯性思维
3、我形我变
4、双驱十字剑
四、贴近实战:实战招数演练1、Row函数(变形)
2、筛选公式
3、信息量调制
4、Index特性
=====================================================
给我留下深刻印象的有3条思路2点体会1点疑问,这里总结一下:
三条思路:其一:双驱十字剑:
这个不光是名字起的帅气,功效也是非常有用的。就拿常用的index来说,利用行参数和列参数的配合就能构建出区域呈现的二位内存数组,这点在以前从来没有运用过,这道经脉一打通,大有豁然开朗的感觉;
其二:珍贵的思路的衔接贯通:
就拿习题六里面的几个小题来说吧,用index、small、if再结合其他函数如len、find、countif等配合来达到最后结果的实现,其实大同小异,主体思路都是贯通的。
大体说来,就像本山和丹丹的把大象装进冰箱的小品一样要分三步走:
1、找到需要的行号;
2、用small或者large来提取行号;
3、用index把第二步提取的行号呈现出来
而这其中的关键就在于第一步,我们要根据每个具体问题来利用if、row配合其他函数找到需要的行号,也就是胡版说的“筛选算子”,这是各种问题相异之处,也是最见功力之处。
其三:根据不同函数的能力选择不同的方法构建内存数组
Index、vlookup、hlookup、lookup(可能还有更多)都能构建内存数组,但是方法各异;在遇到不同限制的时候,呈现的结果也大不相同。比如hlookup一个数组元素出错全部出错,lookup第一个数组元素出错不影响后面的数组呈现。
两点体会:
1、对于一些函数的具体参数的限制,我还是不了解。比如通过做题发现,countif的第一参数是不支持内存数组的,一旦调用就会出错,具体原因未知。以此推之,其他貌似很熟悉的函数也有我很陌生的地方,真是最熟悉的陌生人啊,想太多了回归正题。这些问题一是要靠积累,二是要靠观察和尝试,今后学习过程中要注意发现和积累。
2、一些较为复杂的问题,定义名称会方便公式编写,而且结构明晰。在此基础上如果添加辅助列,会使问题更加简化和有条理;但随之问题来了,如何把利用名称和辅助列解决了的问题,回归组装到一个公式里,就需要点技巧了。在群聊中看到龙猫说有人就喜欢抠难题,我也承认生活中确实有不少这样的发烧友,但于我而言,用性价比高的方法快捷简便的解决具体问题,是最为重要的。
一点疑问:
关于工作表的三维、四维呈现问题。个人理解如下:
首先多维有2种:物理多维和虚拟多维,分别标准就是看具体的多维空间能不能落地。
比如对多个工作表的区域引用就可构建物理的三维空间;如果是同一个工作表的一个区域,在不同时域单维度扩展产生的多个空间区域就是虚拟的三维空间,如果是同时向行、列2个维度同时扩展产生的多个空间就是虚拟的四维空间。这些空间之所以我成为“虚拟”,是因为它只存在于我的想象中(也可通过内存数组F9刷出来),无法落地在工作表上呈现出来。
比较典型的就是offset函数,这个话题出自今天班级群聊,跟数组有点偏题了,就此打住。不过我的理解一直没有被高手印证过,最初启蒙我多维的龙猫也是未知可否,暂且搁置吧。
具体参数双驱的应用,感觉还需要进一步的实战才能完全消化,目前仅能初步应用,自我鼓励一下。
[ 本帖最后由 爱睡猪 于 2010-5-21 17:19 编辑 ] |
|