描述
使用此函数计算两个数组的矩阵乘积。MMULT 函数将两个数组的乘积以矩阵形式返回。
注意: MMULT函数要求 第一个数组的 列数
必须等于 第二个数组 的行数。
句法
MMULT(array1, array2)
输入
该函数接受以下参数:
| 姓名 | 必要 | 描述 | 有效输入 |
|---|---|---|---|
array1 |
是 | 要相乘的第一个数组(或范围)。 | 一个数值数组或范围,其维度与 array2兼容。 |
array2 |
是 | 要相乘的第二个数组(或范围)。 | 一个数值数组或范围,其中行数等于 array1中的列数。 |
实例
范例数据
数据集 1
| A | B | C | |
|---|---|---|---|
| 1 | 资源 | 小时 | 速度 |
| 2 | 阿米娜 | 3 | $20 |
| 3 | 拉乌尔 | 2 | $25 |
| 4 | 丹妮丝 | 5 | $15 |
数据集 2
| A | B | C | D | E | F | G | H | I | |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 项目 | 数量 | 成分 | 笔记本电脑 | 片剂 | 桌面 | 总计 | ||
| 2 | 笔记本电脑 | 10 | 屏幕 | 1 | 1 | 2 | 65 | ||
| 3 | 片剂 | 15 | 电池 | 2 | 1 | 0 | 35 | ||
| 4 | 桌面 | 20 | 处理器 | 1 | 1 | 1 | 45 |
数据集 3
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 学生 | 家庭作业 | 测验 | 考试 | 平均体重 |
| 2 | 学生1 | 80 | 80 | 85 | 82.5 |
| 3 | 学生2 | 75 | 85 | 90 | 85.5 |
| 4 | 学生3 | 90 | 80 | 85 | 84.5 |
| 5 | |||||
| 6 | 重量 | 0.2 | 0.3 | 0.5 |
示例公式
| 用例 | 公式 | 描述 | |||
|---|---|---|---|---|---|
| 计算 3 个工人工作时长和工资标准各不相同的总成本。 | =MMULT(TRANSPOSE(B2:B4), C2:C4) |
该公式对 (B2:B4) 应用 TRANSPOSE ,然后将其乘以 (C2:C4)。使用数据集 1,结果如下:
|
|||
| 计算当前库存中每种组件所需的总数。 | =MMULT(E2:G4,B2:B4) |
该公式将“数量”矩阵(B2:B4)乘以“组件”矩阵(E2:G4)。这将返回所需的每种组件的总量,考虑每种物品的数量和每种物品的组件数量。使用数据集 2,结果如下:
|
|||
| 如果函数出错,则返回预定义的响应。 | =IFERROR(MMULT(E2:G4,B2:B4), "无效") |
该公式将前面的公式包装在 IFERROR 中,以处理潜在的维度不匹配。在数据集 2 中,如果其中一个值为空,则会产生以下结果:“无效”。 | |||
| 计算一组数值的加权平均值。 | =MMULT(B2:D4,TRANSPOSE(B6:D6)) |
该公式将 TRANSPOSE 应用于 (B6:D6),然后将学生分数矩阵 (B2:D4) 乘以转置后的权重矩阵,生成一个 3x1 矩阵,其中每个单元格代表一个学生的加权平均成绩。在数据集 3 中,这将产生 E 列中显示的结果。 MMULT 在这里的用途:
|
笔记
- 与所有数组函数一样,MMULT 函数会从包含 MMULT 函数的单元格开始,动态地将结果填充到相邻的单元格中。
- MMULT:
- 执行矩阵乘法,这是线性代数中的一个关键运算。
- 水平数组的大小必须与垂直数组的大小相匹配(即,行数必须等于列数)。
使用技巧
- 如果您有标题行,并且不希望包含标题,请将数组值从下一行开始(例如,在上面的数据集中,从 A2 而不是 A1 开始)。
- MMULT 可以与其他函数结合使用,包括:
相关功能
以下是 Workiva 电子表格中支持的其他数组公式函数。