news 2026/3/13 22:41:07

Excel矩阵运算神器:MMULT函数详解与实战应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Excel矩阵运算神器:MMULT函数详解与实战应用

一、什么是MMULT函数?

MMULT函数是Excel中一个强大但常被忽视的函数,它专门用于执行矩阵乘法运算。这个函数在数据分析、财务建模、工程计算等领域有着广泛的应用。

1.1 函数语法

MMULT(array1, array2)

  • array1:要进行矩阵乘法运算的第一个数组

  • array2:要进行矩阵乘法运算的第二个数组

1.2 基本规则

  1. 维度匹配:array1的列数必须等于array2的行数

  2. 结果维度:结果矩阵的行数 = array1的行数,列数 = array2的列数

  3. 数据类型:两个数组都只能包含数值

  4. 错误情况

    • 任意单元格为空或包含文字 →#VALUE!

    • array1的列数与array2的行数不相等 →#VALUE!

二、矩阵乘法基础

2.1 数学原理

如果:

  • 矩阵A是 m×n 的(m行n列)

  • 矩阵B是 n×p 的(n行p列)

那么:

  • 结果矩阵C = A × B 是 m×p 的

  • 元素 cᵢⱼ = Σ(aᵢₖ × bₖⱼ),其中k从1到n

2.2 Excel中的对应关系

=MMULT( m行 × n列 , n行 × p列 ) = m行 × p列

三、实战案例一:数据求和与加权计算

3.1 数据准备

3.2 计算每人总业绩

方法1:传统SUM函数

=SUM(B2:E2) // 张三的总业绩

方法2:MMULT函数(展示原理)

=MMULT(B2:E2, {1;1;1;1})

分步解析:

  • B2:E2是 1行×4列 的矩阵:[5, 1, 2, 1]

  • {1;1;1;1}是 4行×1列 的列向量

  • 结果:1行×1列的矩阵:[5×1 + 1×1 + 2×1 + 1×1] = [9]

批量计算所有人总业绩(数组公式)

=MMULT(B2:E4, {1;1;1;1})

Ctrl+Shift+Enter输入数组公式,返回:

  • 张三:9

  • 李四:29

  • 王二:27

3.3 加权求和计算

假设各月权重不同:

  • 1月:10%

  • 2月:20%

  • 3月:30%

  • 4月:40%

权重矩阵:{0.1; 0.2; 0.3; 0.4}

加权业绩计算

=MMULT(B2:E4, {0.1;0.2;0.3;0.4})

结果:

  • 张三:5×0.1 + 1×0.2 + 2×0.3 + 1×0.4 = 1.7

  • 李四:9×0.1 + 10×0.2 + 2×0.3 + 8×0.4 = 6.7

  • 王二:5×0.1 + 2×0.2 + 10×0.3 + 10×0.4 = 7.9

视频演示:

用MMULT函数进行数据求和

四、实战案例二:找出最高分及对应姓名

4.1 数据准备

4.2 计算每人总分

方法1:MMULT计算总分数组

=MMULT(B2:G7, ROW(1:6)^0)

公式解析:

  • B2:G7:6行×6列的分数矩阵

  • ROW(1:6)^0:生成 {1;1;1;1;1;1} 的列向量

  • 结果:6行×1列的总分数组

方法2:实际分步计算

// 张三总分 = 64+90+64+97+78+84 = 477
// 李四总分 = 78+61+68+93+92+84 = 476
// 王二总分 = 75+62+98+62+61+65 = 423
// 陈五李总分 = 98+100+95+98+62+71 = 524
// 张学林总分 = 76+60+97+67+72+85 = 457
// 周立总分 = 73+68+99+97+78+98 = 513

4.3 找出最高分

最高分公式:

=MAX(MMULT(B2:G7, ROW(1:6)^0))

结果:524(陈五李的总分)

4.4 找出对应姓名

姓名公式:

=INDEX(A2:A7, MATCH(最高分, MMULT(B2:G7, ROW(1:6)^0), 0))

分步解析:

  1. MMULT(B2:G7, ROW(1:6)^0):计算每人总分数组

  2. MATCH(最高分, 总分数组, 0):在总分数组中查找524的位置

  3. INDEX(A2:A7, 位置):返回对应位置的姓名

结果:陈五李

视频演示:

找出最高分及姓名(mmul函数)

4.5 完整查询系统设置

J3单元格(姓名标签):姓名
J4单元格(最高分标签):最高分

K3单元格(姓名公式):
=INDEX(A2:A7, MATCH(K4, MMULT(B2:G7, ROW(1:6)^0), 0))

K4单元格(最高分公式):
=MAX(MMULT(B2:G7, ROW(1:6)^0))

五、MMULT的两种经典用法对比

5.1 计算"加权和"(对应项乘积总和)

MMULT(行向量, 列向量)

  • 特点:行在前,列在后

  • 应用:计算加权平均值、综合评分等

  • 示例=MMULT(E13:G13, B3:B5)

5.2 展开所有组合乘积

MMULT(列向量, 行向量)

  • 特点:列在前,行在后

  • 应用:生成乘积矩阵、计算组合可能性

  • 示例=MMULT(B3:B5, E13:G13)

六、进阶应用技巧

6.1 多条件求和

假设需要统计数学和英语都大于80分的学生总分:

=MMULT((C2:C7>80)*(D2:D7>80)*B2:G7, ROW(1:6)^0)

6.2 矩阵转置

虽然没有直接转置函数,但可配合其他函数:

=MMULT(原矩阵, 单位矩阵) // 需配合其他技巧

6.3 解线性方程组

对于AX = B形式的方程组:

=MMULT(MINVERSE(A), B) // 求X

七、常见问题与解决方案

7.1 #VALUE! 错误

可能原因

  1. 数组中有非数值(文本或空值)

  2. 维度不匹配(array1列数 ≠ array2行数)

解决方案

// 清理数据
=MMULT(IFERROR(B2:E4*1, 0), {1;1;1;1})

// 检查维度
=COLUMNS(array1) // 检查列数
=ROWS(array2) // 检查行数

7.2 性能优化

对于大数据集:

  1. 使用动态数组(Excel 365)

  2. 避免整列引用

  3. 考虑使用Power Pivot

7.3 数组公式输入

旧版Excel需要按Ctrl+Shift+Enter,Excel 365自动支持动态数组。

八、总结与建议

8.1 MMULT函数的优势

批量计算:一次性处理多个数据组合
灵活性强:适用于各种矩阵运算场景
专业应用:在工程、金融、统计等领域有重要价值
性能高效:相比多个SUM函数,计算更高效

8.2 适用场景推荐

  1. 学生成绩分析:计算加权平均分、排名

  2. 财务报表:计算多维度数据总和

  3. 销售分析:产品×地区×时间的多维分析

  4. 工程计算:矩阵运算相关的专业计算

  5. 数据转换:数据格式的重塑与转换

8.3 学习建议

  1. 从简单开始:先掌握1维数组的乘法

  2. 理解维度:牢记"列数=行数"的匹配原则

  3. 实际应用:在工作中寻找适用场景练习

  4. 组合使用:学会与INDEX、MATCH、MAX等函数配合


温馨提示:MMULT函数是Excel高级函数之一,初次接触可能感到复杂。建议从实际案例入手,逐步理解其原理和应用。掌握这个函数后,你将能处理更复杂的数据分析任务,大幅提升工作效率!


计算机科学与技术 & 计算机网络技术:双专业课程体系完全导航指南

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 19:18:45

【计算机毕业设计案例】基于SpringBoot的蔬菜种植管理蔬菜种植园管理系统 绿色菜园智能管理平台系统设计与实现(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/3/13 18:07:15

【毕业设计】基于SpringBoot的奶茶店线上点单与库存管理系统设计与实现(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/3/13 13:59:40

健帆生物

健帆生物 现在股价 20.33 健帆转债现在价格 122.358 转股溢价率132.62% 如何理解 这个有没有什么获利空间好的,用户现在提供了健帆生物正股和可转债的具体数据,想理解高转股溢价率的含义,并询问是否存在获利空间。从问题来看,用户…

作者头像 李华
网站建设 2026/3/13 16:59:12

Wheel包:30秒解决30分钟编译地狱

小白视角:一个 Python 包从源码到 wheel 的“流水线”把它想成你在装一个“带原生零件”的包(里面有 C/C/CUDA):A. 你 pip install xxx 时,pip 会先找有没有现成 wheel有 wheel:直接下载一个已经编译好的 .…

作者头像 李华
网站建设 2026/3/11 19:14:45

网络运维必备:TCP/IP 协议常见问题与网络故障定位方法

第一部分:TCP/IP协议栈架构与常见问题概述 协议栈分层模型与故障分类 TCP/IP协议栈采用四层结构设计:网络接口层、互联网层、传输层和应用层。每一层都有特定的功能和常见故障模式。根据互联网工程任务组(IETF)的RFC文档&#x…

作者头像 李华
网站建设 2026/3/11 8:50:25

Java毕设项目推荐-基于SpringBoot的社区生活服务平台设计与实现基于SpringBoot的社区邻里服务平台设计与实现【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华