EXCEL知识:数组运算是什么?

? 对于Excel中的“数组”,我在最开始接触的时候觉得很难,理解不了它的原理 。虽然会用数组写出来,但是很多时候完全不理解为什么要那样写 。后来我看了一些资料,然后重复听老师讲课,最后慢慢理解了 。到现在也有几个月的时间没有再看,但是最近做了一些有关数组方面的例题,发现很多以前无法理解的问题,现在豁然开朗 。可能是过了一段时间再去看,忽然就理解了很多以前无法理解的问题 。下面我主要介绍一些我自己理解的数组运算 。

什么是数组

? 在Excel中,数组可以理解为多个单元格的集合 。单行数据 , 单列数据(一维数组),多行多列数据(二维数组),都可以是一个数组 。如下图所示:
EXCEL知识:数组运算是什么?



? 上图中数组1和数组2为一维数组 , 数组4和数组5为二维数组 。

数组的输入形式

? 数组是要用花括号(即{})表示的 , 例如前面提到的数组2是{1,2,3,4} , 数组4是{1,4,7;2,5,8;3,6,9},在数组4的表示中,7和8后面跟的是分号,表示从下个值开始就要换行了 。在Excel中,使用到的符号都要是英文格式下的 。

数组的计算方式

? 数组分为一维数组和二维数组,另外 , 数组也可以进行加减乘除四种常见的运算 。数组是一个比较常见而且好用的工具 , 在处理一些问题时,使用数组会更加方便快捷 。所以我想用一种比较简单的方法结合例子让大家清晰地理解数组的计算方式以及数组的运算原理 。
? 在数组中会提到维度和元素的概念,维度就是我们所说的行方向或是列方向,而元素即是我们数组中的每一个值 。比如说在上面所说的数组1,它的维度为列,元素是1、2、3、4,元素的个数是4 。
? 两个数组经过计算 , 结果即为取两个数组的行数最大值,列数最大值 。例如,上面的数组1与数组2相乘,结果即为4行4列 。
使用数组计算时 , 要按Ctrl shift enter出结果,而不是只按一个回车键结束 。
一个值与数组相乘
? 一个值与数组相乘时,所得结果为数组的行数与列数 , 例如下面的两个例子 。它的运算原理即为数值自动填充为与数组相同的行数与列数,然后再一一对应相乘即可 。
EXCEL知识:数组运算是什么?


一个值和数组相乘
一维数组与一维数组相乘
同一维度
? 同一纬度计算时,要保证行数是相同的,或者列数是相同的 。
EXCEL知识:数组运算是什么?


一维数组相乘(同一维度)
不同维度
? 不同维度计算时,所得结果为两个数组的行数最大值 , 列数最大值,例如下面的数组 a (3行1列)和数组 c (1行5列),结果即为3行5列 。它的运算原理即为数组a自动填充为5列,把数组c自动填充为3行 , 自动填充后数组a和数组c均为3行5列,然后一一对应相乘即可 。
EXCEL知识:数组运算是什么?


一维数组相乘(不同维度)
一维数组与二维数组相乘
? 如下图所示,一维数组与二维数组相乘,最终得到的结果与原始二维数组一样都是2行3列的数据 。它的运算原理为一维数组自动填充为2行 , 然后一一对应相乘 。下面的例子是行方向的一维数组与二维数组均有3列,只有这样,计算结果才是正确的 。如果是列方向的一维数组与二维数组进行运算 , 那就要保证一维数组的行数与二维数组的行数相同,只有这样使用数组进行运算,结果才是正确的 , 不会出现错误 。
EXCEL知识:数组运算是什么?



二维数组与二维数组相乘
? 二维数组与二维数组相乘时,要保证两个数组的行数与列数均相等,这样运行出来的结果才是正确的 。
EXCEL知识:数组运算是什么?


