在 Excel 裡,陣列的使用非常重要,對於學習者一個很大的門檻。通常有程式設計經驗者,要理解陣列的觀念與應用,應該都不是難事,而沒有程式設計基礎的人,對這些一個一個儲存格組成的陣列,真的就傷腦筋了。本文試著來說明 Excel 2021 版開始的陣列使用。
陣列是由「{、}」包含一些資料組成的集合:
1. 以分號隔開的陣列:{1;2;3;4;5}
例如公式:=ROW(1:5),會產生 {1;2;3;4;5} 陣列,本例為多列組成的儲存格範圍。
2. 以逗號隔開的陣列:{1,2,3,4,5}
例如公式:=COLUMN(A:E),會產生 {1,2,3,4,5} 陣列,本例為多欄組成的儲存格範圍。
如果是 {1;2;3;4;5} 陣列和 {1,2,3,4,5} 陣列可稱為陣列常數,因為內容是固定的。
而 ROW(1:5) 陣列和 COLUMN(A:E) 陣列也是陣列常數,因為內容也是不會變的。
如果要表達多列多欄組成的陣列,同時會用到分號和逗號,如圖中的陣列:{1,2,3;4,5,6;7,8,9;10,11,12}。
註:圖中的 ARRAYTOTEXT 函數,可以將儲存格內容轉成陣列型式的字串。可以轉成「1,2,3」或是「{1,2,3}」型式。
1. Excel 2021版以前做法
(1) 儲存格B2:=A3*1.2。
(2) 複製儲存格B2,貼至儲存格B2:B9。
2. Excel 2021版以後新增做法
(1 )儲存格C2:=A2:A9*1.2。
(2) 公式會自動溢出至儲存格C2:C9。
國文成績的儲存格範圍就是一個陣列。所以,只要一個儲存格填入公式,公式會自動溢出至陣列範圍的儲存格,不需要做複製儲存格的動作。
Excel 2021版之後新增的做法:
(1) 儲存格C2:=B2:B11*C2:C11
(2) 公式會自動溢出至儲存格D2:C11。
單價和數量的儲存格範圍也都是一個陣列。只要一個儲存格填入公式,公式會自動溢出至陣列範圍的儲存格,不需要做複製儲存格的動作。
選取儲存格A1:D1,按 Ctrl+Shift+F3 鍵,勾選「最左欄」,定義名稱:加權。
在此,加權就是一個陣列。
(1) 以前做法,儲存格E3:=SUMPRODUCT(B3:D3*加權)
SUMPRODUCT 函數內容都是以陣列的形式在運算。
(2) 以前做法,儲存格E3:{=SUM(B3:D3*加權)}
以前的陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
(3) 現在做法,儲存格E3:=SUM(B3:D3*加權)
在 Excel 2021 版之後,不需要再按 Ctrl+Shift+Enter 鍵。
(1) 做法一,儲存格B2:=IF(A2:A9>=60,A2:A9,"")
(2) 做法二,儲存格B2:=FILTER(A2:A9,A2:A9>=60)
以上兩種方式,在 Excel 2021 版之後,公式都會自動溢出至其他儲存格。
FILTER 函數是 Excel 2021 版之後才能使用。
在 Excel 2021 版之後的 OFFSET 函數使用:
(1) 儲存格B2:=OFFSET(A2,3,0,5,1)
(2) 公式會自動溢出至其他儲存格。
公式結果會產生一個儲存格範圍,這也是一個陣列。只要一個儲存格填入公式,公式會自動溢出至陣列範圍的儲存格,不需要做複製儲存格的動作。
1. 使用UNIQUE 函數(列出不重覆項)
(1) 儲存格B2:=UNIQUE(A2:A13)
(2)公式會自動溢出至其他儲存格。
公式也是對陣列操作,所以公式會自動溢出至陣列範圍的儲存格,不需要做複製儲存格的動作。
2. 使用 SORT 函數(對不重覆項排序)
(1) 儲存格B2:=SORT(UNIQUE(A2:A13))
(2) 公式會自動溢出至其他儲存格。
UNIQUE 函數和 SORT 函數是 Excel 2021 版之後才能使用。
【延伸學習】
Excel-列出非空白項目的清單(比較篩選函數和以陣列公式模擬篩選)
【參考資料】
留言列表