EH数组班课时3学习小结.pptx_第1页
EH数组班课时3学习小结.pptx_第2页
EH数组班课时3学习小结.pptx_第3页
EH数组班课时3学习小结.pptx_第4页
EH数组班课时3学习小结.pptx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

14504数组班课时2学习小结,kimez12,第一节 概要,本节课主要是对第一节课内容的延伸和拓展。 一、概念解析3 1、多流水线作业 2、数组运算的自适应法则 二、运行机制3 1、再识数组运算 2、条件函数的运行机制、特性点拨,这是数组并联、串联的基础。 3、双驱十字剑,这是数组并联打下基础。 4、自适应法则 三、揉捏数组 1、数组并联 2、数组串联 四、贴近实战 1、row函数的变形; 2、连续满足问题; 3、一而二,二而一的循环; 4、魔术因子。 五、自己收获的知识点巩固 单元格参与运算 数组的时间片段切割 参数的维度 countif的 数组参数的类型 和函数返回的结果 结合,才能正确嵌套函数。 友好内存数组 数学家的思想(经验,还是考虑它的优点,缺点知道了就更应该避免) 拆篱笆,第二节 详细内容,一、概念解析3 1、多流水线作业: 还是化繁为简,化大为小。 在同一条流水线上处理会很复杂,数据特性可以分成几类(随着水平提高,分的类别越来越少,甚至直接出来)。那么就根据数据的不同特性分成多条流水线,不同特性的数据执行不同的流水线(这样每条流水线就简单了)。各自的每条流水线处理具有相同特性的数据。最后再综合。多流水线还便于后期的维护变化。 分成多条流水线,经常使用if和choose函数把多条流水线再综合在一起。if分成2部分(不是2个单元格),choose是多条件。 解题就是找规律,然后把思想翻译成公式。思想上没找到该如何解决问题,当然谈不上使用公式了。(而且不可能一步到位,分步走。还有要不断实验改进,由差别很大慢慢减小,最后完成目标) 2、数组运算的自适应法则 只是效果的等价,而不是运算机制。(因为按照这种理解,缺少了对数组运算循环的特性认识) 自适应法则是把数组运算还原成最原始的点对点运算。在思维的角度,减轻思维压力。 对于自适应法则解释数组运算,印象最深的是卷轴,行数组可以自由作用拉伸,列数组上下拉伸。 还可以用复制粘贴的功能理解自适应法则。复制一行,粘贴多行(列的方向扩展);复制一列,粘贴在多列(行的方向扩展)。 把粘贴也当作运算的一种。 二维数组:以左上角第一个单元格为标准,相重叠的部分是有效的,不重叠的部分返回#N/A,缺失数据无效。 对于自适应法则,建议熟练数组运算了能把它抛开,尤其是交叉十字剑,行的每个元素与每列的值运算 依次循环。而不是自适应成二维数组。这样会误导数组运算。,二、运行机制3 1、再识数组运算 数组运算的强大不只是批量处理数据,批量返回数据再充当辅助列再继续运算。而且数组运算有着循环的特性。 数组公式的强大 在于时域上完成一个循环 遍历式循环。 对于一般程序而言,判断(条件)+循环的重要性不言而喻。就是查找函数,还是可以归结为条件+循环啊! 通过条件函数数组化,能够提升我们的数组功力。 2、条件函数的运算机制、特性点拨 IF函数的第一参数为数组时,第一参数的值(TRUE和FLASE)决定了返回值的取值范围,且返回值与第一参数的数组一一对应。 当IF函数第一参数的某些逻辑返回值确定且不变时(固定为TRUE或FALSE),决定了其返回值的取值范围是固定的;我们就可以减少“相反逻辑”返回值的取值范围,而不会造成数据缺失的错误。 对于条件函数,第一参数占主动地位,是驱动参数。根据test查找true,false值,而不是test与true值、false值直接进行普通的数组运算。所以不受普通数组运算的限制,产生#N/A错误。 可以利用单极无极态和if函数的这个特点,强制显示大颗粒数组 =if(1,大颗粒数组),但只是显示,通过N函数才转换成友好内存数组(这只是针对单个值的不同维的数组,提取区域第一个值就是提取全部啊,比如N(IF(1,ROW($1:$3)可以转换,但N(if(1,大颗粒区域数组)就不可能转换了。 choose函数相同道理。 lookup也可以缺少元素,如=IF(ROW(1:5)3,LOOKUP(ROW(1:5)-3,ROW(1:5),4;5),1;2;3)。,3、双驱十字剑 当条件函数,test方向与ture值 false值都是交叉的,则形成2维数组。且true false值是自适应的。如不能自适应则其大小必须与test一致,或者不会取到它的值。 理解点:if函数的驱动参数是test值,test是列数组就应该返回水平数组,如果true false值为垂直数组,那就交叉,且要随test的列数自适应成多少列,不能自适应就要有那么多列数才能参与运算,否则返回#N/A错误。 第一参数是行数组,其他参数为列数组时,返回二维数组。行数组的一个元素和列数组的每一个元素循环运算,则返回的是一列值。行数组的下一个元素再与列数组的每一个元素循环,又返回一列值。 4、自适应法则 曲线理解双驱十字剑。 条件函数的双驱十字剑用自适应法则容易理解些。,三、揉捏数组 1、数组串联 数组串联相对并联难度感觉小一些。 数组串联是相同方向,不存在十字交叉,返回二维的情况。 数组串联的关键在于拉伸排在后面的数组。 数组串联的 步骤1:先使用lookup函数拉伸后面的数组2,公式如下 =LOOKUP(row(1:N)-M,ROW(1:N),数组2),这样形成N个元素的数组,其中前M个为#N/A。从而实现了数组的拉伸。 步骤2: 使用if函数的特性,把数组串联起来。 =IF(ROW(1:N)0,3,3+4,3+4+5,3+4+5+6),ROW(1:5)0),2、数组并联 数组并联是条件函数的第一参数与后面存在十字交叉,返回二的是二维结果数组。 数组并联的关键在于组成的二维结果数组的右侧分数组其维度必须大于等于 二维结果数组(能自适应的最好,不能自适应其维度至少要等于二维结果数组)。这是最重要的,也是构建数组并联的难点。记着数组并联的返回结果是二维数组就容易理解了。 数组并联用自适应法则容易理解些,全部数组自适应成结果数组,然后点对点运算。 并联因子的方向和 true值、false值交叉!,数组并联公式如下:if(1,0,true值,false值)。由于上述数组并联的特性,对于不能自适应或维度小的二维数组,可以用IF函数(4+3)化成(4+1)+1)+1),(4+3)直接并联不成立。 对于可以自适应的数组并联,choose函数时千手观音,if函数只是三头六臂。 N+1的并联很容易。困难的是1+N的并联,后面是N列由于不能自适应,必须通过index或mmult函数转换成1+N列,然后才能并联。 仔细想想,数组并联和串联相似,都在于把数组延伸,并联是数组交叉方向的延伸,串联是相同方向的延伸,然后利用条件函数的特性(只要是不取到的值就可以缺失)合并在一起。,四、贴近实战 1、row函数变形 通过三课的学习已经深刻认识到在构造数组、数组变形时row函数的骨架作用。本节课又学到的数组的串并联知识、多流水线作业的指导思想,我们在对row函数的变形能力将更强大灵活。 例外注意在面对数组变形时,注意观察数组的组成规律。 在这里注意if函数的使用,if函数是二分法,是分步走,不是二个单元格。 2、连续满足问题 Row函数的标记作用,建立逻辑筛子,然后用这个筛子去处理目标数据。其中使用frequency函数把逻辑筛子作为第二参数。 由于frequency函数的向下兼容的特性,所以需要减去修正因子。 3、一而二、二而一 一而二,即双驱十字剑运算的过程,通过双驱十字剑完成2个循环,不只是由一维升成二维,同时信息量也升级了。 二而一,使用mmult函数,对升级的信息量进行统计(一般情况是行的求和运算),同时由二维降成一维。这也完成了一而二、二而一的循环,并且又可以对降成的一维数据进行此循环。如此循环往复。 4、魔术因子 魔术因子主要利用mmult函数的运算特性,解决3+4列数组如何并联。 关键点仍是二维数组如何拉伸,4列数组变成7列数组。,mmult函数的数组1为6行4列,结果为6行7列,则需构造的数组2为4行7列,其值完成对数组1的列汇总,其构造如下: 剩下的即是用row函数构造这个数组了。对于mmult函数二维数组与二维数组的运算,继续体会mmult函数的运算要点: 、结果数组的行由数组1决定(数组1的元素所在行号,运算后其行号不会变);结果数组的列号由数组2决定(数组2的元素所在列号,运算后其列号也不变)。如结果是行1列4 ,则是数组1的第1行的每个数据与数组2的第4列对应的数据运算的和。 、数组1的每一行的每个列元素与数组2每列对应位置的元素运算,所谓对应即数组1的列号与数组2的行号一致。,五、自己收获的知识点巩固 1、单元格参与运算 当选择输入公式的单元格不同时,少数情况下会影响返回的结果。数组运算不仅是数值运算时的空间对应,还有时间切片(数组运算涉及到得时间概念),又是空间对应(函数返回的结果也是有空间对应的),这是部分返回值因公式选择单元格形状不同而不同的原因。引用函数都有时通过空间位置表达时间的不同。 这个知识点先记到起,慢慢加深理解。 2、数组的时间片段切割 数组运算在时域上完成的是遍历的循环,返回的结果就存在时间的切割。在使用引用函数index、indirect、offset时,时间的切割就表现出空间的切割。引用函数的参数数组化时,对应的返回值作为一个独立的整体,如果一个参数对应的是多个引用元素,就形成了大颗粒数组(归其原因可以认为是驱动参数决定结果,比如参数只有1,但用于引用参数就可能表示的一行、一列,offset函数甚至表示多行多列,一个支点不能撬动多个地球,所以形成了大颗粒数组)。 3、参数的维度 函数参数有2个维度: 维度一:text、number、value、criteria等。 维度二:range、reference、array等。通过数组运算时间片段的认识,见到countif的range参数的强大。认识都是一步步加深的。 4、友好内存数组 通过参数维度的认识,对友好和不友好的数组认识进一步加深。 5、数学家的思想 (经验,还是考虑它的优点,缺点知道了就更应该避免) 6、 拆篱笆 学习的过程,就是一个不断建篱笆拆篱笆的过程。周而复始,循环往复,即所谓的 一而 二二而一而已。,2.3 函数返回的结果的特点 有些函数能够处理错误值,但大部分不能处理。有些函数即使参数数组的部分是错误值也能继续运算,但大部分不能。这时注意函数对各个参数的要求,如不能是空格,mmult函数的数组1和数组2的列行不对应、参数必须是数值,同向一维数组运算时个数不一致出现#N/A!错误等。 2.4注意函数多维的产生 当使用查询引用等函数时,注意行参数列参数数组化,此时会产生多维引用。不是多维引用都是不友好数组,注意offset函数, =SUBTOTAL(103,OFFSET(A1,ROW(1:10),)。原来认为它是产生多维引用,不是友好内存数组。不但能产生内存数组,而且还能接受内存数组参数,并向外传递( lrlxxqxa) 。先记到起,慢慢研究,有点晕了。 Offset产生的是多维引用,为什么按F9出得来值呢? 和index的区别在于,offset函数不是提取,函数 OFFSET 实际上并不移动任何单元格或更改选定区域,它只是返回一个引用。offset函数返回的数组才是标准的最兼容的内存数组,是最直观的内存数组。 3、高效原理 多单元格数组公式之所以高效的原因。 多应用多单元格数组公式。(注意:把例子small函数换成index函数,高效公式也不高效了,关键看核心计算执行的次数),二、运行机制2 自变量传递给返回值的不只是数“值”,还有位置。 数组运算的一一对应不仅体现在数值上,同样体现在空间结构上。数组主要包括两部分,一个是元素的值,一个是对应的坐标。 记住以行星为驱动参数,返回的结果肯定是行星。 注意指数参数化10row(1:6),indirect函数的数组化这些略特殊的数组形式。 INDIRECT(“B1:B”&5,4,3,2,1), INDIRECT(“B1:B“&(ROW(1:5),三、驱动参数2 1、坐标的舞蹈 如第二节运行机制。自变量传递给返回值的不只是数“值”,还有位置。 2、挣脱惯性思维 注意理解index(区域,1,2,1;2)和index(区域,1;2,1,2)的区别,不仅包含位置的一一对应,还有下面的十字交叉驱动思想。 随着学习的进行,在解题过程中,还有着对数组的升维降维,如讲到的信息量的调剂(排名计算)。起始是一维数组,结果是一维数组,过程也许要生成二维,然后再降成一维,而不会简单的一维一维一维这样从对象直接到结果了,摆脱简单的惯性思维。 3、我形我变 这是单驱动 的关系,比较简单易懂,由结果容易反推过程。双驱动或其他特殊函数驱动。由结果就不好倒推过程了。,4、双驱十字剑(重点) 2个不同方向参数的交叉驱动,就形成二维了。 双驱是指2个驱动参数,十字即交叉的意思,表示函数返回的结果是由行列2个数组的每个元素的交叉点组成的。 按行分析:各行的每个元素与全部列元素运算。 按列分析:各列的每个元素与全部行元素运算。 按单元素分析:函数返回值的数组元素,所取参数正好是对应的行/列的参数元素,由函数返回值向上方延伸,返回对应的列参数元素,向左方延伸,返回对应的行参数元素。函数结果由行列交叉形成。 由单驱变成双驱,在思想上难度绝不是只加了一倍。是一次思维的升级换代。运用函数时由原来的构造一个驱动参数变成构造2个驱动参数,这不是1+1,而是千变万化。 四、贴近实战2: 1、row()函数的变形 通过对row()函数的变形, 把它作为驱动参数,对于构造数组,数组变形及提取有重要作用。 注意 行每个元素的差别, 列每个元素的差别,从而找到数组组合的规律,再通过row()函数变形完成。 基本变形包括:大数值-row() ,一维row()函数+transpose(row()等。 当然除了row()函数之外,small/large函数把长数组变形成短数组(也可以直接把二维变成一维数组),mmlut函数的运算特性降维等,都是在构造数组、数组变形和提取时经常用到的。,2、筛选公式 通过筛选算子,用row函数 标记 数组中各个元素的位置,然后small、large 函数,即完成筛选。 一般使用if(筛选算子,value_if_true,value_if_false)完成,这样功能强些,也易读。 核心在逻辑判断处。 当然ture 值和false 值有时也要根据情况适当设置成 空文本,极大值,0等。 简单的可以通过 筛选算子*row()这样书写公式。 3、信息量调制 把 我们需要的信息量 转换为数值 ,有时还要通过升维(相同成绩不同名次排序),完成任务。 现在认识的需要调制的信息量主要是行号、列标,有时添加上去还要再减下来。一般添加信息就是+信息值,减则可以通过right或-,使用 - 要注意+之后 和- 之前维是否一致,不然减错了。 还有mod函数可以轻松去掉添加的信息量。Int函数等。 4、INDEX函数特性应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论