二维数组与二维数组相乘
数组运算的总结
? 总的来说,要进行数组之间运算 。遵循以下几点:
1.用花括号表示;
2.分号表示从下个数据开始要换行;
3.所有符号都要用英文格式下的;
4.用Ctrl shift enter结束出结果;
5.运行结果为两个数组的行数最大值 , 列数最大值;
6.修改数组公式 。选择任意一个数组公式单元格,按F2进入编辑模式,然后修改公式后,按Ctrl Shift Enter结束编辑 , 得出结果 。
7.删除数组公式 。选择任意一个数组公式单元格,按F2进入编辑模式,然后删除公式后,按Ctrl Shift Enter结束编辑 。
数组就是单元的集合或是一组数据的值集合 。可以写一个以数组为参数的公式,即数组公式,就能通过这个单一的公式,执行多个输入的操作并产生多个结果——每个结果显示在单元中 。数组公式可以认为是Excel对公式和数组的一种扩充,换一句话说 , 是Excel公式在以数组为参数时的一种应用 。与单值公式的不同之处在于它可以产生一个以上的结果 。一个数组公式可以占用一个或多个单元 。
? Excel中数组公式非常有用,尤其在不能使用工作表函数直接得到结果时,数组公式显得特别重要 , 它可建立产生多值或对一组值而不是单个值进行操作的公式 。输入数组公式首先必须选择用来存放结果的单元格区域(可以是一个单元格),在编辑栏输入公式 , 然后按Ctrl Shift Enter组合键锁定数组公式,Excel将在公式两边自动加上花括号“{}” 。注意:不要自己键入花括号,否则,Excel认为输入的是一个正文标签 。

数组公式与Excel公式的对比

? 在如下表格中,怎样找出平均分高于90的少数民族 。想要找出 , 可以用如下两种方法,一种是普通公式求解 , 然后另一种用数组公式求解 。

EXCEL知识:数组运算是什么?



法一 普通方法:
? 平均分高于90的少数民族,这是平均分高于90和是少数民族同时满足的情况下,才算是符合要求的 。这样的话就要用到and函数,and函数是所有条件同时满足的情况下,才是true 。然后再用一个if函数,结果为true的符合,为false的不符合 。即公式如下:


EXCEL知识:数组运算是什么?



结果如下所示:
EXCEL知识:数组运算是什么?


一般方法
法二 数组公式法
? 这一题要得到的结果是一列值,所以在开始做之前要先选中E2:E11这一列单元格 。平均分高于90的少数民族,这是平均分高于90和是少数民族同时满足的情况下,才算是符合要求的 。在数组公式中,and用 * 来代替,or用来代替,所以这一题就要先用到 *,然后再用一个if函数,结果为true的符合,为false的不符合 。即公式如下:


EXCEL知识:数组运算是什么?



然后不要按回车键出结果 , 要按组合键Ctrl shift enter 出结果 。
所得结果如下:
EXCEL知识:数组运算是什么?


法二数组公式

数组公式的应用

? 举个简单的例子:求出王姓女职工的工资之和

EXCEL知识:数组运算是什么?



? 这一题要求的是工资之和 , 及最后的结果是一个值,所以在开始做之前不需要要选中一列单元格 。王姓女职工工资之和,这是要找出王姓的,并且是女职工的工资,然后相加就可以 。即公式如下:


EXCEL知识:数组运算是什么?



然后不要按回车键出结果,要按组合键Ctrl shift enter 出结果 。
所得结果如下:
EXCEL知识:数组运算是什么?


例子结果
逐步理解如下:
? 第一步,先用left函数取出姓名列中的姓,然后取出=”王“的 , 所得为”王“的结果为true,不是为false;第二步 , 在性别列中,找出女性,所得为女的结果为true,不是为false;第三步,取出每个人的工资;第四步 , 把前三步所得结果相乘,得出的是满足王姓女职工的工资,不满足的即为0;第五步,把第四步得出的结果相加,得出的就是王姓女职工的工资之和 。
EXCEL知识:数组运算是什么?


例子逐步理解
【EXCEL知识:数组运算是什么?】本文章为原创:技术文章—逻辑 。

相关经验推荐