Excel高效计算--浅谈数组

数组

什么是数组

在Excel中数组可以理解为:多个单元格的集合,比如:A1:A3,A2:B5等等。通常数组分为一维数组和二维数组,一维数组是单行或者是单列多个单元格集合,比如A2:A5(单列),B2:C2(单行)。二维数组是多行多列单元格的集合比如:B3:C5。

蓝色部分(A2:A5)和红色部分(B2:C2)是一维数组,橙色部分(B3:C5

)是二维数组。

数组的计算方式

我们知道数组分为一维数组和二维数组,另外,数组可以进行加、减、乘、除四种常见的运算,所以我们可以得到以下的几种计算方式:此处都是以乘法作为例子。


这里提到了维度和元素的概念,维度就是我们所说的行方向或者是列方向,而元素即是我们数组中每一个值,比如A2:A5,此时维度为列,而元素即为A2:A5里面的值,元素的个数为4。

1、一维数组×一维数组

a) 同一维度:我们计算的是A2:A5与B2:B5之间两两相乘的结果。最后生成也是列方向上的一维数组,结果在C2:C5。

b) 不同维度:此处我们用A2:A3列方向上一维数组与B2:C2行方向上的一维数组相乘做计算,可以看出得到了2行2列的多维数组。计算过程是:先用第一个数组的第一个元素跟第二个数组的所有元素相乘,再用第一个数组的第二个元素与第二个数组的所有元素相乘,依次类推。

2、 一维数组×二维数组:此处我们用A2:C2一维数组乘以A3:C4二维数组,最终得到跟原始二维数组一样的2行3列二维数组。计算方式以一维数组的每一个元素与二维数组相乘。我们可以看出此时二维数组的行方向的元素跟一维数组一样都为3个。当然,如果你想用列方向的数组计算也是可以的,那么此时一维数组必须是两个元素。

3、 二维数组×二维数组:此处用的A2:C3二维数组与A4:C5二维数组相乘,得到的也是一个相同维度和元素的二维数组。

高能预警

1、 通过上面计算方式的例句,我们可以看出数组最后结果都有{},这个大括号不是我们手动输入的,而是执行需要按:Ctrl+Shift+Enter数组触发器。

2、 当计算后得到几维数组,我们就需要最后选择相应的区域,比如,二维数组*二维数组的例子中,最后得到了2行3列的数组,我们在计算的时候需要选择2行3列的区域。

3、 需要特别的注意“二”中提到的数组的元素个数,必须保证计算时各数组的维度跟上面所提的一样,以及最终生成的数组维度和元素个数

4、 注意利用运算符号(+/*)代替逻辑函数(or和and)。这个用法我们在实例中给大家讲解。

栗子

前面主要讲解了什么是数组、数组计算方式以及其注意点,在实际工作中我们用的比较多的还是一维数组乘以一维数组(同维度)以及其和sum/count等集合函数一起使用,下面我们来看看几个例子。

需求1:D列是员工的原始工资,由于公司效益不错,现根据相应的贡献发放奖金(E列),结果放在F列。

需求2:求一车间的男职工的工资总和

这里先是三个数组进行相乘,然后作为sum的参数进行相加。第一个一维数组是B3:B11=”一车间”,这里会生成一列TRUE/FALSE,第二次生成C3:C11=“男”的逻辑值,最后跟我们需要计算的一列进行运算,另外,TRUE和FALSE在做计算时候,可以自动转换为1和0。当然次数是可以直接用sumifs函数的,那么,如果我们需要求工资大于2000或者工作小于1800的总和,此时,您想想能不能直接用数组。

推荐阅读更多精彩内容

  • 一、算法描述 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然...
    HOLLE_karry阅读 35评论 0 3
  • 导入numpy库: import numpy as np Numpy是python的一个科学计算库的一个基础包,包...
    放心笑阅读 186评论 0 2
  • 一、变量: 变量类型 变量名 = 变量值; 开头:字母,$,_。 首字母之后字母,$ ,_ ,数字组合。 不能使用...
    雪国_3472阅读 53评论 0 2
  • 平时经常被问到,如何把数据中最后一次交易记录提取出来?比如每个客户的最后一次下单记录,或者每个产品最后一次卖出记录...
    PowerBI星球阅读 277评论 0 4
  • 1.Numpy 1.1Numpy array 1.2数组的索引与切片 1.3bool_index 1.3数学运算(...
    许志辉Albert阅读 125评论 0 5