Excel中有一类称作数组公式的公式,相对比较复杂,有点难以理解,很多人望而却步,然而数组公式很强大,能够完成很多不可思议的任务,绝对值得学习 。
使用数组公式,可以判断数据是否与指定区域中的数据相匹配,可以统计单元格区域中不重复值的数量,可以提取单元格区域中的不重复数据,将列数据转换为行数据,…,等等 。本文只是简单地介绍数组公式,让感兴趣的朋友对其有所了解,为进一步的研究和应用打下基础 。
为什么要学习和使用数组公式
使用数组公式,可以使Excel完成我们认为不可能的任务,或者说要使用VBA才能完成的任务,并且在有些情形下,数组公式可能是一个非常有效的解决方案 。当然,好奇心也会驱使我们想要学习进阶去创建更高级的公式,并且在学会数组公式的基本使用后想要创建更有效的数组公式 。在掌握数组公式后,在面对创建Excel解决方案时又多了一份新的武器 。我想,这可能是想要学习数组公式的一些原因 。
在某些情形下,除非使用VBA,使用数组公式可能是实现目的的唯一办法 。在使用普通的公式时,我们可能需要辅助列或一些中间步骤,然而,数组公式可以提供一次性的解决方案,省掉中间步骤 。当然,高级筛选、数据透视表、以及新增的一些数组函数能够解决使用数组公式实现的任务,但是当输入发生变化时它们不能自动更新或者存在某些局限,然而数组公式能够立即更新,这是其一大优势 。
什么是数组公式
在认识数组公式之前,先看看通常对于下图1所示的工作表求总销售额的过程 。
文章插图
图1
正如图1中所看到的,要求这四种水果的总销售额,先使用公式求出每种水果的销售额,然后相加即可 。总共使用了4个公式 。其实,我们可以只使用一个公式来求总销售额,如图2所示 。
文章插图
图2
在单元格C7中输入公式:
=SUM(B2:B5*C2:C5)
然后同时按下Ctrl+Shift+Enter键完成公式输入 。
这个公式就是数组公式,即有操作运算符,运算一组数据而不是单个数据,传递的结果也是一组数组,而最终的结果可能是单个的数据,也可能是一组数据 。
注意,当我们按下Ctrl+Shift+Enter键完成输入后,Excel会自动在公式两侧添加上花括号{},无须手工输入它们 。
数组公式原理
仍以上文所示的工作表为例,看看数组公式的计算过程,从而了解其运算原理 。
首先,公式中的B2:B5与C2:C5分别被单元格数据替换成数组:
=SUM({5.8;1.2;1.1;3.5}*C2:C5)
=SUM({5.8;1.2;1.1;3.5}*{100;350;200;300})
然后,两个数组对应元素相乘得到:
=SUM({580;420;220;300})
最后,数组作为SUM函数的参数求和,得到最后的结果2270 。
可以看到,数组公式是处理一组或一系列数据而不是单个数据的公式 。它能够返回单个的值,如本例所示,也能够返回一组数据,如下面的例子 。
选择一列中任意9个单元格,输入下面的数组公式:
=ROW(1:9)
结果如下图3所示 。
文章插图
图3
该公式产生一个数组{1;2;3;4;5;6;7;8;9},并将它们依次输入到单元格 。
注意,输入完公式后,一定要记得按下Ctrl+Shift+Enter键 。
本文中,凡是要求输入数组公式的,都是指在输入完公式内容后再按Ctrl+Shift+Enter键,这才完成了数组公式的输入 。
再看一个例子,了解数组公式的逻辑运算 。
推荐阅读
- excel图表认识与处理公式错误
- excel图表怎么发挥IF函数的威力
- Excel函数 VLOOKUP VS. INDEX+MATCH
- excel函数哪个强VLOOKUP VS. SUMIFS
- MATCH函数+INDEX函数组合
- Excel VBA变量和常量
- Excel VBA对象变量
- Excel VBA End With结构,专为对象而生
- Excel怎么轻松得到有规律的数字
- Excel VBA员工管理系统开发