资源描述:
《数组公式从入门到精通》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数组公式从入门到精通入门篇 本主题包含三部分:入门篇、提高篇、应用篇(分中级和高级)数组与数组公式在Excel中,凡是以半角符号“=”开始的单元格内容都被Excel认为是公式,其只能返回一个结果。而数组公式可以返回一个或者是多个结果,而返回的结果又可以是一维或二维的,换句话说,Excel中的数组公式返回的是一个一维或二维的数组集合。在Excel中需要按下“Ctrl+Shift+Enter”组合键结束数组公式的输入。为什么要用数组公式?如果你的需要满足以下条件之一,那么采用数组公式技术可能会是你很好的选择方案。·
2、你的运算结果会返回一个集合吗?·你是否希望用户不会有意或无意的破坏某一相关公式集合的完整性?·你的运算中是否存在着一些只有通过复杂的中间运算过程才会等到结果的运算?看到这些另人费解的问题,你可能会摸不着头绪。不要紧,看了以下内容你也许就会明白了。什么情况下会返回一个集合?看一个简单的例子,选中C1:E3,输入“={"Name","Sex","Age";"John","Male",21;"Mary","Female",20}”,按“Ctrl+Enter”组合键。图1-1(ArrayFormula_A01.bmp)结
3、果在C1:E3中看到的结果全是“Name”,而实际真正返回的结果应该是一个包含三行三列的二维数组,如何办?答案就是用数组公式。选中C1:E3,输入“={"Name","Sex","Age";"John","Male",21;"Mary","Female",20}”,按“Ctrl+Shift+Enter”组合键。图1-2(ArrayFormula_A02.bmp)可能你又会问,这有何用?为何不在单元格中直接输入内容,反而要这么麻烦?这仅仅是一个例子,说明的是如何通过数组公式返回一个结果集。给你个问题,如果存在这样一
4、个工作表:包含字段{"ID","Name","Sex","Age"},如何将“Sex”为“Female”的记录抽取出来(为了打印报表,抽取的记录需要连续存放)?这个问题将在“应用篇”里进行解答。什么情况下会用到相关公式完整性?什么是相关公式完整性?这仅仅是我给出的一个定义,请再回到“图1-2”,请选择C1:E3中任意一单元格,然后做随意的修改(哪怕和原先的公式一样),按“Enter”键结束输入。结果如何?修改未成功!提示“不能更改数组的某一部分”。图1-3(ArrayFormula_A03.bmp)为什么会是这样
5、呢?因为你正企图破坏相关公式的完整性。由于C1:E3中公式的数据源均为“{"Name","Sex","Age";"John","Male",21;"Mary","Female",20}”,而C1:E3共用的一个公式(这与每个单元格都有相同的公式是有区别的,因为这仅仅是C1:E3拥有9个相同的公式,而不是一个!),因此,当你要单独更改其中一个单元格时,系统会认为你正在更改部分单元格的数据源,如此会导致数据源不一致的现象,从而导致与其它相关单元格脱离关系,这样数组公式就失去作用,所以系统不又允许你更改数组公式的部分内
6、容。这样的好处是可以维护数据的完整性,做到与数据源总是有一致的对应关系。请继续关注“数组公式从入门到精通”之“提高篇”,让我们继续深入数组公式!数组公式从入门到精通提高篇相信你在“入门篇”中已经学会了如何建立数组公式,同时也大致了解在什么情况下适合使用数组公式解决问题。需要说明的是,在“入门篇”中提到的使用数组公式的三种情况并不是绝对的,要视具体情况而定。在接下来的讨论中,你将会了解数组公式的一些工作原理。在进行正式讨论之前,先跟着我做一些准备工作。Excel的主要功能就是数据的分析和处理,我们现在只关心的是数据
7、处理中的数据抽取。所谓数据抽取就是对源数据按照一定的条件筛选后所得到的结果。如何定制条件筛选呢?方法很多,这里介绍“IF()”函数和模拟AND、OR的原理和用法。模拟AND、OR让我们先来看看为什么要模拟AND、OR,而不用Excel的工作表函数AND()、OR()?建立如下图的工作表,分别在D11、D12中输入“=SUM(IF(AND(C2:C7=D9,D2:D7=D10),E2:E7))”、“=SUM(IF((C2:C7=D9)*(D2:D7=D10),E2:E7))”,并分别按“Ctrl+Shift+Ent
8、er”结束公式输入。图2-1(ArrayFormula_B01.bmp)之所以创建以上公式,是因为我想对满足“ProductID”为D9,“City”为D10的记录进行汇总,很明显,从上面的返回结果表明D11中的结果是正确的,而D10中的结果是错误的。为什么会是这样呢?在接下来的演示中通过讲述AND()和OR()函数的工作原理来解释为什么D10中的公式返回了错误的结果,以