MM函数来了

MMULT人称MM函数,虽然听上去感觉是一个可爱的小MM,但是她却在函数最难函数榜上有名,新手退避三舍。

函数较难理解,小编尝试尽量讲解的简单一些,能领悟多少,各看本事啦

这里是【易办公 早下班】的 Excel办公实战

正片开始:

先来看看官方的说明,可能看不懂,但是可以给我们一起启发

官方说明:

语法:MMULT(array1, array2)

用途:MMULT函数返回两个数组的矩阵乘积。结果矩阵的行数与 array1 的行数相同,矩阵的列数与 array2 的列数相同

参数:

1、array1、array2 。要进行矩阵乘法运算的两个数组。
2、array1中的列数与 array2中的行数相同,并且这两个数组必须仅包含数字。
3、array1和 array2 可以作为单元格区域、数组常量或引用提供。

看完官方说明,有何感受,一脸懵逼属于正常现象!

正好看不懂,今天就到这里,完结……

开个玩笑,我们不就是看不懂才学的吗?我们继续……

说说直观能懂的

1、有两个参数,且两个参数都是矩形区域的数组
2、两个参数必须都是数数字
3、参数类型可以是区域、引用或常量数组
4、array1中的列数与 array2中的行数相同(重要!

(矩阵什么的就不说了,有兴趣的可以拿起你手边的线性代数看上一看)

除了第四点,其他字面理解即可,第四点是MM函数的灵魂,也是大家学不会的原因,要求感觉有点苛刻。

通过一个图,我们直观的看一下,说的什么意思

第四点其实总结来说就是一点,那就是array1和array2放一起,由array1中的列数和array2中的行数所形成的区域必然是一个正方形(array1中的列数与 array2中的行数相同),以后我们构建都需要遵循!

记住理解以上这个图,基本我们就掌握了参数的构建奥义,足够了!

掌握了参数构建才是第一步,下面就来说说计算原理,矩阵相乘

接上图,结果区域如下,可见结果区域等于array1的行和array2的列数

怎么计算呢?先放一放手中的线性代数,你可能已经忘光了,我们直接来看即可

下面我喜欢叫“落袋法”,像是一个一个弹珠落到袋子中

先看一下公式和结果:简单提示一下应该就能看出

32=1*10+2*11

53=2*10+3*11

95=4*11+5*11

对应相乘,然后落到对应的位置

以上其实就是MM函数的全部原理的,下面进入实战案例进一步说明和巩固!

最最简单和常见的应用就是累加,所以我们第一个案例就是他了

主要在参数的构建上,后面大家会感觉到

案例1、累加得到内存数组

公式:=MMULT(N(ROW($1:$12)>=COLUMN($A:$L)),$B$2:$B$13)

看上去有点难,稍微按照所学分解一下

难点在第一参数的构建:=N(ROW($1:$12)>=COLUMN($A:$L))

形成12*12 的正方形,0和1组成的对称三角形

有人说你怎么想到,我怎么想不到呀,其实我们是根据结果和已经出现的参数有推到的,结果是1列12行、已知一参数只是12行1列,那么需要提供的就是12*12的区域。同时要对应相乘相加,那么就需要1依次递增的数据。

爱吐槽的小伙伴正在赶来,那么就是一顿操作

"SUM下拉累加他不香吗?"

我的回应是:“奥”

话说回来,其实还真有点不同的用处,因为MM函数结果是内存数组

F9可见

既然是内存数组,我们就可以配合很多函数,完成一些其他需求

案例2:累计销售达到300最接近的月份

接案例1,最接近300应该是7月的288,那么我们只要配合LOOKUP即可一次性完成,一步到位

LOOKUP要求第二参数是升序,这里累加,必然复合,返回小于等于查询值的最大值。

公式:=LOOKUP(300,MMULT(N(ROW($1:$12)>=COLUMN($A:$L)),$B$2:$B$13),A2:A13)

既然是入门篇,我们就不再举更多案例,好好消化上面两个,彻底搞懂,对你入门将有很大好处!

(0)

相关推荐