数组函数讲座.doc_第1页
数组函数讲座.doc_第2页
数组函数讲座.doc_第3页
数组函数讲座.doc_第4页
全文预览已结束

下载本文档

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

文档简介

数组公式讲座(一):数组公式入门数组公式是我自学的,下面写的东西可能和外面的相关参考书有出入,但结果和思路是正确的。如有错误,请大家指正。1、 数组公式的实现方法:在论坛中常可以看到许多在头尾带有“”的公式,有些朋友把这些公式直接复制粘贴到单元格中,但没有出现正确的结果, 这是为什么呢?其实这些都是数组公式,数组公式的输入方法是将公式输入后,不要直接按回车键(Enter),而是要同时按Ctrl+Shift+Enter,这时电脑自动会为你添加“”的。在论坛上,为了告诉大家这是数组公式,故在公式的头尾都加上了“”。如果不小心按回车了,可以用鼠标点一下编辑栏中的公式,再按Ctrl+Shift+Enter。2、数组公式的原理(自编):数组公式,说白了就是同时对一组或几组数同时处理,然后得到需要的答案。运用数组公式的最重要的原理是数于数之间一一对应下面举一列说明一下(例1): A1:A10有下列一排数: 32 14 34 25 36 21 33 12 12 16第一问:求大于20的数的和(此题亦可用SUMIF函数来处理,这里为的是讲清数组公式的原理)。答案为:181,公式为=SUM(IF(A1:A1120,A1:A11),EXCEL处理的原理:首先由IF函数进行判断,一一对应,如果大于20,则为本身,否则为FALSE。经过IF函数的处理,原来的A1:A10处理后变成: 32 FALSE 34 25 36 21 33 FALSE FALSE FALSE 然后用SUM函数进行求和,SUM函数忽略文本。第二问:求大于20的数的个数(此题亦可用COUNTIF函数来处理,这里为的是讲清数组公式的原理)。答案为:6,公式为=SUM(IF(A1:A1120,1),EXCEL处理的原理:首先由IF函数进行判断,如果大于20,则为1,否则为FALSE。经过IF函数的处理,原来的A1:A10处理后变成: 1 FALSE 1 1 1 1 1 FALSE FALSE FALSE 然后用SUM函数进行求和,亦可用COUNT函数进行计数。第三问:求大于20的数的个数减去小于等于20的数的个数的值。答案为:1,公式为=SUM(IF(A1:A1120,1,-1),EXCEL处理的原理:首先由IF函数进行判断,如果大于20,则为1,否则为-1。经过IF函数的处理,原来的A1:A10处理后变成:1-111111-1-1-1然后用SUM函数进行求和。数组公式入门讲座之二(上)10月23日给大家出了三道题,其实就题目的难度来说,如果既会用函数,又懂些数组公式使用的话,那么我想这些题目应该都能解决的。下面通过对这几道题目的分析,来讲讲数组公式的运用。第一题:求1到1000的和。1+2+3+4+.+997+998+999+1000=?这题,思路非常简单,就是如何生成一个1到1000这样子的数组,然后全部加起来。所以,如果要用数组公式的话,你就得先问自己,到底需要一个怎样的数组才能达到目的。那么,接下来,就要考虑,通过什么函数,才能达到这个目的。就这题来说,就会使用ROW()函数,一个取得引用行号的函数,=ROW(1:1000),通过这个函数就能生成这样一个数组1;2;3;998;999;1000,然后用SUM()进行求和,就得到答案了。额外提醒大家的是,通过SUM()这个函数,出来的结果就是一个值,不会是数组的。(COLUMN()函数也可以,这里就不讲了)。答案:=SUM(ROW(1:1000)(CHENJUN兄另一种使用INDIRECT()的做法,是为了避免行范围有行删除、插入,这是在实际使用中出现问题地解决办法,这次暂不讨论=SUM(ROW(INDIRECT(1:1000))。第二题:求在1到1000中,是7的倍数的数的和,包括7在内。7+14+21+28+.=?这题,是在上题的基础上,演变而来的,也就是一个数组的处理的问题。既然得到了1到1000这样子的数组,那么如何得到7的倍数的数的数组?方法很多,下面一一讲解:用的最多的方法是:=SUM(ROW(1:1000)*(MOD(ROW(1:1000),7)=0)因为是求和,把不符合条件的数字,变成0,然后求和,就可以了,EXCEL是如何处理的,请看看数组讲座一。把公式写的标准化一些:=SUM(IF(MOD(ROW(1:1000),7)=0,ROW(1:1000),0)其中,MOD(ROW(1:1000),7)是对ROW(1:1000)生成的数组1;2;3;998;999;1000的再处理,再生成的数组,从表面上来看新生成的数组1;1;1;1;1;1;0;1;1;1,一点用都没有,但实际上包含了1;2;3;998;999;1000能不能被7整除的信息,即如果是1,那么对应的这个数不能被7整除,而如果是0的话,能被7整除,这样IF(MOD(ROW(1:1000),7)=0,ROW(1:1000),0)再次生成一个我们都想要得数组,那就是0;0;0;0;0;0;7;0;0;0;0;0;0;14;0;0;0,这样在用SUM()就能得到索要的答案了。从上面可以看出,在数组公式中,如果有IF()参与,条件是数组公式,对或错有一个是数组,或都是数组的话,需要一一对应。这例中,对是数组,他就和条件一一对应,才会产生0;0;0;0;0;0;7;0;0;0;0;0;0;14;0;0;0的结果。其他的方法:=SUM(IF(ROW(1:200)*71000,ROW(1:200)*7,0)思路:直接生成一个7倍数的数组,然后做一个1000的判断,再求和。=SUM(TRUNC(WEEKDAY(ROW(1:1000)/7)*ROW(1:1000)思路:使用WEEKDAY()将数组转化为一个以1;2;3;4;5;6;7作为轮回的数组,正好和7的倍数相呼应(当然如果用=SUM(IF(WEEKDAY(ROW(1:1000)=7, ROW(1:1000),0)也是可以的)。然后除以7后,再TRUNC()后,变成0;0;0;0;0;0;1;0;0;0这样的数组,然后和1;2;3;4;5;6;7;998;999;1000相乘,得出结果。这里,需指明的是,我在用WEEKDAY()的时候,忽略了一个参数,那是默认值,星期一是1,以此类推;而TRUNC()也忽略了一个参数,默认值为0,即取整。所以,思路从某种程度上讲,决定公式的使用方法,有些人排出来的公式很复杂,有些人很简单,就是这个道理。大家在平时学用公式的时候,不仅要学习函数的使用方法,更主要的是要学习思路,不要只求结果,不求过程。最后一题,我想详细分析一下,加上最近有点忙,准备放在下周末,请大家谅解。CELL 全部显示全部隐藏返回某一引用区域的左上角单元格的格式、位置或内容等信息。语法CELL(info_type,reference)Info_type 为一个文本值,指定所需要的单元格信息的类型。下面列出 info_type 的可能值及相应的结果。如果 MICROSOFT EXCEL 的格式为CELL 返回值常规G0F0#,#0,00.00F2#,#0.00,2$#,#0_);($#,#0)C0$#,#0_);Red($#,#0)C0-$#,#0.00_);($#,#0.00)C2$#,#0.00_);Red($#,#0.00)C2-0%P00.00%P20.00E+00S2# ?/? 或 # ?/?Gyy-m-d 或 yy-m-d h:mm 或 dd-mm-yyD4d-mmm-y

温馨提示

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

评论

0/150

提交评论