MMULT,这个函数你用过吗?

摘要: 初始MMULT函数

11-16 23:12 首页 Excel之家ExcelHome

有一组需要横向求和的数组如下:

通常,我们可以用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. 结果数组与数组1的行数相等。

  2. 结果数组与数组2的列数相等(本例列数为1,列数可大于1

  3. 数组2的行数与数组1的列数相等(本例为5,否则双箭头曲线往哪指?无法“配对”啦,呵呵)

结果(红色区域)数组中的15就是五个乘积之和。

下面三行运算规则同此行。


好啦,相信您已初步看清了函数MMULT。如果您有兴趣和精力,就去Excelhome技术论坛上走走,看看权威的MMULT专题及大神们的MMULT功夫吧。

本文选自Excelhome论坛会员 e表格学习 的分享帖。



首页 - Excel之家ExcelHome 的更多文章: