Excel数组公式从入门到精通
2010-10-01 21:16:02 来源:WEB开发网三、数组公式精通
这里是一个实际工作中的例子,只是我稍微变化了一下,还是SUM应用的例子。
需求:如下图所示,现在要统计员工张三在1号加工所有机器的“实绩”,也就是说在右侧的数据中先过滤日期为1,然后再过滤人员为张三的数据,最后统计实绩的结果。如果使用一个公式完成这一需求,你能想到吗?当然SUMIFS是除外的,因为 SUMIFS是Office 2007以后的产物。
查看原图(大图)
答案:在上图所示的C2单元格中输入“=SUM((E2:E21=A2)*(G2:G21=B2)*(H2:H21))”公式,然后按下“Ctrl+Shift+Enter”组合键,你会发现想要的结果已经出现了。数组公式就是这么简单,解决问题也是这么简单。
这次用的公式可以看出,比之前用的公式还要简单,连IF都不要了,实际上这里的“=”符号就是起到了一个类似IF的效果。
这里再说明一下公式的执行过程,公式中E2:E21表示数组区域,这个相信已经不需要再说明了,放到数组公式中就是依次取数组中的各个数值,也就是依次取日期中的值。E2:E21=A2,实际上就是拿日期中的每一个值依次与A2中的日期进行比对,如果相等则结果为True,即1,如果不相等则为False 即为0。到了这里也许你有一点明白了,如果第一不相等,则后面的无需再继续下去了,因为公式里用的全部是“*”乘积符号,任何数乘0等于0。如果此项符合再继续判断G2:G21区域,也就是用姓名依次比对,如果和B2中的姓名相同,则为Ture,即1,如果为False,即0,继续下一个回合。如果此项也为Ture,很明显前面两项的结果为1*1=1,再乘以H2:H21数组中对应的数字,即符合条件的“实绩”,以第一个符合条件的第一条记录为例,在数组公式运行的第一个回合为SUM(1*1*234),结果当然为234了,然后再依次完成整个数组的运算,我们最终的目的就达到了。
数组公式非常有用,效率也高,但真正的理解、熟练掌握也不是一件很容易的事。但大家记住数组中的数据是一一对应的,放到数组公式中使用时,数组中的数据会按顺序依次参与相应的运算。
希望大家能够慢慢的理解、贯通。
出处http://windyli.blog.51cto.com/1300305/313744
更多精彩
赞助商链接