MAKEARRAY 是 Microsoft 365 Excel 提供的 動態陣列函數,可以建立一個 自訂行數與列數的數組,並透過 LAMBDA 為每個儲存格設定特定的計算方式。
這對於 自動產生數據、動態計算陣列 特別有用,適合與 LAMBDA、BYROW、BYCOL、SCAN、REDUCE 等函數結合使用!
? MAKEARRAY 函數語法
MAKEARRAY(rows, columns, lambda(row, column))
- rows:數組的行數(要生成的行數)。
- columns:數組的列數(要生成的列數)。
- lambda(row, column):用來計算每個儲存格內容的 LAMBDA 函數,
row和column代表目前的行與列索引(從 1 開始)。
? MAKEARRAY 應用範例
1️⃣ 產生 3×3 的數字陣列
=MAKEARRAY(3, 3, LAMBDA(r, c, r * c))
? 結果:
1 2 3
2 4 6
3 6 9
? 說明:
r是行索引,c是列索引。r * c代表 行數 × 列數,所以結果是一個乘法表!
2️⃣ 產生 5×5 的隨機數陣列
=MAKEARRAY(5, 5, LAMBDA(r, c, RAND()))
? 作用:產生 5×5 隨機小數數組(每次計算都會變動)。
3️⃣ 產生 4×4 的序號陣列
=MAKEARRAY(4, 4, LAMBDA(r, c, (r-1) * 4 + c))
? 結果:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
? 說明:
(r-1) * 4 + c讓數值按照 從左到右、從上到下的順序 生成。
4️⃣ 產生 6×6 的對角線 1,其餘為 0
=MAKEARRAY(6, 6, LAMBDA(r, c, IF(r=c, 1, 0)))
? 結果:
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
? 說明:
IF(r=c, 1, 0)代表 當行數等於列數時顯示 1,否則顯示 0(生成 單位矩陣)。
5️⃣ 產生 5×5 的標示偶數與奇數的陣列
=MAKEARRAY(5, 5, LAMBDA(r, c, IF(MOD(r+c, 2)=0, "偶", "奇")))
? 結果:
偶 奇 偶 奇 偶
奇 偶 奇 偶 奇
偶 奇 偶 奇 偶
奇 偶 奇 偶 奇
偶 奇 偶 奇 偶
? 說明:
MOD(r+c, 2)=0判斷 (行數 + 列數) 是否為偶數,然後回傳 “偶” 或 “奇”。- 效果:生成類似 西洋棋棋盤 的排列!
? MAKEARRAY vs SEQUENCE
| 函數 | 作用 | 主要用途 |
|---|---|---|
| MAKEARRAY | 產生動態陣列,內容可由 LAMBDA 計算 | 更靈活,可產生不同計算方式的陣列 |
| SEQUENCE | 產生規則數列(固定遞增) | 適合數列生成(如 1,2,3,4,5…) |
? MAKEARRAY 更靈活,適合需要計算邏輯的陣列!
? 總結
✅ MAKEARRAY 可建立動態陣列,並可透過 LAMBDA 控制數值生成方式。
✅ 適合生成隨機數、對角矩陣、條件數組等動態數據。
✅ 可搭配 BYROW、BYCOL、SCAN、REDUCE 進行進階數據處理!