MAKEARRAY 函數

MAKEARRAYMicrosoft 365 Excel 提供的 動態陣列函數,可以建立一個 自訂行數與列數的數組,並透過 LAMBDA 為每個儲存格設定特定的計算方式。

這對於 自動產生數據、動態計算陣列 特別有用,適合與 LAMBDA、BYROW、BYCOL、SCAN、REDUCE 等函數結合使用!


? MAKEARRAY 函數語法

MAKEARRAY(rows, columns, lambda(row, column))
  • rows:數組的行數(要生成的行數)。
  • columns:數組的列數(要生成的列數)。
  • lambda(row, column):用來計算每個儲存格內容的 LAMBDA 函數rowcolumn 代表目前的行與列索引(從 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 進行進階數據處理

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *