有一组需要横向求和的数组如下:
通常,我们可以用SUM函数来求和:
在F6单元格内输入公式
=SUM(A6:E6)
下拉复制。
上面“合计”列内有四条不同的公式,那么,能不能编辑一条数组公式,同时得到四行数字的横向合计结果呢?
我们来试一试,在红色格内编辑数组公式:
{=SUM(A6:E6)}
只有第一行的结果是正确的。
再试一下在红色格内编辑数组公式:
{=SUM(A6:E9)}
也不对,四个重复的“210”是已给数组的全部数值的总计,不是我们想要的结果。
至此,我们得到了一个结论:SUM函数只能得到选定区域数值的一个合计,试图把SUM函数用于数组公式来得到N个不同的合计是行不通的。
SUM函数不能用于数组公式来分别求各行和,那么,其他函数行不行?答案是肯定的,江湖上大名鼎鼎的MMULT函数就是其中之一.
(您可不要误以为MMULT只能用于数组的横向分别求和而对“大名鼎鼎”嗤之以鼻!本帖仅仅只是学习MMULT的入门哦。)
下面,大幕拉开.在红色格内编辑数组公式:
{=MMULT(A6:E9,ROW(1:5)^0)}
至此,我们的目的已经达到了:用一条公式进行了二维数组各行的横向求和。
下面给出MMULT函数的“工作原理(规则)”。
只有理解了工作原理,你才会印象深刻、永远记得它。
MMULT函数的作用是返回两个数组的矩阵乘积。
ROW(1:5)^0的计算结果为一列五行的垂直数组:{1;1;1;1;1}(如图中黄色区域)。
各行的数值分别与这个数组相乘,得出正确的结果。
上图中的运算有这样几个特点:
结果数组与数组1的行数相等。
结果数组与数组2的列数相等(本例列数为1,列数可大于1)
数组2的行数与数组1的列数相等(本例为5,否则双箭头曲线往哪指?无法“配对”啦,呵呵)
结果(红色区域)数组中的15就是五个乘积之和。
下面三行运算规则同此行。
好啦,相信您已初步看清了函数MMULT。如果您有兴趣和精力,就去Excelhome技术论坛上走走,看看权威的MMULT专题及大神们的MMULT功夫吧。
本文选自Excelhome论坛会员 e表格学习 的分享帖。