数组运算4(二维数组与二维数组的运算)
接着来说数组的运算,今天是二维数组与二维数组的运算。
-01-
运算规则
1.尺寸相同的二维数组的运算。
如下图所示,将2个二维区域进行相加运算,结果输出到黄色区域。可以看到它们的运算规则也是一一对应的。第1个区域第1行的第1个值与第2个区域第1行的第1个值相加,也就是1+4,···以此类推,得到一个新的二维数组,尺寸与原区域尺寸是一样的。
如下图所示,上面1组数据是2个二维区域相加,下面1组数据是二维区域与单值相加,可以看到它们的结果是相同的。
可以总结出,如果二维区域或数组与单值运算,可以看作先把单值扩展到和二维区域一样的尺寸,然后一一对应运算。就像第一组数据一样,这样的好处就是知道它们的对应关系。
2.尺寸不同的二维数组的运算。
下图是尺寸不同的二维数组的运算,从黄色区域的结果中可以看出,它们只把共有的部分,也就是交集进行了一一对应的运算。没有对应数字的就返回错误值,比如第1个区域的最右边一列和最下边一行在第2个区域中没有和它们相对应的数值,所以返回错误值。因此数组运算最好尺寸相同。
-02-
具体应用
1.求所有水果第一季度的总销售额
如下图所示,左表是销售数量表,右表是产品单价表。求所有水果的总销售额。在K29单元格中输入公式=SUM(B30:D34*G30:I34),按ctrl+shift+enter三键。让它们的数量与单价一一对应相乘,得到了它们的销售金额,最后用sum求出总金额。
2.求所有成绩中大于等于60分的平均分。
大于等于60分的我用绿色标记出来了,对标绿的这些成绩求平均分。简单来说就是条件求平均,可以用averageif来完成,如下图所写的公式。
但我们今天要用二维区域或数组的运算来完成。在F38单元格中输入公式=SUM((B37:D41>=60)*B37:D41)/SUM(--(B37:D41>=60)),按ctrl+shift+enter三键。
首先我们要求出大于等于60分的有哪些,然后对它们求和,计数,再用求和除以个数就是平均分。这就是思路。
B37:D41>=60这部分是对所有成绩和60分进行比较,大于等于60的返回true,否则返回false。
(B37:D41>=60)*B37:D41这部分就是二维数组的运算,将判断的结果和原来的成绩相乘,结果就是大于等于60分的,显示原来的值,否则显示为0,如下图所示。这样就把大于等于60分的找出来了,用sum求和得出大于等于60分的总分。
SUM(--(B37:D41>=60))这部分就是计算大于等于60分的个数,昨天已经说过,不再重复。最后用求和/个数就是平均值。
我这里教的是方法,举的例子可能和实际工作生活相差比较大,希望你能举一反三,如果你有工作中的问题可以发到下面的邮箱,好了,今天的二维数组的运算就说到这里。
如果对你有所帮助或启发,请打赏或分享一下,你的支持就是我最大的动力!
此公众号没有留言功能,如果有问题可以发到邮箱715704566@qq.com,有时间会回复的。
关注解锁更多函数的用法