說明
使用此函數計算兩個陣列的矩陣乘積。MMULT 函數會以矩陣形式回報兩個陣列的乘積。
附註: MMULT 要求第一個陣列中欄位 的數目等於第二個陣列中行 的數目。
語法
MMULT(array1, array2)
輸入
此函式接受下列參數
| 名稱 | 必要 | 說明 | 有效輸入 |
|---|---|---|---|
array1 |
是 | 第一個要相乘的陣列(或範圍)。 | 維度與相容的數值陣列或範圍 array2. |
array2 |
是 | 第二個要相乘的陣列(或範圍)。 | 一個數值陣列或範圍,其中的行數等於array1 中的欄數。 |
範例
樣本資料
資料設定 1
| A | B | C | ||
|---|---|---|---|---|
| 1 | 資源 | 小時 | 價格 | |
| 2 | 阿米娜 | 3 | $20 | |
| 3 | Raoul | 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 中,若其中一個值為空白,則會產生下列結果:「Invalid」。 | |||
| 計算一組數值的權數/重量平均值。 | =mmult(B2:D4,transpose(B6:D6)) |
此公式對 (B6:D6) 套用 TRANSPOSE,然後將學生成績矩陣 (B2:D4) 與轉置後的權重矩陣相乘,產生一個 3x1 矩陣,其中每個儲存格代表一位學生的加權平均成績。在資料設定 3 中,會產生 E 欄所顯示的結果。 為什麼 MMULT 在此有用?
|
附註
- 與所有陣列函式相同,MMULT 會從包含該 MMULT 函式的儲存格開始,動態填入相鄰儲存格的結果。
- MMULT:
- 執行矩陣乘法,這是線性代數中的關鍵資料 鍵/金鑰。
- 水平陣列的大小必須與垂直陣列的大小相符(即行數必須等於資料欄數)。
提示
- 如果有標題列,如果不想包括標題,則將陣列值向下起始一行(例如在上面的資料設定中,從 A2 而不是 A1 開始)。
- MMULT 可與其他函數合併/組合,包括: MMULT:
相關功能
以下是 Workiva 試算表支援的其他陣列公式函數。