Chapter 11. 函式 (六):陣列與陣列函式 › 11.1 陣列 (Array) 基本概念
11.1 陣列 (Array) 基本概念
本章示範檔案:Chapter 11. 函式 (六):陣列與陣列函式
本章介紹了 Google Sheets 中非常重要的陣列概念,再介紹如何使用 ARRAYFORMULA 將原本僅用於單一資料的函式延伸至整個函式,後兩節介紹一些陣列相關的函式,讓大家能用更靈活的方式操作 Google Sheets。另外本章也不會有進階應用,而是將較困難的範例直接放在各節中。
本章介紹了 Google Sheets 中非常重要的陣列概念,再介紹如何使用 ARRAYFORMULA 將原本僅用於單一資料的函式延伸至整個函式,後兩節介紹一些陣列相關的函式,讓大家能用更靈活的方式操作 Google Sheets。另外本章也不會有進階應用,而是將較困難的範例直接放在各節中。
在第 7.3 節有稍微提及陣列的概念,其實就是包含多個欄列組成的表格,其表示方式可以參考官方文件之說明,簡單來說陣列包括以下四個要素:
- 大括號 { }:創立陣列,之後會在大括號內填入陣列的內容。
- 半形逗號 ,:陣列中的分欄符號。
- 半形分號 ;:陣列中的分列符號。
- 欲組合的內容:可以是單一值、儲存格範圍或某公式的輸出等,其中內容的欄或列必須一致才能組合,例如可以使用半形逗號連接 A1:B3 和 D1:D3,因為其列數相同,但若使用分號則會跳出 #REF!,因為前者有兩欄、但後者只有一欄。各種類型的內容範例如下:
- 單一值:例如 ={1,2,3,4}、={"A","B";"C","D"}。
- 儲存格範圍:例如 ={B1:B5,D1:D5}、={A3:A6,C3:D6},但要避免輸出範圍超過儲存格範圍,例如在第二列輸入={B:B,D:D},會使試算表自動插入無限多列造成當機,這是因為輸出的列數會超過原有的儲存格範圍,因此會自動插入更多列,但同時使 B:B 有更多列,輸出也因此更多列,形成無限循環。
- 某公式的輸出:例如使用 IMPORTRANGE、OFFSET、UNIQUE、FILTER 等函式輸出的值。
其實在前面多個章節的函式都有使用陣列作為輸入,只要函式的輸入會需要多欄 / 列時,就可以使用陣列作為輸入,以下舉幾個常用的範例說明:
- SPARKLINE 的 選項 中使用陣列調整圖表細節。
- VLOOKUP 將要搜尋的項目移至 範圍 首欄,例如 =VLOOKUP("A",{B:B,A:A},2,0)。
- UNIQUE / FILTER 要連接不相鄰的多個欄位,例如 =UNIQUE({A:A,D:D})。
- UNIQUE 去除單一欄位的重複項,但來自不同範圍,例如 =UNIQUE({最近半年註冊會員;最近半年消費會員}) 可以輸出所有最近半年有註冊或消費的會員。
其實除了輸入是範圍的函式外,輸入如果是單一的值也可以使用陣列,只是這時候會需要另一個輔助的函式:ARRAYFORMULA,而下一節將進一步說明這個函式的用法。